第2章8086的指令系统三.ppt
《第2章8086的指令系统三.ppt》由会员分享,可在线阅读,更多相关《第2章8086的指令系统三.ppt(60页珍藏版)》请在课桌文档上搜索。
1、第 2 章 8086的指令系统,(三),2,2.4 控制转移类指令,控制转移类指令用于实现分支、循环、过程等程序结构,是仅次于传送指令的常用指令重点掌握:JMP/Jcc/LOOP CALL/RETINT n/IRET 常用系统功能调用一般了解:LOOPZ/LOOPNZ INTO,控制转移类指令通过改变IP(和CS)值,实现程序执行顺序的改变,3,2.4.1 无条件转移指令,只要执行无条件转移指令JMP,就使程序转到指定的目标地址处,从目标地址处开始执行指令操作数label是要转移到的目标地址(目的地址、转移地址),JMP label;程序转向label标号指定的地址,4,目标地址的范围:段内,
2、段内转移近转移(near)在当前代码段64KB范围内转移(-3276832767)不需要更改CS段地址,只要改变IP偏移地址段内转移短转移(short)转移范围可以用一个字节表达,在段内128127范围的转移,5,目标地址的范围:段间,段间转移远转移(far)从当前代码段跳转到另一个代码段,可以在1MB范围更改CS段地址和IP偏移地址目标地址必须用一个32位数表达,叫做32位远指针,它就是逻辑地址,代码段,代码段,实际编程时,MASM汇编程序会根据目标地址的距离,自动处理成短转移、近转移或远转移 程序员可用操作符short、near ptr 或far ptr 强制,6,JMP指令分成4种类型:
3、段内转移、相对寻址 段内转移、间接寻址 段间转移、直接寻址 段间转移、间接寻址,7,段内转移、相对寻址,JMP label;IPIP+位移量位移量是紧接着JMP指令后的那条指令的偏移地址,到目标指令的偏移地址的地址位移当向地址增大方向转移时,位移量为正;向地址减小方向转移时,位移量为负again:dec cx;标号again的指令jmp again;转移到again处继续执行jmp output;转向outputoutput:mov result,al;标号output的指令,8,段内转移、间接寻址,JMP r16/m16;IPr16/m16将一个16位寄存器或主存字单元内容送入IP寄存器,作
4、为新的指令指针,但不修改CS寄存器的内容jmp ax;IPAXjmp word ptr 2000h;IP2000h,9,段间转移、直接寻址,JMP far ptr label;IPlabel的偏移地址;CSlabel的段地址将标号所在段的段地址作为新的CS值,标号在该段内的偏移地址作为新的IP值;这样,程序跳转到新的代码段执行jmp far ptr otherseg;远转移到代码段2的otherseg,10,段间转移、间接寻址,JMP far ptr mem;IPmem,CSmem+2用一个双字存储单元表示要跳转的目标地址。这个目标地址存放在主存中连续的两个字单元中的,低位字送IP寄存器,高位
5、字送CS寄存器mov word ptr bx,0mov word ptr bx+2,1500hJMP far ptr bx;转移到1500h:0,11,Jmp转移指令的原理,可参见:王爽第九章,12,2.4.2 条件转移指令,指定的条件cc如果成立,程序转移到由标号label指定的目标地址去执行指令;条件不成立,则程序将顺序执行下一条指令操作数label是采用相对寻址方式的短转移标号表示Jcc指令后的那条指令的偏移地址,到目标指令的偏移地址的地址位移距当前IP地址128127个单元的范围之内,Jcc label;条件满足,发生转移:IPIP8位位移量;条件不满足,顺序执行,13,Jcc指令的分
6、类,Jcc指令不影响标志,但要利用标志。根据利用的标志位不同,16条指令分成3种情况:1.判断单个标志位状态 2.比较无符号数高低 3.比较有符号数大小,14,转移条件cc:单个标志状态,JZ/JEZF=1Jump if Zero/EqualJNZ/JNEZF=0Jump if Not Zero/Not EqualJSSF=1Jump if SignJNSSF=0Jump if Not SignJP/JPEPF=1Jump if Parity/Parity EvenJNP/JPOPF=0Jump if Not Parity/Parity OddJOOF=1Jump if OverflowJNO
7、OF=0Jump if Not OverflowJCCF=1Jump if CarryJNCCF=0Jump if Not Carry,采用多个助记符,只是为了方便记忆和使用,15,转移条件cc:两数大小关系,无符号数JB/JNAECF=1Jump if Below/Not Above or EqualJNB/JAECF=0Jump if Not Below/Above or EqualJBE/JNACF=1或ZF=1Jump if Below/Not AboveJNBE/JACF=0且ZF=0Jump if Not Below or Equal/Above,16,SF=0 SF=0 SF=1
8、 SF=1 OF=0 OF=1 OF=0 OF=1 正,=溢出,负,=,带符号数JL/JNGESFOFJump if Less/Not Greater or EqualJNL/JGESF=OFJump if Not Less/Greater or EqualJLE/JNGSFOF或ZF=1Jump if Less or Equal/Not GreaterJNLE/JGSF=OF且ZF=0Jump if Not Less or Equal/Greater,17,判断单个标志位状态,这组指令单独判断5个状态标志之一JZ/JE和JNZ/JNE:利用零标志ZF,判断结果是否为零(或相等)JS和JNS:
9、利用符号标志SF,判断结果是正是负JO和JNO:利用溢出标志OF,判断结果是否产生溢出JP/JPE和JNP/JPO:利用奇偶标志PF,判断结果中“1”的个数是偶是奇JC/JB/JNAE和JNC/JNB/JAE:利用进位标志CF,判断结果是否进位或借位,例题2.38,例题2.39,例题2.40,例题2.41,例题2.42,18,例2.38:JZ/JNZ指令,test al,80h;测试最高位jz next0;D70(ZF1),转移mov ah,0ffh;D71,顺序执行jmp done;无条件转向next0:mov ah,0done:.,test al,80h;测试最高位jnz next1;D7
10、1(ZF0),转移mov ah,0;D70,顺序执行jmp done;无条件转向next1:mov ah,0ffhdone:.,19,例2.39:JS/JNS指令,;计算|XY|(绝对值);X和Y为存放于X单元和Y单元的16位操作数;结果存入resultmov ax,Xsub ax,Yjns nonnegneg ax;neg是求补指令nonneg:mov result,ax,20,例2.40:JO/JNO指令,;计算XY;X和Y为存放于X单元和Y单元的16位操作数;若溢出,则转移到overflow处理mov ax,Xsub ax,Yjo overflow.;无溢出,结果正确overflow:.
11、;有溢出处理,21,例2.41:JP/JNP指令,;设字符的ASCII码在AL寄存器中;将字符加上奇校验位;在字符ASCII码中为“1”的个数已为奇数时;则令其最高位为“0”;否则令最高位为“1”and al,7fh;最高位置“0”,同时判断“1”的个数jnp next;个数已为奇数,则转向nextor al,80h;否则,最高位置“1”next:.,22,例2.42:JC/JNC指令,;记录BX中1的个数xor al,al;AL0,CF0again:test bx,0ffffh;等价于 cmp bx,0je nextshl bx,1jnc againinc aljmp againnext:.
12、;AL保存1的个数,另一种做法,23,记录BX中“1”的个数,xor al,al;AL0,CF0again:cmp bx,0jz nextshl bx,1;也可使用 shr bx,1adc al,0jmp againnext:.;AL保存1的个数,24,比较无符号数高低,无符号数的大小用高(Above)低(Below)表示利用CF确定高低、利用ZF标志确定相等(Equal)两数的高低分成4种关系:低于(不高于等于):JB(JNAE)不低于(高于等于):JNB(JAE)低于等于(不高于):JBE(JNA)不低于等于(高于):JNBE(JA),25,例2.43a:比较无符号数,cmp ax,bx;
13、比较ax和bxjnb next;若axbx,转移xchg ax,bx;若axbx,交换next:.,结果:AX保存较大的无符号数,26,比较有符号数大小,有符号数的大(Greater)小(Less)需要组合OF、SF标志,并利用ZF标志确定相等(Equal)两数的大小分成4种关系:小于(不大于等于):JL(JNGE)不小于(大于等于):JNL(JGE)小于等于(不大于):JLE(JNG)不小于等于(大于):JNLE(JG),27,例2.43b:比较有符号数,cmp ax,bx;比较ax和bxjnl next;若axbx,转移xchg ax,bx;若axbx,交换next:.,结果:AX保存较大
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 8086 指令系统
链接地址:https://www.desk33.com/p-734840.html