第四讲8086/8088的指令系统 复习7种寻址方式 1.立即数寻址 MOVAX.O9AOH 2寄存器寻址 MOV AXBX 3.直接寻址 MOV AX, (09AOH) 4寄存器间接寻址 MOV AX,BX 5相对的寄存器间接寻址 MOV AX, IBX+55H 6.基址加变址寻址 MOV BX+SI, AX 7相对的基址加变址寻址MOV5HBX+Sn,AⅩ
1 第四讲8086/8088的指令系统 复习7种寻址方式 1.立即数寻址 MOV AX,09A0H 2.寄存器寻址 MOV AX,BX 3.直接寻址 MOV AX,(09A0H) 4.寄存器间接寻址 MOV AX,[BX] 5.相对的寄存器间接寻址 MOV AX,[BX+55H] 6.基址加变址寻址 MOV [BX+SI] , AX 7.相对的基址加变址寻址 MOV 55H[BX+SI] , AX
第一部分指令系统概述 80868088的指令系统中共有92种基本指令。 可以分成6个功能组 数据传送 Data transfer 2.算术运算( Arithmetic 3.逻辑运算和移位指令( logic&Shif 串操作( String manipulation) 5.控制转移( Control Transfer 处理器控制(P rocessor contro 2
2 第一部分 指令系统概述 8086/8088的指令系统中共有92种基本指令。 可以分成6个功能组: 1. 数据传送(Data transfer) 2. 算术运算(Arithmetic) 3. 逻辑运算和移位指令(Logic& Shift) 4. 串操作(String manipulation) 5. 控制转移(Control Transfer) 6. 处理器控制(Processor Control)
介绍指令系统使用的符号: 八位寄存器:AH,AL,BH,BH,BL,CH,CL,DH,DL 十六位通用寄存器:AX,BX,CX,DX,SP,BP,SI,D1 堆栈指针 SP 指令指针 P(或PC) 标志位 Flags 目的和源变址寄存器D,SI 段寄存器 CS. DS ES SS 通用寄存器 AI或AX(取决于操作数长度)acc
3 介绍指令系统使用的符号: 八位寄存器: AH,AL,BH,BH,BL,CH,CL,DH,DL 十六位通用寄存器: AX,BX,CX,DX,SP,BP,SI,DI 堆栈指针 SP 指令指针 IP(或PC) 标志位 Flags 目的和源变址寄存器 DI, SI 段寄存器 CS, DS, ES, SS 通用寄存器 r AL或AX(取决于操作数长度) acc
sre,dest源,目的操作数(下列寻址方式都可以用) BX+SI+n,[BX+DI+n, [BP+SIn.[BP+DI+n SI+n, DI+n, BP+n, BX+n N 存储器单元的内容(正常在数据段) ES: I 附加存储器段的内容 OPRD 操作数 Seg 段寄存器(CS,DS,ES,SS) 立即数(n8位,nn16位,nnmn32位)
4 src , dest 源,目的操作数(下列寻址方式都可以用) [BX+SI+n],[BX+DI+n],[BP+SI+n],[BP+DI+n] [SI+n], [DI+n], [BP+n], [BX+n] [N], r [ ] 存储器单元的内容(正常在数据段) ES:[ ] 附加存储器段的内容 OPRD 操作数 Seg 段寄存器(CS,DS,ES,SS) i m 立即数 (n 8位, nn 16位, nnnn 32位 )
8086/8088指令助记符表自学) 指令类型 助记符 数通用传送 MOV, PUSH,POP,XCHG,XLAT 据地址传送|LEA,LDS,LES 传标志传送 PUSHE,POPE, LAHE, SAHF 送输入输出|IN,OUT 加法DD,ADC,INC,AAA,DAA 减法SUB,SBB,DEC,NEG,CMP,AAS,DAS 算术 运算 乘法 MULMUL AAM 除法DIV, IDIV, AAD 符号扩展CBW,CWD 逻辑运算AND,TEST,OR,XOR,NOT 逻辑 移位SHL2SAL,SHR,SAR 操作循环移位ROL,ROR,RCL,RCR
5 8086/8088指令助记符表 (自学) 指令类型 助记符 通用传送 MOV, PUSH, POP, XCHG, XLAT 地址传送 LEA, LDS, LES 标志传送 PUSHF, POPF, LAHF, SAHF 数 据 传 送 输入输出 IN, OUT 加法 ADD, ADC, INC, AAA, DAA 减法 SUB, SBB, DEC, NEG, CMP, AAS, DAS 乘法 MUL, IMUL, AAM 除法 DIV, IDIV, AAD 算术 运算 符号扩展 CBW, CWD 逻辑运算 AND, TEST, OR, XOR, NOT 移位 SHL, SAL, SHR, SAR 逻辑 操作 循环移位 ROL, ROR, RCL, RCR
指令类型 助记符 串串操作MOws, CMPS, SCAS, LODS STOS 处理重复控制 REP,REPE/REPZ,REPNE/REPNZ 无条件转移JMP JE/JZ, JNE/JNZ, JS, JNS, JO, JNO 控 JP, JNP, JC, JNC, JCXZ 制条件转移 JA/NBE,JAE/NB, JB/JNAES, JBEJNA 转 JGUNLE JGEJNL JLUNGE JLE/JNG 移循环控制10 LOOPE/LOOPZ, LOOPNE/LOOPNZ 过程调用 CALL, RET 中断指令NT,INTO,RET CLC. STC CMC CLD. STD CLI. STI 处理机控制NoH,wAr,ESC,LocK
6 指令类型 助记符 串 串操作 MOVS,CMPS,SCAS,LODS,STOS 处理 重复控制 REP,REPE/REPZ,REPNE/REPNZ 无条件转移 JMP 条件转移 JE/JZ, JNE/JNZ, JS, JNS, JO, JNO JP, JNP, JC, JNC, JCXZ JA/JNBE, JAE/JNB, JB/JNAE, JBE/JNA JG/JNLE, JGE/JNL, JL/JNGE, JLE/JNG 循环控制 LOOP, LOOPE/LOOPZ, LOOPNE/LOOPNZ 过程调用 CALL, RET 控 制 转 移 中断指令 INT, INTO, IRET 处理机控制 CLC, STC, CMC,CLD, STD, CLI, STI NOP, HLT, WAIT, ESC, LOCK
第二部分80868088指令系统 数据传送指令 Data transfer) (一)通用传送指令( General Purpose Transfer) (二)输入输出指令( Input and output) (三)目的地址传送指令( Address-object transfer) (四)标志传送指令( Flag register transfer)
7 第二部分 8086/8088指令系统 一、 数据传送指令(Data transfer) (一)通用传送指令(General Purpose Transfer) (二)输入输出指令(Input and Output) (三)目的地址传送指令(Address-object transfer) (四)标志传送指令(Flag register transfer)
(一)通鬧传送涓令( General Purpose Transfer 808提供方便灵活的通用的传送操作,适用于大多数操作数。 通用传送指令(除了XCHG以外)是唯一允许以寄存器为操 作数指令 通用传送指令包括: 1、MOv( Movement) 2, PUSH(Push word onto stack) POP(Pop word off stack) 3、XCHG( Exchange) 4、XLAT( Translate)
8 (一)通用传送指令(General Purpose Transfer) 8088提供方便灵活的通用的传送操作,适用于大多数操作数。 通用传送指令(除了XCHG以外)是唯一允许以段寄存器为操 作数指令。 通用传送指令包括: 1、MOV (Movement) 2、PUSH (Push word onto stack) POP (Pop word off stack) 3、XCHG (Exchange) 4、XLAT (Translate)
MOV dest, src;(dest)<(src) 目的源目的←源 功能: 把一个字节(B)或一个字(W)操作数由源传送至目的。 实现:寄存器寄存器存储器之间; 立即数→寄存器存储器 寄存器存储器<段寄存器之间的数据传送
9 1. MOV dest, src ; (dest) (src) 目的 源 目的 源 功能: • 把一个字节(B)或一个字(W)操作数由源传送至目的。 • 实现: 寄存器 寄存器/存储器之间; 立即数→寄存器/存储器 寄存器/存储器段寄存器之间的数据传送
◆具体说,通用数据传送指令能实现: ①CPU内部寄存器之间的数据的任意传送 (除了码段寄存器CS和指令指针以外) 寄有器之间不能传送 例 MOV DL CH ;8位寄存器→8位寄存器 MOV AX DX ;16位寄存器→>16位寄存器 MOV SI BP MOV DS BX ;通用寄存器→段寄存器 MOV AX. CS ;段寄存器→通用寄存器
10 具体说,通用数据传送指令能实现: ① CPU内部寄存器之间的数据的任意传送 (除了码段寄存器CS和指令指针IP以外)。 段寄存器之间不能传送。 例: MOV DL,CH ; 8位寄存器→ 8位寄存器 MOV AX,DX ; 16位寄存器→16位寄存器 MOV SI, BP MOV DS,BX ;通用寄存器→段寄存器 MOV AX, CS ;段寄存器 →通用寄存器