第二节传送指令.ppt
《第二节传送指令.ppt》由会员分享,可在线阅读,更多相关《第二节传送指令.ppt(54页珍藏版)》请在一课资料网上搜索。
1、第二节第二节 8086/8088的指令系统的指令系统8086/8088的指令系统中共有的指令系统中共有92种基本指令。种基本指令。可以分成可以分成6个功能组个功能组:1数据传送数据传送(Data transfer)2算术运算(算术运算(Arithmetic)3逻辑运算和移位指令逻辑运算和移位指令(Logic& Shift)4串操作串操作(String manipulation)5控制转移(控制转移(Control Transfer)6处理器控制(处理器控制(Processor Control)介绍指令系统使用介绍指令系统使用的符号:的符号:八位寄存器八位寄存器: AH,AL,BH,H,BL,C
2、H,CL,DH,DL 十六位通用寄存器十六位通用寄存器: AX,BX,CX,DX,SP,BP,SI,DI 堆栈指针堆栈指针 SP 指令指针指令指针 IP标志位标志位Flags目的和源变址寄存器目的和源变址寄存器DI, SI段寄存器段寄存器CS, DS, ES, SS通用寄存器通用寄存器rAL或或AX(取决于操作数长度取决于操作数长度) accsrc , dest源,目的操作数(下列寻址方式都可以用)源,目的操作数(下列寻址方式都可以用) BX+SI+n,BX+DI+n,BP+SI+n,BP+DI+nSI+n,DI+n, BP+n, BX+nN,r 存储器单元的内容存储器单元的内容(正常在数据段
3、正常在数据段)ES: 附加数据段的内容附加数据段的内容 OPRD 操作数操作数Seg 段寄存器(段寄存器(CS,DS,ES,SS)i m 立即数立即数 (n 8位位, nn 16位位, nnnn 32位位 )8086/8088指令助记符表指令助记符表指令类别指令类别记助符记助符数数据据传传送送通用传送通用传送输入输出输入输出目标地址传送目标地址传送标志传送标志传送算算术术运运算算加法加法减法减法乘法乘法除法除法转换转换MOV, PUSH, POP, XCHG, XLATMOV, PUSH, POP, XCHG, XLATIN, OUTIN, OUTLEA, LDS, LESLEA, LDS,
4、LESLAHF, SAHF, PUSHF, POPFLAHF, SAHF, PUSHF, POPFADD, ADC, INC,ADD, ADC, INC, AAA, DAAAAA, DAASUB, SBB, DEC, NEG, CMP, SUB, SBB, DEC, NEG, CMP, AAS, DAS,AAS, DAS,MUL, IMUL, MUL, IMUL, AAMAAMDIV, IDIV, DIV, IDIV, AADAADCBW, CWDCBW, CWD8086/8088指令助记符表(续)指令助记符表(续)逻逻辑辑指指令令逻辑运算逻辑运算移位移位 循环移位 循环移位串串处处理理串操作
5、串操作重复控制重复控制控控制制转转移移转转移移无条件转移无条件转移条件条件转移转移循环控制循环控制过程调用过程调用中断指令中断指令处理器控制处理器控制AND, OR, XOR, NOT ,TESTAND, OR, XOR, NOT ,TESTSHL, SAL, SHR, SARSHL, SAL, SHR, SARROL, ROR, RCL, RCRROL, ROR, RCL, RCRMOVS, CMPS, SCAS, LODS, STOSMOVS, CMPS, SCAS, LODS, STOSREP, REPE/REPZ, REPNE/REPNZREP, REPE/REPZ, REPNE/RE
6、PNZJMPJMPJA/JNBE,JAE/JNB,JB/JNAE,JBE/JNA,JC,JCXZ,JE/JZ,JNS,JO,JS, JG/JA/JNBE,JAE/JNB,JB/JNAE,JBE/JNA,JC,JCXZ,JE/JZ,JNS,JO,JS, JG/JNLE,JGE/JNL,JL/JNGE,JLE/JNG,JNC,JNE/JNZ,JNO,JNP/JPO,JP/JPEJNLE,JGE/JNL,JL/JNGE,JLE/JNG,JNC,JNE/JNZ,JNO,JNP/JPO,JP/JPELOOP, LOOPE/LOOPZ, LOOPNE/LOOPNZLOOP, LOOPE/LOOPZ, LO
7、OPNE/LOOPNZCALL, RETCALL, RETINT, INTO, IRETINT, INTO, IRETCLC, STC, CMC, CLD, STD, CLI, STI, NOP, HLT, WAIT, ESC,LOCKCLC, STC, CMC, CLD, STD, CLI, STI, NOP, HLT, WAIT, ESC,LOCK指令类别指令类别记助符记助符一、一、 数据传送指令数据传送指令(Data transfer)(一)通用传送指令(一)通用传送指令(General Purpose Transfer)(二)输入输出指令(二)输入输出指令(Input and Outp
8、ut)(三)目的地址传送指令(三)目的地址传送指令(Address-object transfer)(四)标志传送指令(四)标志传送指令(Flag register transfer)功能:功能: 负责负责CPU和存储器和存储器 CPU和和I/O端口端口 CPU的内部寄存器之间的数据传的内部寄存器之间的数据传 送。送。特点:特点: 它是计算机最基本、最重要的一种操作,使用比例最高。它是计算机最基本、最重要的一种操作,使用比例最高。 除除 SAHF和和POPF指令外,对标志位没有影响。指令外,对标志位没有影响。(General Purpose Transfer)8088提供方便灵活的通用的传送操
9、作,适用于大多数操作数。提供方便灵活的通用的传送操作,适用于大多数操作数。通用传送指令包括:通用传送指令包括:1、MOV (Movement)2、PUSH (Push word onto stack) POP (Pop word off stack)3、XCHG (Exchange)1MOV dest,src ; (dest) (src) 目的目的源源目的目的 源源 把一个字节把一个字节(B)或一个字(或一个字(W)操作数由源传送至目的。)操作数由源传送至目的。 实现实现:寄存器寄存器 寄存器寄存器/存储器之间;存储器之间;立即数立即数寄存器寄存器/存储器存储器寄存器寄存器/存储器存储器段寄存
10、器之间的数据传送。段寄存器之间的数据传送。 具体说,通用数据传送指令能实现:具体说,通用数据传送指令能实现: CPU内部寄存器之间的数据的任意传送内部寄存器之间的数据的任意传送(除了代码段寄存器(除了代码段寄存器CS和指令指针和指令指针IP以外)。以外)。例:例: MOV DL,CH ; 8位寄存器位寄存器 8位寄存器位寄存器 MOV AX,DX ; 16位寄存器位寄存器 16位寄存器位寄存器 MOV SI, BP MOV DS,BX ;通用寄存器;通用寄存器 段段寄存器寄存器 MOV AX, CS ;段段寄存器寄存器 通用寄存器通用寄存器立即数传送至立即数传送至CPU内部通用寄存器组内部通用
11、寄存器组 (AX、BX、CX、DX、BP、SP、SI、DI)。)。 用于给寄存器赋初值。用于给寄存器赋初值。 例:例: MOV CL,04H;立即数;立即数8位位寄存器寄存器 MOV AX,03FFH;立即数;立即数16位位寄存器寄存器 MOV WORD PTR SI ,057BH ;立即数;立即数存储器存储器MOV BYTE PTR MEM, 5 ;立即数;立即数存储器存储器CPU内部寄存器(除内部寄存器(除CS和和IP外)外)与存储器(所有寻址方式)之间数据传与存储器(所有寻址方式)之间数据传送。送。 例:例:MOV MEM , AX; 累加器累加器存储器存储器,直接寻址直接寻址MOV M
12、EM ,DS;段寄存器;段寄存器存储器,存储器,直接寻址直接寻址MOV DISPBX ,CX;寄存器;寄存器存储器,存储器,变址寻址变址寻址MOV AX , DISP SI;存储器;存储器累加器,累加器,变址寻址变址寻址MOV DS , MEM;存储器;存储器段寄存器,段寄存器,直接寻址直接寻址MOV CX , DISP BX SI ;存储器;存储器累加器,累加器,相对基址加变址相对基址加变址 j MOV MEM2 , MEM1 错。错。MOV AX , MEM1MOV MEM2 , AX 对。对。 例例 : MOV DS,2000H 错。错。MOV AX, 2000HMOV DS , AX
13、对。对。 l MOV ES , DS ; 错错MOV AX , DSMOV ES , AX ; 对对 。 例:例:MOV CS,AX ; 错错 MOV AX,CS ;对对 。 MOV IP, AX ;错错 MOV AX, IP ; 对。对。BX、SI、DI间址间址默认段地址为默认段地址为DS,BP间址间址默认段地址默认段地址SS。这样做为了允许程序员连续用两条指令分别对这样做为了允许程序员连续用两条指令分别对SS和和SP寄寄存器赋值,同时又防止堆栈空间变动过程出现中断。存器赋值,同时又防止堆栈空间变动过程出现中断。(除(除SAHF、POPF以外)。以外)。 例:例:实现将实现将AREA1开始的
14、开始的100个数据传送到个数据传送到AREA2开始的单元。开始的单元。AREA1:AREA2:100个数据个数据分析题意:分析题意: 可以用可以用200条条MOV指令来完成指令来完成100个数据传送,个数据传送, 指令操作重复,每个数据传送后的地址是变化的。指令操作重复,每个数据传送后的地址是变化的。 可以利用循环,可以利用循环,但每循环一次要修改地址(源地址和目的地址),但每循环一次要修改地址(源地址和目的地址),必须把地址放在寄存器当中,用必须把地址放在寄存器当中,用寄存器间接寻址来寻找操作数寄存器间接寻址来寻找操作数.得到如下程序:得到如下程序:MOV SI, AREA1 MOV DI,
15、 AREA2 MOV CX,100AGAIN :MOV AL,SIMOV DI,AL JNZ AGAIN2 PUSH (Push word onto stack) POP (Pop word off stack) 这是两条堆栈操作指令。这是两条堆栈操作指令。什么是堆栈? 按“后进先出(LIFO)”方式工作的存储区域。堆栈以字为单位以字为单位进行压入弹出操作。堆栈操作是如何进行的?为什么要设置堆栈?为什么要按 “后进先出”方式工作?规定由SS指示堆栈段的段基址,堆栈指针SP始终指向堆栈的顶部,SP的初值规定了所用堆栈区的大小。堆栈的最高地址叫栈底。 SPSS堆栈段堆栈段进栈方向退栈方向栈底栈底栈
16、顶栈顶 压栈指令 PUSH src ; src为16位操作数 例:PUSH AX;将AX内容压栈 执行操作:SP-1高字节AH SP-2低字节AL SPSP- 2设AX=1020H,执行示意图如图低地址存储区(SS段)执行前AX=1020HSP=2006H(SP)存储区(SS段)进栈方向执行后SP=2004H2010(AL)(AH)PUSH AX指令执行示意图指令执行示意图SP-2SP高地址低地址高地址SP- -1压栈指令的格式为: PUSH reg PUSH mem/reg PUSH segreg例如: PUSH AX PUSH BX PUSH DS 注意进栈方向是高地址向低地址发展。 弹出
17、指令 POPdest例:POPBX;将栈顶内容弹至BX 执行操作: BL(SP) BH(SP)+1 SPSP+2POP BX 的执行示意图如下图所示低地址存储区(SS段)出栈方向执行前SP=2006H2010POP BX指令执行示意图指令执行示意图(SP)存储区(SS段)执行后(BX)=1020SP=2008H(SP)(SP)+1(SP)+2BX2010高地址低地址高地址q 暂时保存暂时保存 调用子程序(或过程)或发生中断时要调用子程序(或过程)或发生中断时要保护断点的地址保护断点的地址, 子程序或中断返回时恢复断点。子程序或中断返回时恢复断点。主程序IP继续执行主程序执行子程序转子程序压栈弹
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第二 传送 指令