Ch11 深入Windows汇编编程.ppt
《Ch11 深入Windows汇编编程.ppt》由会员分享,可在线阅读,更多相关《Ch11 深入Windows汇编编程.ppt(37页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、汇编语言程序设计汇编语言程序设计第十一章第十一章第十一章第十一章 深入深入深入深入WindowsWindowsWindowsWindows汇编编程汇编编程汇编编程汇编编程 11.1 11.1 汇编高级语法汇编高级语法11.2 11.2 程序优化程序优化11.3 11.3 文件操作文件操作11.4 11.4 结构化异常处理结构化异常处理11.1 11.1 汇编高级语法汇编高级语法 汇编语言语法问题汇编语言语法问题:l l分支和循环程序结构存在标号定义和程序流程复杂的问分支和循环程序结构存在标号定义和程序流程复杂的问分支和循环程序结构存在标号定义和程序流程复杂的问分支和循环程序结构存在标号定义和程
2、序流程复杂的问题题题题 l l可读性、简洁性、可维护性不如高级语言编写汇编程序可读性、简洁性、可维护性不如高级语言编写汇编程序可读性、简洁性、可维护性不如高级语言编写汇编程序可读性、简洁性、可维护性不如高级语言编写汇编程序时比较烦琐时比较烦琐时比较烦琐时比较烦琐l lMASMMASMMASMMASM引入了一系列伪指令来实现条件测试、分支和循环引入了一系列伪指令来实现条件测试、分支和循环引入了一系列伪指令来实现条件测试、分支和循环引入了一系列伪指令来实现条件测试、分支和循环语句等。语句等。语句等。语句等。11.1.1 11.1.1 条件测试表达式条件测试表达式条件测试表达式的形式条件测试表达式的
3、形式 :1.1.寄存器或内存变量寄存器或内存变量例如:例如:x x ;x x不等不等0 0时为真时为真 EAX EAX ;EAXEAX不等于不等于0 0时为真时为真2.2.利用关系运算符利用关系运算符(数值表达式数值表达式1)1)关系运算符关系运算符(数值表达式数值表达式2)2)关关系系运运算算符符比比较较数数值值表表达达式式1 1和和数数值值表表达达式式2 2的内容的内容关系运算符列表关系运算符列表3.3.利用逻辑运算符利用逻辑运算符 (关系或数值表达式关系或数值表达式1)1)逻辑运算符逻辑运算符(关系或数关系或数值表达式值表达式2)2)逻辑运算符对表达式进行逻辑运算。逻辑运算符对表达式进行
4、逻辑运算。逻辑运算符和关系运算符的语法基本和逻辑运算符和关系运算符的语法基本和C C语言基本类似。语言基本类似。逻辑运算符列表逻辑运算符列表4.4.4.4.根据标志寄存器中的各种标志位符号根据标志寄存器中的各种标志位符号根据标志寄存器中的各种标志位符号根据标志寄存器中的各种标志位符号 11.1.2 11.1.2 分支伪操作分支伪操作 分支语句根据条件表达式的真假执行不同的代分支语句根据条件表达式的真假执行不同的代分支语句根据条件表达式的真假执行不同的代分支语句根据条件表达式的真假执行不同的代码模块,与码模块,与码模块,与码模块,与C C C C语言的语言的语言的语言的if/if/if/if/e
5、lseifelseifelseifelseif/else/else/else/else/endifendifendifendif相似。相似。相似。相似。语法如下:语法如下:语法如下:语法如下:.IFIFIFIF条件表达式条件表达式条件表达式条件表达式1 1 1 1 表达式表达式表达式表达式1 1 1 1为为为为“真真真真”时执行的指令时执行的指令时执行的指令时执行的指令.ELSEIFELSEIFELSEIFELSEIF条件表达式条件表达式条件表达式条件表达式2 2 2 2 表达式表达式表达式表达式2 2 2 2为为为为“真真真真”时执行的指令时执行的指令时执行的指令时执行的指令 .ELSEEL
6、SEELSEELSE 上述条件均不满足时执行的指令上述条件均不满足时执行的指令上述条件均不满足时执行的指令上述条件均不满足时执行的指令 .ENDIFENDIFENDIFENDIF11.1.3 11.1.3 循环伪操作循环伪操作 循环是重复执行的一组指令循环是重复执行的一组指令循环是重复执行的一组指令循环是重复执行的一组指令 ,分,分,分,分3 3 3 3种:种:种:种:1.WHILE-ENDW1.WHILE-ENDW1.WHILE-ENDW1.WHILE-ENDW循环循环循环循环.WHILEWHILEWHILEWHILE条件测试表达式条件测试表达式条件测试表达式条件测试表达式 循环体循环体循环
7、体循环体.ENDWENDWENDWENDW2.REPEAT-UNTIL2.REPEAT-UNTIL2.REPEAT-UNTIL2.REPEAT-UNTIL循环:循环:循环:循环:.REPEATREPEATREPEATREPEAT 循环体循环体循环体循环体.UNTILUNTILUNTILUNTIL条件测试表达式条件测试表达式条件测试表达式条件测试表达式3.3.3.3.REPEAT-UNTILCXZREPEAT-UNTILCXZREPEAT-UNTILCXZREPEAT-UNTILCXZ循环循环循环循环 .REPEATREPEATREPEATREPEAT 循环体循环体循环体循环体.UNTILCXZ
8、UNTILCXZUNTILCXZUNTILCXZ 条件测试表达式条件测试表达式条件测试表达式条件测试表达式 使用使用.BREAKBREAK语句可以跳出循环。语句可以跳出循环。格式:格式:.BREAK.IF BREAK.IF 退出条件退出条件 使用使用.CONTINUECONTINUE语句可以跳到循环体的最后。语句可以跳到循环体的最后。计算计算0+1+2+8+90+1+2+8+9的几个例子的几个例子例例1 1:.WHILE/.ENDWWHILE/.ENDW循环形式循环形式XOR EAX,EAXXOR EAX,EAXXOR EBX,EBXXOR EBX,EBX.WHILE EBX 10.WHILE
9、 EBX=10EBX=10.ENDW.ENDW例例3 3:.REPEAT/.UNTILREPEAT/.UNTIL循环的形式循环的形式 XOR EAX,EAXXOR EAX,EAX XOR EBX,EBXXOR EBX,EBX.REPEAT.REPEAT ADD EAX,EBXADD EAX,EBX INC EBXINC EBX.UNTIL.UNTILEBX=10 EBX=10 例例4 4:.REPEAT/.UNTILCXZREPEAT/.UNTILCXZ循环形式循环形式 MOV ECX,10MOV ECX,10 XOR EAX,EAXXOR EAX,EAX XOR EBX,EBXXOR EBX
10、,EBX.REPEAT.REPEAT ADD EAX,EBXADD EAX,EBX INC EBXINC EBX.UNTILCXZ.UNTILCXZ11.2 11.2 程序优化程序优化评价一个程序优劣评价一个程序优劣 的要素:的要素:实现思想是否合理清晰;实现思想是否合理清晰;书写风格是否符合规范;书写风格是否符合规范;程序的执行效率程序的执行效率(重要重要)程序在多长的时间内能够完成(时间)程序在多长的时间内能够完成(时间)程序需要多大的存储空间(空间)程序需要多大的存储空间(空间)11.2.1 11.2.1 运行时间的优化运行时间的优化 1 1选择执行速度快的指令选择执行速度快的指令 (1
11、 1)寄存器清零)寄存器清零MOV EAX,0MOV EAX,0SUB EAX,EAXSUB EAX,EAXXOR EAX,EAXXOR EAX,EAX(2 2)加减。要使)加减。要使EBX=EAXEBX=EAX 30 30:LEA EBX,EAX-30LEA EBX,EAX-30LEA EBX,EAX-30LEA EBX,EAX-30(3 3)乘除。求)乘除。求EAX=EAX/16EAX=EAX/16:SHR EAX,4SHR EAX,4SHR EAX,4SHR EAX,4 求求EAX=EAX*8EAX=EAX*8:SHL EAX,3SHL EAX,3SHL EAX,3SHL EAX,32
12、2操作的转化操作的转化设被除数为设被除数为设被除数为设被除数为a a a a,除数为除数为除数为除数为b b b b,商为商为商为商为c c c c,余数为余数为余数为余数为d d d d,均为均为均为均为32323232位二进制数;位二进制数;位二进制数;位二进制数;ab=c ab=c ab=c ab=c余余余余d,d,d,d,即即即即a=a=a=a=bcbcbcbcd d d d;记记记记L=2L=2L=2L=232323232=100000000H=100000000H=100000000H=100000000H,求求求求出出出出M=M=M=M=(L L L L(b b b b 1 1
13、1 1)b b b b,则则则则c=c=c=c=aMaMaMaM/L/L/L/L设:设:设:设:Lb=e mod f,L=beLb=e mod f,L=beLb=e mod f,L=beLb=e mod f,L=bef f f f分两种情况:分两种情况:分两种情况:分两种情况:(1 1 1 1)f=0f=0f=0f=0,即即即即 L L L L能能能能 被被被被 b b b b整整整整 除除除除,M=M=M=M=(L L L L(bbbb1 1 1 1)b=L/b=e b=L/b=e b=L/b=e b=L/b=e;aMaMaMaM=a=a=a=a(L/bL/bL/bL/b)=(bcbcbcb
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Ch11 深入Windows汇编编程 深入 Windows 汇编 编程
限制150内