位汇编语言——表达式与操作符

位汇编语言——表达式与操作符

ID:39125093

大小:641.81 KB

页数:19页

时间:2019-06-25

位汇编语言——表达式与操作符_第1页
位汇编语言——表达式与操作符_第2页
位汇编语言——表达式与操作符_第3页
位汇编语言——表达式与操作符_第4页
位汇编语言——表达式与操作符_第5页
资源描述:

《位汇编语言——表达式与操作符》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、宋军计算机学院信息安全系songjun@cug.edu.cn表达式与操作符2021/8/301主要内容汇编语言开发环境MASM32汇编语言程序结构汇编语言的语句格式汇编语言程序格式MASM伪指令2021/8/302变量类型:字节型、字与双字、多字节,结构、枚举存储:全局变量、局部变量定义全局变量的时候类型才可以用缩写2021/8/303全局变量全局变量的作用域是整个程序,Win32汇编的全局变量定义在.data或.data?段内,可以同时定义变量的类型和长度,格式是:变量名     类型   初始值1,初始值2,……变量名     类型   重复数量dup(初始值1,初始值2,……)

2、2021/8/304全局变量的初始化全局变量在定义中既可以指定初值,也可以只用问号预留空间在.data?段中,只能用问号预留空间,因为.data?不能指定初始值。实际运行的时候,未初始化的值是0。word_Bufferdw100dup(1,2);一组字,以0001,0002,0001,0002,…的;顺序在内存中重复100遍,一共是200个字。szBufferbyte   1024dup(?);1024字节的缓冲区;在byte类型变量的定义中,用引号定义字符串和数值定义的方法混用szTextdb     'Hello,world!',0dh,0ah,'Helloagain',0dh,

3、0ah,02021/8/305局部变量两个以上子程序都要用到的数据才被定义为全局变量统一放在数据段中,仅在子程序内部使用的变量则放在堆栈中在进入子程序的时候,通过修改堆栈指针esp来预留出需要的空间,在用ret指令返回主程序之前,同样通过恢复esp丢弃这些空间空间是临时分配的,所以无法定义含有初始化值的变量,对局部变量的初始化一般在子程序中由指令完成。2021/8/306局部变量的定义local伪指令必须紧接在子程序定义的伪指令proc后、其他指令开始前Win32汇编默认的类型是dword,如果定义dword类型的局部变量,则类型可以省略。当定义数组的时候,可以[]括号括起来,不能使

4、用定义全局变量的dup伪指令。局部变量不能和已定义的全局变量同名。在不同的子程序中可以有同名的局部变量。局部变量的起始值是随机的,是其他子程序执行后在堆栈里留下的垃圾local变量名1[[重复数量]][:类型],变量名2[[重复数量]][:类型]……2021/8/307数值表达式数值表达式一般是指由运算符连接的各种常数所构成的表达式汇编程序在汇编过程中计算表达式,最终得到一个数值程序运行之前,就已经计算出了表达式;所以,程序运行速度没有变慢,但增强程序的可读性MASM对除伪指令外各种汇编时处理的指令统称为操作符(Operator)2021/8/308运算符算术运算符:+-*/MOD移

5、位运算符:SHLSHR逻辑运算符:ANDORNOTXOR关系运算符:EQNEGTLTGELE高低分离符:HIGHLOWHIGHWORDLOWWORD2021/8/309算术运算符实现加、减、乘、除、取余的算术运movax,3*4+5;等价于movax,17MOD也称为取模,它产生除法之后的余数19mod7=5加+和减-运算符还可以用于地址表达式除加、减外,其他运算符的参数应是整数2021/8/3010逻辑运算符实现按位相与、相或、异或、求反的逻辑运算oral,03hAND45h;等价于oral,01h47HAND0FH,NOT56H计算结果分别为:7和0A9H2021/8/3011移

6、位运算符实现对数值的左移、右移的逻辑操作;移入低位或高位的是0格式为:数值表达式SHL/SHR移位次数moval,0101bSHL(2*2);等价于moval,01010000b2021/8/3012关系运算符用于比较和测试符号数值MASM用0FFFFH(补码-1)表示条件为真,用0000H表示条件为假movbx,((PORTLT5)AND20)OR((PORTGE5)AND30);当PORT<5时,汇编结果为movbx,20;否则,汇编结果为movbx,302021/8/3013高低分离符取数值的高半部分或低半部分HIGH、LOW从一个字数值或符号常量中得到高、低字节movah,H

7、IGH8765h;等价于movah,87h从MASM6.0引入的HIGHWORD、LOWWORD取一个符号常量(不能是其他常数)的高字或低字部分dd_valueequ0ffff1234h;定义一个符号常量movax,LOWWORDdd_value;等价于movax,1234h2021/8/3014其它操作符类型属性操作符:TYPE长度属性操作符:LENGTH容量属性:SIZE强制属性操作符:PTR存储单元别名操作符:THIS2021/8/3015运算符与操

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。