第2章 8088指令系统 。 指令:控制计算机完成指定操作的命令 。 指令系统:所有指令的集合 8088/8086指令系统是所有x86系列CPU指令系统 的基础,80286、80386乃至于Pentiums等新型CPU 指令是在这个基础上做了一些扩充。 8088指令系统共包含92种基本指令 8088指令按照功能分为6大类: 数据传送类 算术运算类 逻辑运算和移位 串操作 控制转移类 处理器控制 Ji Lin University China COMPUTER SCIENCE山NDY室CHNOLOGY
COMPUTER SCIENCE AND TECHNOLOGY COMPUTER SCIENCE AND TECHNOLOGY 第2章 8088指令系统 • 指令:控制计算机完成指定操作的命令 • 指令系统:所有指令的集合 • 8088/8086指令系统是所有x86系列CPU指令系统 的基础,80286、80386乃至于Pentium等新型CPU 指令是在这个基础上做了一些扩充。 • 8088指令系统共包含92种基本指令 • 8088指令按照功能分为6大类: 数据传送类 算术运算类 逻辑运算和移位 串操作 控制转移类 处理器控制
指令的基本构成 指令助记符包括操作码和操作数,指令长度一般在1~6个 字节之间 操作码:表示指令完成什么样的功能 操作数:指令的操作对象(操作数可以是:双操作数,即 源操作数和目的操作数;单操作数;隐含操作数) 指令的一般格式: 操作码 [操作数],[操作数];[注释] 操作数的一般形式: 1.立即数操作数(具有固定数值的操作数,即常数,8位或 16位。只能用作源操作数) 2.寄存器操作数(如8个通用寄存器,段寄存器) 3.存储器操作数(可以作源操作数或目的操作数) 4.I/0端口操作数(可以作源操作数或目的操作数) Ji Lin University China COMPUTER SCIENCE AND TECHNOLOGY
COMPUTER SCIENCE AND TECHNOLOGY COMPUTER SCIENCE AND TECHNOLOGY 指令的基本构成 • 指令助记符包括操作码和操作数,指令长度一般在1~6个 字节之间 • 操作码:表示指令完成什么样的功能 • 操作数:指令的操作对象(操作数可以是:双操作数,即 源操作数和目的操作数;单操作数;隐含操作数) • 指令的一般格式: 操作码 [操作数],[操作数];[注释] • 操作数的一般形式: 1.立即数操作数(具有固定数值的操作数,即常数,8位或 16位。只能用作源操作数) 2.寄存器操作数(如8个通用寄存器,段寄存器) 3.存储器操作数(可以作源操作数或目的操作数) 4.I/O端口操作数(可以作源操作数或目的操作数)
2.1 8088的寻址方式 寻址方式:获得操作数地址的方法 寻址方式通常有6种: 1.立即寻址 2.直接寻址 3.寄存器寻址 4.寄存器间接寻址 5.变址寻址 6.基址加变址寻址 为了适应各种数据结构,指令中的段内偏移量可 以由几个部分组成,称之为有效地址EA。 Ji Lin University China COMPUTER SCIENCE AND里CYO是OG
COMPUTER SCIENCE AND TECHNOLOGY COMPUTER SCIENCE AND TECHNOLOGY 2.1 8088的寻址方式 • 寻址方式:获得操作数地址的方法 • 寻址方式通常有6种: 1.立即寻址 2.直接寻址 3.寄存器寻址 4.寄存器间接寻址 5.变址寻址 6.基址加变址寻址 • 为了适应各种数据结构,指令中的段内偏移量可 以由几个部分组成,称之为有效地址EA
立即寻址(Immediate Addressing) 操作数紧跟在操作码后面,与操作数一起存放在 一个代码段区域中。可以是8位也可以16位。 ·例如:M0VAX,3102H M M→ 操作码 AH AL 操作码 立即数 低8位 码段 02H 段 高8位 31H Ji Lin University China COMPUTER SCIENCE AND TECHNOLOGY
COMPUTER SCIENCE AND TECHNOLOGY COMPUTER SCIENCE AND TECHNOLOGY 立即寻址(Immediate Addressing) • 操作数紧跟在操作码后面,与操作数一起存放在 一个代码段区域中。可以是8位也可以16位。 • 例如:MOV AX, 3102H 31H 02H 操作码 AH AL 码 段 M 高8位 低8位 操作码 码 段 M 立即数
直接寻址(Direct Addressing) 直接寻址时,有效地址(EA)直接包含在指令 中,紧跟在操作码之后。 DS 2000 0 操作码 02 霞 20000 31 例如 3102 DS=2000H 23102 MOV AX, [3102H] AX 30 40 40 23102 30 23103 Ji Lin University China COMPUTER SCIENCE山DY室CHNDLOGY
COMPUTER SCIENCE AND TECHNOLOGY COMPUTER SCIENCE AND TECHNOLOGY 直接寻址(Direct Addressing) • 直接寻址时,有效地址(EA )直接包含在指令 中,紧跟在操作码之后。 20000 + 3102 23102 DS 2000 0 30 40 31 02 操作码 23102 23103 码 段 AX 30 40 • 例如 DS=2000H MOV AX, [3102H]
寄存器寻址(Register Addressing) 上 操作数存放在指定的寄存器中,对于16位数据, 寄存器有AX、BX、CX、DX、SI、DI、SP、BP 例如:MOV DS,AX DS AH AL 执行结果送DS Ji Lin University China COMPUTER SCIENCE AND TECHNOLOGY
COMPUTER SCIENCE AND TECHNOLOGY COMPUTER SCIENCE AND TECHNOLOGY 寄存器寻址(Register Addressing) • 操作数存放在指定的寄存器中,对于16位数据, 寄存器有AX、BX、CX、DX、SI、DI、SP、BP • 例如:MOV DS, AX DS AH AL 执行结果送DS
寄存器间接寻址(Register Indirect Addressing) 寄存器中的内容是操作数的偏移地址,操作数存 放在存储器中。(SI、DI、BX、BP) EA= (BX) 例如: MOV AX,[SI] (SI) DS=6000H (DI) SI=1200H (BP) AH AL 段 44H 61200H 数据 33H 61201H 执行结果(AX)=3344H Ji Lin University China
COMPUTER SCIENCE AND TECHNOLOGY COMPUTER SCIENCE AND TECHNOLOGY 寄存器间接寻址(Register Indirect Addressing) • 寄存器中的内容是操作数的偏移地址,操作数存 放在存储器中。(SI、DI、BX、BP) 例如:MOV AX,[SI] DS=6000H SI=1200H EA= (BX) (SI) (DI) (BP) AH AL 33H 44H 61200H 61201H 码 段 数 据 段 执行结果(AX)=3344H
变址寻址(Index Addressing) 操作数放在存储器中,寄存器(SI、DI、BX、BP)内容作为间 接地址,加上指令中给出的8位或16位偏移量(相对值), 形成操作数的有效地址。 段寄存器由间址寄存器决定。 例:MOV AX,DATA[BX] DS 6000 0 操作码 操作码 码段 60000 08 低字节 BX: 1000 00 高字节 DATA: +0008 61008 61008 66H 55H AX AH AL 数据段 Ji Lin University China COMPUTER SCIENCE AND TECHNOLOGY
COMPUTER SCIENCE AND TECHNOLOGY COMPUTER SCIENCE AND TECHNOLOGY 变址寻址(Index Addressing) • 操作数放在存储器中,寄存器(SI、DI、BX、BP)内容作为间 接地址,加上指令中给出的8位或16位偏移量(相对值), 形成操作数的有效地址。 • 段寄存器由间址寄存器决定。 • 例:MOV AX,DATA[BX] 60000 BX: 1000 DATA: + 0008 61008 AX AH AL 61008 DS: 6000 0 数据段 操作码 码段 08 00 低字节 高字节 操作码 66H 55H
基址加变址寻址 (1) k 有效地址为:基址寄存器(BX、BP)内容加变址寄存器(SI、 DI)内容。 BX的默认段寄存器DS。BP的默认段寄存器是SS. 例如:MOV AX,.[BX][SI] DS 8000 0 操作码 DS 80000 BX: 1000 码段 SI: +2000 83000H AX 30 40 40 83000 30 83001 段 Ji Lin University China C
COMPUTER SCIENCE AND TECHNOLOGY COMPUTER SCIENCE AND TECHNOLOGY 基址加变址寻址(1) • 有效地址为:基址寄存器(BX、BP)内容加变址寄存器(SI、 DI)内容。 • BX的默认段寄存器DS。BP的默认段寄存器是SS. 例如:MOV AX, [BX][SI] DS : 80000 BX: 1000 SI: + 2000 83000H DS 8000 0 AX 30 40 30 40 操作码 83000 83001 码 段 数 据 段
基址加变址寻址(2) 有效地址为基址寄存器内容加变址寄存器内容加8 位或16位偏移量。默认段寄存器DS或SS 例如:MOV AX,DATA[BX][DI] DS 8000 操作码 DS 80000 DATA BX: 1000 00 码段 DI: + 2000 02 DATA:+0200 83200H AX 30 40 40 83200 数 30 83201 段 Ji Lin University China COMPUTER SCIENCE AND TECHNOLOGY
COMPUTER SCIENCE AND TECHNOLOGY COMPUTER SCIENCE AND TECHNOLOGY 基址加变址寻址(2) • 有效地址为基址寄存器内容加变址寄存器内容加8 位或16位偏移量。默认段寄存器DS或SS • 例如:MOV AX,DATA[BX][DI] DS : 80000 BX: 1000 DI: + 2000 DATA: + 0200 83200H DS 8000 0 AX 30 40 DATA 30 40 02 00 操作码 83200 83201 码 段 数 据 段