汇编语言 第十一章 深入Windows汇编编程.ppt
上传人:qw****27 上传时间:2024-09-12 格式:PPT 页数:37 大小:244KB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

汇编语言 第十一章 深入Windows汇编编程.ppt

汇编语言第十一章深入Windows汇编编程.ppt

预览

免费试读已结束,剩余 27 页请下载文档后查看

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第十一章深入Windows汇编编程11.1汇编高级语法11.2程序优化11.3文件操作11.4结构化异常处理11.1汇编高级语法11.1.1条件测试表达式关系运算符列表3.利用逻辑运算符(关系或数值表达式1)逻辑运算符(关系或数值表达式2)逻辑运算符对表达式进行逻辑运算。逻辑运算符和关系运算符的语法基本和C语言基本类似。逻辑运算符列表4.根据标志寄存器中的各种标志位符号11.1.2分支伪操作11.1.3循环伪操作使用.BREAK语句可以跳出循环。格式:.BREAK[.IF退出条件]使用.CONTINUE语句可以跳到循环体的最后。计算0+1+2+…+8+9的几个例子例2:用.BREAK语句来终止循环XOREAX,EAXXOREBX,EBX.WHILE1ADDEAX,EBXINCEBX.BREAK.IFEBX>=10.ENDW例3:.REPEAT/.UNTIL循环的形式XOREAX,EAXXOREBX,EBX.REPEATADDEAX,EBXINCEBX.UNTILEBX>=10例4:.REPEAT/.UNTILCXZ循环形式MOVECX,10XOREAX,EAXXOREBX,EBX.REPEATADDEAX,EBXINCEBX.UNTILCXZ11.2程序优化11.2.1运行时间的优化(2)加减。要使EBX=EAX30:LEAEBX,[EAX-30](3)乘除。求EAX=EAX/16:SHREAX,4求EAX=EAX*8:SHLEAX,32.操作的转化设:L÷b=emodf,L=be+f分两种情况:(1)f=0,即L能被b整除,M=(L+(b–1)÷b=L/b=e;aM=a(L/b)=((bc+d)L/b)=cL+(dL/b)a乘以M后,结果是64位数,高32位数就是c,即EDX。低32位数为dL/b。(2)0<f<b,L不能被b整除,M=(L+(b–1))÷b=(L/b)+1=e+1;同理可求:a乘以M后,结果是64位数,高32位数就是c,即EDX。低32位数为de+(b-f)c+d。3.求两个数中的较小的数4.算法的优化5.查表法11.2.2占用空间的优化1.选用长度短的指令2.灵活利用堆栈在除法的过程中,得到的余数可以保存在堆栈中输出时再逐个弹出。怎么才能知道有多少个有效的十进制数位呢?可以设置一个计数器,压入一个余数就进行计数,最后的计数值就是十进制位数;首先压入一个数字10,在弹出数字时,进行比较。如果小于10,就是一个有效的十进制数位;如果等于10,就表示已经处理结束。3.使用联合4.压缩存储11.3文件操作1.系统定义的3个文件2.文件的打开模式3.文件指针11.3.2文件处理实例11.4结构化异常处理11.4.1捕捉程序中的异常11.4.2汇编程序中的异常处理