Win32汇编语言-表达式与操作符课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《Win32汇编语言-表达式与操作符课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Win32 汇编语言 表达式 操作 课件
- 资源描述:
-
1、宋军宋军计算机学院信息安全系计算机学院信息安全系表达式与操作符表达式与操作符2022-10-281主要内容主要内容n汇编语言开发环境汇编语言开发环境MASM32n汇编语言程序结构汇编语言程序结构汇编语言的语句格式汇编语言的语句格式 汇编语言程序格式汇编语言程序格式nMASM伪指令伪指令2022-10-282变量变量n类型:字节型、字与双字、多字节,结构、枚举类型:字节型、字与双字、多字节,结构、枚举n存储:全局变量、局部变量存储:全局变量、局部变量定义全局变量的时候类型才可以用缩写 2022-10-283全局变量全局变量n全局变量的作用域是整个程序,全局变量的作用域是整个程序,Win32汇编的
2、全局变量定汇编的全局变量定义在义在.data或或.data?段内,可以同时定义变量的类型和长段内,可以同时定义变量的类型和长度,格式是:度,格式是:变量名 类型 初始值1,初始值2,变量名 类型 重复数量 dup(初始值1,初始值2,)2022-10-284全局变量的初始化全局变量的初始化n全局变量在定义中既可以指定初值,也可以只用问号预留全局变量在定义中既可以指定初值,也可以只用问号预留空间空间n在在.data?段中,只能用问号预留空间,因为段中,只能用问号预留空间,因为.data?不能不能指定初始值。指定初始值。n实际运行的时候,未初始化的值是实际运行的时候,未初始化的值是0。word_B
3、uffer dw 100 dup(1,2);一组字,以一组字,以0001,0002,0001,0002,的的 ;顺序在内存中重复顺序在内存中重复100遍,一共是遍,一共是200个字。个字。szBuffer byte 1024 dup(?);1 024字节的缓冲区字节的缓冲区 ;在在byte类型变量的定义中,用引号定义字符串和数值定义的方法混用类型变量的定义中,用引号定义字符串和数值定义的方法混用 szText db Hello,world!,0dh,0ah,Hello again,0dh,0ah,0 2022-10-285局部变量局部变量n两个以上子程序都要用到的数两个以上子程序都要用到的数据
4、才被定义为全局变量统一放据才被定义为全局变量统一放在数据段中,仅在子程序内部在数据段中,仅在子程序内部使用的变量则放在堆栈中使用的变量则放在堆栈中 n在进入子程序的时候,通过修在进入子程序的时候,通过修改堆栈指针改堆栈指针esp来预留出需要的来预留出需要的空间,在用空间,在用ret指令返回主程序指令返回主程序之前,同样通过恢复之前,同样通过恢复esp丢弃这丢弃这些空间些空间 n空间是临时分配的,所以无法空间是临时分配的,所以无法定义含有初始化值的变量,对定义含有初始化值的变量,对局部变量的初始化一般在子程局部变量的初始化一般在子程序中由指令完成。序中由指令完成。2022-10-286局部变量的
5、定义局部变量的定义nlocal伪指令必须紧接在子程序定义的伪指令伪指令必须紧接在子程序定义的伪指令proc后、其后、其他指令开始前他指令开始前 nWin32汇编默认的类型是汇编默认的类型是dword,如果定义,如果定义dword类型的类型的局部变量,则类型可以省略。局部变量,则类型可以省略。n当定义数组的时候,可以当定义数组的时候,可以 括号括起来,不能使用定义括号括起来,不能使用定义全局变量的全局变量的dup伪指令。伪指令。n局部变量不能和已定义的全局变量同名。局部变量不能和已定义的全局变量同名。n在不同的子程序中可以有同名的局部变量。在不同的子程序中可以有同名的局部变量。n局部变量的起始值
6、是随机的,是其他子程序执行后在堆栈局部变量的起始值是随机的,是其他子程序执行后在堆栈里留下的垃圾里留下的垃圾 local 变量名1重复数量:类型,变量名2重复数量:类型 2022-10-287数值表达式数值表达式n数值表达式一般是指由运算符连接的各种数值表达式一般是指由运算符连接的各种常数所构成的表达式常数所构成的表达式n汇编程序在汇编过程中计算表达式,最终汇编程序在汇编过程中计算表达式,最终得到一个数值得到一个数值n程序运行之前,就已经计算出了表达式;程序运行之前,就已经计算出了表达式;所以,程序运行速度没有变慢,但增强程所以,程序运行速度没有变慢,但增强程序的可读性序的可读性nMASM对除
7、伪指令外各种汇编时处理的指对除伪指令外各种汇编时处理的指令统称为操作符(令统称为操作符(Operator)2022-10-288运算符运算符n算术运算符:算术运算符:+-*/MOD n移位运算符:移位运算符:SHL SHRn逻辑运算符:逻辑运算符:AND OR NOT XOR n关系运算符:关系运算符:EQ NE GT LT GE LEn高低分离符:高低分离符:HIGH LOW HIGHWORD LOWWORD2022-10-289算术运算符算术运算符n实现加、减、乘、除、取余的算术运实现加、减、乘、除、取余的算术运mov ax,3*4+5;等价于等价于 mov ax,17nMOD也称为取模,
展开阅读全文