8086指令格式(1) 8086/8088指令是由16个字节组成。 第一字节通常为指令的操作码。它表示该条指令要进行什么样的操作。 字节1 字节2 字节3、4 字节5、6 2 1 0 6 543 210 7·· 0 7·……0 07 P code D MOD REG R/M DISPL DISPH DATAL DATAH 操作码字节 寻址方式字节 位移量 立即数 ·OP code为操作码,/表示该指令要完成的操作。 D=0:第一个操作数是目的操作数,1:第二个操作数是目的操作数 W=0:8位操作数,1:16位操作数 MOD指明寻址方式:MOD=11寄存器寻址 MOD≠11存储器寻址 00没有偏移量018位偏移量1016位偏移量 ·REG用编码方式指明操作中所使用的寄存器。 ·R/M用编码方式指出存储器有效地址计算方法。 DISP表示地址偏移量。PATA则指明立即数。 UTEP SCIRNCE里CHNOLOGY
COMPUTER SCIENCE AND TECHNOLOGY COMPUTER SCIENCE AND TECHNOLOGY 8086指令格式(1) • 8086/8088指令是由1~6个字节组成。 • 第一字节通常为指令的操作码。它表示该条指令要进行什么样的操作。 OP code D w MOD REG R/M DISPL DISPH DATAL DATAH 操作码字节 字节1 字节2 字节3、4 字节5、6 7 2 1 0 7 6 5 4 3 2 1 0 7· · · 0 7· · · · ·0 7· · · · · 0 7· · · · · 0 寻址方式字节 位移量 立即数 •OP code为操作码,表示该指令要完成的操作。 •D=0:第一个操作数是目的操作数, 1:第二个操作数是目的操作数 •W=0:8位操作数, 1:16位操作数 •MOD指明寻址方式: MOD=11 寄存器寻址 MOD≠11存储器寻址 00没有偏移量 01 8位偏移量 1016位偏移量 •REG用编码方式指明操作中所使用的寄存器。 •R/M用编码方式指出存储器有效地址计算方法。 •DISP表示地址偏移量。DATA则指明立即数
8086指令格式(2) R/M(寄存器/存储器)编码及有效地址计算方法 M0D=11 M0D≠11 (存储器操作数) REG W=0 W=1 R/M M0D=00 M0D=01 M0D=10 000 AL AX 000 [BX+SI] [BX+SI]+D8 [BX+SI]+D16 001 CL CX 001 [BX+DI] [BX+DI]+D8 [BX+DI]+D16 010 DL DX 010 [BP+SI] [BP+SI]+D8 [BP+SI]+D16 011 BL BX 011 [BP+DI] [BP+DI]+D8 [BP+DI]+D16 100 AH SP 100 [SI] [SI]+D8 [SI]+D16 101 CH BP 101 [DI] [DI]+D8 [DI]+D16 110 DH SI 110 直接地址 [BP]+D8 [BP]+D16 111BH DI 111 [BX] [BX]+D8 [BX]+D16 例:ADD DISP[BX[D],DX DISP=2145H 00000001100100010100010100100001 操作码D W MOD REG R/M位移量低位移量高 D=0源操作数是寄存器操作数 W=1操作数是16位 操作码是:01914521H Ji Lin University China COMPUTER SCIENCE AND TECHNOLOGY
COMPUTER SCIENCE AND TECHNOLOGY COMPUTER SCIENCE AND TECHNOLOGY 8086指令格式(2) • R/M(寄存器/存储器)编码及有效地址计算方法 例:ADD DISP[BX][DI],DX DISP=2145H 000000 0 1 10 010 001 01000101 00100001 操作码 D W MOD REG R/M 位移量低 位移量高 D=0 源操作数是寄存器操作数 W=1 操作数是16位 操作码是: 01914521H MOD=11 MOD≠11(存储器操作数) REG W=0 W=1 R/M MOD=00 MOD=01 MOD=10 000 AL AX 000 [BX+SI] [BX+SI]+D8 [BX+SI]+D16 001 CL CX 001 [BX+DI] [BX+DI]+D8 [BX+DI]+D16 010 DL DX 010 [BP+SI] [BP+SI]+D8 [BP+SI]+D16 011 BL BX 011 [BP+DI] [BP+DI]+D8 [BP+DI]+D16 100 AH SP 100 [SI] [SI]+D8 [SI]+D16 101 CH BP 101 [DI] [DI]+D8 [DI]+D16 110 DH SI 110 直接地址 [BP]+D8 [BP]+D16 111 BH DI 111 [BX] [BX]+D8 [BX]+D16
2.2 8088的标志寄存器 标志寄存器FLAG × OF DF TF SF ZF AF × PF 15 14 13 12 10 9 8 5 ) 0 16位,其中有6个状态位、3个控制位 6个状态位:CF、PF、AF、ZF、SF、OF 3个控制位:IF、DF、TF i Lin University China CpTE型CIENCE AND T厘CHNDOLOGY
COMPUTER SCIENCE AND TECHNOLOGY COMPUTER SCIENCE AND TECHNOLOGY 2.2 8088的标志寄存器 标志寄存器 FLAG • 16位,其中有6个状态位、3个控制位 • 6个状态位:CF、PF、AF、ZF、SF、OF • 3个控制位:IF、DF、TF × × × × OF DF IF TF SF ZF × AF × PF × CF 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
8088的标志寄存器 (1) 标志寄存器FLAG(状态位) 进位标志CF,反映算术运算后,最 高位(字节操作为D2,字操作为D15) 出现进位(或借位)的情况,有则 为“1” 奇偶标志P℉,反映操作结果中“1 的个数的情况,若为偶数,P℉=1 辅助进位标志AF,反映一个8位量的 低4位向高4位有无进位(或借位) 的情况,有则置“1” Ji Lin University China COMPUTER SCIENCE AND TECHNOLOGY
COMPUTER SCIENCE AND TECHNOLOGY COMPUTER SCIENCE AND TECHNOLOGY 8088的标志寄存器 (1) 标志寄存器 FLAG (状态位) • 进位标志CF,反映算术运算后,最 高位(字节操作为D7,字操作为D15) 出现进位(或借位)的情况,有则 为“1” • 奇偶标志PF,反映操作结果中“1” 的个数的情况,若为偶数,PF=1 • 辅助进位标志AF,反映一个8位量的 低4位向高4位有无进位(或借位) 的情况,有则置“1
8088的标志寄存器 (2) 标志寄存器FLAG(状态位) 零标志ZF,反映运算结果是否为零的情 况,结果为零,ZF置为“1" 符号标志SF,反映运算结果的符号情况, 若结果为负数,SF为“1"。SF的取值与运 算结果最高位(字节操作为D,字操作为 D15)一致 溢出标记OF,反映带符号数运算结果是 否超过机器所能表示的数值范围的情况, 对字节运算为-128~+127,对字运算为 32768~+32767。若超过上述范围则称为 “溢出”,OF=1 Ji Lin University China COMPUTEP SCIENCE AND TECHNOLOGY
COMPUTER SCIENCE AND TECHNOLOGY COMPUTER SCIENCE AND TECHNOLOGY 8088的标志寄存器 (2) 标志寄存器 FLAG (状态位) • 零标志ZF,反映运算结果是否为零的情 况,结果为零,ZF置为“1” • 符号标志SF,反映运算结果的符号情况, 若结果为负数,SF为“1” 。SF的取值与运 算结果最高位(字节操作为D7,字操作为 D15)一致 • 溢出标记OF,反映带符号数运算结果是 否超过机器所能表示的数值范围的情况, 对字节运算为-128~+127,对字运算为- 32768~+32767。若超过上述范围则称为 “溢出” ,OF=1