欢迎来到天天文库
浏览记录
ID:59100861
大小:350.00 KB
页数:32页
时间:2020-09-25
《第三章汇编程序的设计方法ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第三章汇编程序的设计方法§3-1顺序程序设计一、乘法指令1、无符号数乘法指令MUL格式:MUL源(mem、reg)功能:累加器(AL/AX)内容与源操作数相乘,结果存于AX/DX+AX。有符号数乘法无符号数乘法字节乘法AL源×AX字乘法AX源×DXAX隐含寻址例:MULBX;AX×BX的积存于DX+AXMULBYTEPTR[SI];AL×SI间接寻址的mem单元中的数据,乘积存于AX说明:运算结果影响CF、OF,对AF、PF、SF、ZF未定义若乘积的AH/DX≠0,则CF=OF=1,说明AH/DX中有数据否则,CF=OF=0。2、有符号数乘法指令IMUL说明:除了对
2、象是有符号数,其余思路、格式等与MUL相同。例:计算AL=FEH,CL=11H的积。MULCLIMULCL注:运算结果影响CF、OF。CF=OF=0,说明积的高半部分是符号扩展;CF=OF=1,说明积的高半部分有有效数据;另:同样两个数,用MUL、IMUL指令后,运算结果不同。∴无符号数用MUL,有符号数用IMUL看书例P81结果:FEH×11H=10DEH,CF=OF=1结果:FEH×11H=FFDEH,CF=OF=0二、除法指令看书图,对比乘法指令学习。三、扩展指令1、字节转换为字CBW功能:按AL的符号位扩展到整个AH中。字节除法之前,用该指令产生双字节被除数
3、。例:MOVAL,24HCBW例:MOVAL,84HCBW规则:当AL<80H时,AH=00HAL≥80H时,AH=FFH结果:AX=0024H结果:AX=FF84H2、字转换为双字CWD功能:按AX的符号位扩展到整个DX中。字除法之前,用该指令产生双字被除数。规则:当AX<8000H时,DX=0000HAX≥8000H时,DX=FFFFH四、综合程序举例看书P84例§3-2分支程序设计分支程序:根据不同条件转向不同程序段执行的结构。转移指令一、无条件转移指令JMP1、直接转移指令(1)段内直接转移格式:JMP标号说明:标号——也称符号地址,它表示转移的目的地。例:
4、JMP2500H无条件转移指令条件转移指令段内转移段间转移直接间接直接间接转去执行CS:2500H单元的指令(2)段间直接转移格式:功能:将指令操作码后连续两个字作为立即数,用来修改CS:IP的内容,然后转向新的CS:IP指向的地址。例:JMP8000H:1200H操作码00120080IPCS计算出物理地址=81200H,程序转向从该单元开始的指令继续执行2、间接转移指令(1)段内间接转移说明:转移地址为指令指定的16位reg或mem,可采用各种寻址方式。格式:JMP目标例:JMPBXJMPWORDPTR[BX+DI](2)段间间接转移例:JMPDWORDPTR[
5、BX]功能:转向[BX]指向的32位存储器地址,将连续4个单元的内容低字送IP,高字送CS。,程序转向新的CS:IP指向的单元存储的指令继续执行。总结:区分段内段间:看指令中给出的地址是几个一个地址(16位)——段内二个地址(32位)——段间区分直接间接:看指令中的地址是直接给出(立即数/标号),还是间接放在寄存器或存储器中。二、条件转移指令格式:JcondOPRD功能:当满足一定的条件时,转移到指定的地址,否则,将顺序执行下条指令。说明:当条件cond成立,(IP)+偏移地址→IP当条件cond不成立,(IP)+2→IP所有条件转移指令都是直接寻址方式的短转移。1
6、、简单的条件转移指令仅根据一个可测试标志位实现转移的指令。注:G——大于L——小于E——等于N——不A——高于B——低于指令助记符功能标志设置JE/JZ相等/等于0转移ZF=1JNE/JNZ不相等/不等于0转移ZF=0JCJNCJSJNSJOJNOJP/JPEJNP/JPO表3—1简单的条件转移指令2、无符号数条件转移指令3、符号数条件转移指令三、分支程序举例看P96例3.7画出程序流程图指令助记符功能标志设置JB/JNAE低于/不高于等于转移CF=1且ZF=0JNB/JAE不低于/高于等于转移CF=0或ZF=1JA/JNBE高于/不低于等于转移CF=0且ZF=0J
7、NA/JBE不高于/低于等于转移CF=1或ZF=1表3—2无符号数条件转移指令§3-3循环程序设计一、基本结构循环一般由4部分构成:1、循环初态(初始化/准备)循环工作部分初态循环结束条件初态2、循环体:就是要求重复执行的程序段部分,是循环程序的主体。(设置地址指针、某些标志位等,使某些寄存器清0)(一般置以循环次数,eg:上例中CX=8)3、循环的修改:修改结束条件。常见的就是计数的,当循环了一定次数后,就结束循环,在微机中,常用一个内部寄存器,作为计数器,通常给这个计数器赋予循环次数初值,每循环一次令其减1,当计数器减为0时,就停止循环。4、循环的控制:每循
此文档下载收益归作者所有