第3章指令系统05.ppt
《第3章指令系统05.ppt》由会员分享,可在线阅读,更多相关《第3章指令系统05.ppt(54页珍藏版)》请在三一文库上搜索。
1、8088/8086CPU指令系统,寻址方式解决了操作数存放的形式, 本节讲述 8088/8086 CPU基本指令的助记符表示形式及功能 结合不同的寻址方式,将 133 条基本 指令组合为上千种指令功能,8088/8086 CPU 基本指令类,数据传送类指令 算术运算类指令 逻辑运算类指令 串操作类指令 控制转移类指令 处理器控制类指令,程序转移指令用来控制程序的走向,其实质是设法改变当前的CS和IP值,以使CPU转移到一个新的地址处执行程序。,控制转移类指令,控制转移类指令,无条件转移指令 JMP 指令 CALL、RET指令 有条件转移指令 JXX 组指令 中断指令 INT、IRET、INTO
2、指令 循环控制指令 LOOP,LOOPZ, LOOPNZ指令,控制转移类指令,JMP 无条件转移指令,段内直接短转移 JMP SHORT LABEL ;IP目的 IP当前 + rel8(8 bit 符号数) rel8 在-128 +127之间 段内直接近转移 JMP NEAR LABEL ;IP目的 IP当前 + rel16 (16 bit 符号数) rel16 在-32768 +32767之间,段内直接短转移 rel8, IP源, IP当前, IP目的,错误的 rel8,正确的 rel8,LABEL,JMP SHOR LABEL,IP目的 IP当前 + rel8 IP目的 IP源 + rel
3、8 + 2,注:rel8 80H, 06H,段内直接近转移 rel16, IP源, IP当前, IP目的,错误的 rel16,正确的 rel16,LABEL,JMP NEAR LABEL,IP目的 IP当前 + rel16 IP目的 IP源 + rel16 + 3, 00H, 05H,例:设标号偏移地址=1000H,执行完JMP指令后的当前IP值为0009H,则,位移量=1000H0009H = 0FF7H,控制转移类指令,JMP 无条件转移指令,段内间接转移 寄存器中的值为段内IP目的地址 JMP BX 存储器中的值为段内IP目的地址 JMP WORD BX JMP WORD 2000H ,
4、注:段内转移方式 CS不变、IP变,控制转移类指令,JMP 无条件转移指令,段间直接远转移 JMP FAR LABEL ; LABEL 为 CS目的:IP目的 段间间接远转移 JMP DWORD BX ; CS目的:IP目的 在地址 BX 中,注:段间转移方式 CS变、IP变,当前CS=2100H,JMP 0C 02 00 65,转移目标的偏移地址,转移目标的段地址,16 21000H,代码段1,16 65000H,新CS=6500H,代码段2,转移至此,当前IP =1500H,新IP = 020CH,控制转移类指令,段内间接转移与段间间接远转移讨论,JMP BX ;指令错误,未确定BX中的数
5、据类型 JMP WORD BX ;段内间接转移,返回 16 位 IP目的 值 JMP DWORD BX ;段间间接远转移,返回 32 位 CS目的:IP目的 值,段内间接转移与段间间接远转移例,若(BX)= 2000H JMP WORD BX CS目的 = CS源 IP目的 = 3C2AH JMP DWORD BX CS目的 = 3367H IP目的 = 3C2AH,2000H,控制转移类指令,CALL、RET 过程调用与过程返回指令,过程调用指令 CALL LABEL 段内近调用过程 CS 不变,IP 变;保护现场即将IP当前值入栈 段间远调用过程 CS、IP 均变;保护现场即将CS当前、I
6、P当前值入栈 过程返回指令 RET 定义近过程时 RET 指令恢复现场即将 IP当前值出栈 定义远过程时 RET 指令恢复现场即将 IP当前、CS当前值出栈,控制转移类指令,(IP当前) SS:SP 保护现场 IP 值入栈,段内近调用过程 CALL LABEL,段内近调用返回 RET,(IP当前) SS:SP 恢复现场 IP 值出栈,段间远调用过程 CALL LABEL,(CS当前) SS:SP 恢复现场 CS 值出栈,(CS当前) SS:SP 保护现场 CS 值入栈,(IP当前) SS:SP 保护现场 IP 值入栈,段间远调用返回 RET,(IP当前) SS:SP 恢复现场 IP 值出栈,控
7、制转移类指令,近过程的调用时的保持现场,. . MOV AX,BX CALL MAIN MOV BX,AX . .,2002H,CS,2005H,IP当前 入栈,IP目的 = 8030H, IP源, IP当前,2000H,控制转移类指令,CALL指令中的直接调用与间接调用 段内近过程调用 直接 IP目的 间接 IP目的 段间远过程调用 直接 CS目的:IP目的 间接 CS目的:IP目的,CALL MAIN,CALL BX,CALL DWORD BX ,CALL MAIN,控制转移类指令,CALL、JMP 指令比较,CALL 指令 先保护现场 CS当前:IP当前 后获得调用过程入口CS目的:IP
8、目的,JMP 指令 不保护现场 CS当前:IP当前 只获得跳转程序入口CS目的:IP目的,控制转移类指令,JXX 有条件转移指令,指令格式 JL、JGE、. . . . . . JNZ 等 指令特点 仅有段内短转移,IP目的 = IP当前 + rel8 rel8 值在页内,即-128 +127间 前导指令 CMP、TEST、DEC CX 等,注:执行 JXX 指令前的指令必须影响 标志位,条件转移指令的执行流程,控制转移类指令,有条件转移指令的英文符号,Zero 目的操作数减源操作数为0(ZF = 0) Equal 目的操作数等于源操作数(ZF = 0) Above 目的操作数高于源操作数(C
9、F = 0) Below 目的操作数低于源操作数(CF = 1) Greater 目的操作数大于源操作数(OF SF = 0) Less 目的操作数小于源操作数(OF SF = 1) Carry 两无符号运算后有进位(CF = 1) Overflow 两有符号运算后有溢出(OF = 1) Sign 两有符号运算后有符号(SF = 1) Parity 奇偶位为偶(PF = 1) Not 不是,控制转移类指令,JXX指令与状态标志位 ZF、CF,与ZF有关的条件转移指令 JE/JZ 两数相等/两数相减不为零(ZF = 0) JNE/JNZ 两数有等/两数相减为零(ZF = 1) 与CF有关的条件转
10、移指令 JAE/JNB 高于或等于/不低于(CF = 0) JNC 无进位/无借位(CF = 0) JB/JNAE 低于/不高于也不等于(CF = 1) JC 有进位/有借位(CF = 1),例:JC/JNC指令,;统计BX中1的个数(方法一) xor al,al ;AL0,CF0 again: test bx,0ffffh ;等价于 cmp bx,0 je next ; ZF=1,即(BX)=0,转移 shl bx,1 jnc again ;CF=0.转移 inc al ;CF=1,加1 jmp again next: . ;AL保存1的个数,统计BX中“1”的个数(方法二),xor al,
11、al ;AL0,CF0 again: cmp bx,0 jz next shl bx,1 ;也可使用 shr bx,1 adc al,0 jmp again next: . ;AL保存1的个数,例:JZ/JNZ指令,repz cmpsb ;重复比较两个字符串 jnz unmat ;ZF0(不等),转移 mov al,0 ;顺序执行(相等) jmp output unmat: mov al,0ffh output: mov result,al repz cmpsb ;重复比较两个字符串 jz mat ;ZF1(相等),转移 mov al,0ffh ;顺序执行(不等) jmp output mat
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 指令系统 05
链接地址:https://www.31doc.com/p-2093888.html