版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、南京理工大学 王茂森 微机原理及应用微机原理及应用 南京理工大学 王茂森 2 8088/868088/86的指令系统的指令系统 本章主要内容:本章主要内容: 2.1 8088/862.1 8088/86的寻址方式的寻址方式 2.2 2.2 数据传送类指令数据传送类指令 2.3 2.3 算术运算类指令算术运算类指令 2.4 2.4 逻辑运算与移位指令逻辑运算与移位指令 2.5 2.5 串操作类指令串操作类指令 2.6 2.6 控制转移类指令控制转移类指令 2.7 2.7 处理器控制类指令处理器控制类指令 南京理工大学机械工程学院 自动机实验室 指令系统指令系统 指令系统是指微处理器所能执行的各种
2、指令的集合。指令系统是指微处理器所能执行的各种指令的集合。 不同的微处理器有不同的指令系统。不同的微处理器有不同的指令系统。 8088/86指令系统的特点:指令系统的特点: v 指令系统向上兼容指令系统向上兼容 v 采用变字节指令格式采用变字节指令格式 v 寻址能力强寻址能力强 v 具有处理多种数据类型的能力具有处理多种数据类型的能力 v 支持构成多处理器系统支持构成多处理器系统 南京理工大学机械工程学院 自动机实验室 8088/8086的指令格式 指令指令:由:由操作码操作码和和操作数操作数两部分组成。两部分组成。 操作码:操作码:指示计算机执行什么操作。指示计算机执行什么操作。 操作数:操
3、作数:指明参加操作的数本身或者操作数所在的地址。指明参加操作的数本身或者操作数所在的地址。 指令指令具体构成一般如下:具体构成一般如下: 指令助记符指令助记符 目的操作数目的操作数 ,源操作数源操作数 例如:例如:MOV AX, BX 南京理工大学机械工程学院 自动机实验室 所谓寻址就是寻找操作数的地址。所谓寻址就是寻找操作数的地址。 寻址方式寻址方式:根据操作数地址寻找操作数的方式就是寻址方式。根据操作数地址寻找操作数的方式就是寻址方式。 操作数可能在哪里呢?操作数可能在哪里呢? 1 1)操作数包含在指令中)操作数包含在指令中 2 2)在)在CPUCPU内部的某个寄存器中内部的某个寄存器中
4、3 3)在存储器(内存的数据区)中)在存储器(内存的数据区)中 4 4)在)在I/OI/O接口中接口中 南京理工大学机械工程学院 自动机实验室 寻址方式寻址方式 对应操作数所在四种可能,有以下四种基本寻址方式: 1)操作数包含在指令中立即寻址立即寻址 2)在CPU内部的某个寄存器中寄存器寻址寄存器寻址 3)在存储器(内存的数据区)中存储器寻址存储器寻址 4)在I/O接口中I/OI/O端口寻址端口寻址 南京理工大学机械工程学院 自动机实验室 1)立即寻址)立即寻址 操作数直接包含在指令中,紧跟在操作码之后并和操作码一操作数直接包含在指令中,紧跟在操作码之后并和操作码一 起存放在代码段区域中起存放
5、在代码段区域中,因而立即数总是和操作码一起被取,因而立即数总是和操作码一起被取 入入BIU(Bus Interface Unit BIU(Bus Interface Unit 总线接口总线接口) )的指令队列里,在指的指令队列里,在指 令执行时不再需要访问存储器,所以令执行时不再需要访问存储器,所以速度快速度快。 立即数可以是立即数可以是8 8位的,也可以是位的,也可以是1616位的。位的。 规定立即数只能是整数、只能作源操作数。规定立即数只能是整数、只能作源操作数。 立即寻址方式主要用于给寄存器赋值。立即寻址方式主要用于给寄存器赋值。 例如:例如: MOV ALMOV AL,80H80H M
6、OV AX MOV AX,8080H8080H 南京理工大学机械工程学院 自动机实验室 2)寄存器寻址)寄存器寻址 操作数存放在指令规定的寄存器中,寄存器名包操作数存放在指令规定的寄存器中,寄存器名包 含在指令中含在指令中。 操作数可以是操作数可以是16位的,也可以是位的,也可以是8位的。位的。 对对16位的操作数,位的操作数,需用需用AX(累加器累加器)、BX(基数基数)、CX(计计 数器数器)、DX(数据数据)、SI(源变址源变址)、DI(目的变址目的变址)、BP(基数指基数指 针针)、SP(堆栈指针堆栈指针)等等16位通用寄存器位通用寄存器, 段寄存器段寄存器CS(代码(代码 段)、段)
7、、DS(数据段)、(数据段)、SS(堆栈段)和(堆栈段)和ES(附加段附加段)仅用在仅用在 部分传送指令中部分传送指令中)。 对于对于8位的操作数,可用位的操作数,可用AH、AL、BH、BL、CH、CL、 DH、DL等等 8位寄存器。位寄存器。 南京理工大学机械工程学院 自动机实验室 例如:MOV BX,AX ADD AL,BL BX AX 由于寄存器在处理器内部,传输数据不需要通 过BIU,所以采用寄存器寻址方式可以提高工作 效率。对于那些需要经常存取的操作数,采用寄 存器寻址方式较为合适。 2)寄存器寻址)寄存器寻址 南京理工大学机械工程学院 自动机实验室 3)存储器寻址)存储器寻址 存储
8、器寻址存储器寻址: : 操作数在内存的数据段中,这时指令操作数在内存的数据段中,这时指令 中的操作数包含着此操作数的地址中的操作数包含着此操作数的地址。 在在8088/80868088/8086管理的内存中,内存地址由段基地管理的内存中,内存地址由段基地 址和段内偏移量两部分组成。由于操作数一般是址和段内偏移量两部分组成。由于操作数一般是 在数据段在数据段DSDS中,段基地址默认在中,段基地址默认在DSDS段寄存器中。段寄存器中。 在指令的操作数部分规定的地址是段内偏移量在指令的操作数部分规定的地址是段内偏移量。 南京理工大学机械工程学院 自动机实验室 3)存储器寻址)存储器寻址 适应要处理的
9、各种适应要处理的各种数据结构数据结构的需的需 要,段内偏移量可以有多种方式给出。要,段内偏移量可以有多种方式给出。 根据给出段内偏移量(又称有效根据给出段内偏移量(又称有效 偏移地址偏移地址EAEA)方式的不同,存储器寻)方式的不同,存储器寻 址方式又有以下五种方式之分:址方式又有以下五种方式之分: 南京理工大学机械工程学院 自动机实验室 3)存储器寻址)存储器寻址- 直接寻址直接寻址 操作数在存储器中,其偏移地址由指令直接给出操作数在存储器中,其偏移地址由指令直接给出。 例如:例如: MOV AX,2000H ;是将;是将DS段中段中2000H单元内容送单元内容送AL 中,中,2001H单元
10、内容送单元内容送AH中。中。(注意注意: 必需必需 ) 如果对其他段寄存器所指出的存储区进行直接寻址,则在如果对其他段寄存器所指出的存储区进行直接寻址,则在 本条指令前必须用前缀指出段寄存器名。本条指令前必须用前缀指出段寄存器名。在在8088/8086中允许中允许 段超越,即允许操作数在代码段、堆栈段或附加段的区域中。段超越,即允许操作数在代码段、堆栈段或附加段的区域中。 例如:例如: CS:MOV BX,3000H ;是将;是将CS段的段的3000H和和3001H 两单元内容送两单元内容送BX中。中。 南京理工大学机械工程学院 自动机实验室 3)存储器寻址)存储器寻址- 直接寻址直接寻址 例
11、如:MOV AX,1000H,已知DS=3000H 12H 34H 10H 00H 操作 码 AX AH AL 代码段数据段 31000H 34H12H 3000H*10H =30000H 1000H 31000H 南京理工大学机械工程学院 自动机实验室 3)存储器寻址)存储器寻址- 寄存器间接寻址寄存器间接寻址 寄存器间接寻址寄存器间接寻址:操作数的有效偏移地址存放在寄存器:操作数的有效偏移地址存放在寄存器 中,即以寄存器内容间接指示内存操作数的偏移地址。中,即以寄存器内容间接指示内存操作数的偏移地址。 可用于间接寻址的寄存器有:可用于间接寻址的寄存器有:SI、DI、BX、BP。 所使用的段
12、寄存器由指令中的间址寄存器确定。所使用的段寄存器由指令中的间址寄存器确定。 v若用若用BX、SI、DI寄存器间址,则寄存器间址,则操作数在当前数据段操作数在当前数据段中,中, 即段地址在即段地址在DS中。中。 v若用若用BP间址,则间址,则操作数在堆栈段操作数在堆栈段SS中。中。 南京理工大学机械工程学院 自动机实验室 3)存储器寻址)存储器寻址- 寄存器间接寻址寄存器间接寻址 例:例:MOV CX,BX;已知;已知DS=3000H,BX=1000H 解:已知段地址和偏移地址,则存储单元的物理地址为:解:已知段地址和偏移地址,则存储单元的物理地址为: 30000H + 1000H = 3100
13、0H CX CH CL 12H 34H 操作 码 代码段数据段 31000H 34H12H 南京理工大学机械工程学院 自动机实验室 3)存储器寻址)存储器寻址- 寄存器间接寻址寄存器间接寻址 寄存器间址通常用来对一维数据或表格进行处理,寄存器间址通常用来对一维数据或表格进行处理, 这时只要改变间址寄存器中的内容,用一条寄存器这时只要改变间址寄存器中的内容,用一条寄存器 间址指令就可对连续的存储单元进行操作。间址指令就可对连续的存储单元进行操作。 循环程序设计中,也多用间接寻址。循环程序设计中,也多用间接寻址。 南京理工大学机械工程学院 自动机实验室 3)存储器寻址)存储器寻址-(寄存器相对寻址
14、寄存器相对寻址)变址寻址变址寻址 操作数在存储器中操作数在存储器中,其偏移地址是指定的寄存器的内容,其偏移地址是指定的寄存器的内容 与指令中给出的位移量相加之和。段地址依据使用的寄与指令中给出的位移量相加之和。段地址依据使用的寄 存器的不同而不同。使用寄存器存器的不同而不同。使用寄存器BX、SI、DI时约定为时约定为 DS,使用寄存器,使用寄存器BP时约定为时约定为SS。 例如:例如:MOV BX+6,AL 或或 MOV 6BX,AL MOV BP+6,AX 或或 MOV 6BP,AX MOV AX,COUNT SI BXBX BPBP SISI DIDI EA = 8位偏移量位偏移量 16位
15、偏移量位偏移量 + 南京理工大学机械工程学院 自动机实验室 3)存储器寻址)存储器寻址-(寄存器相对寻址寄存器相对寻址)变址寻址变址寻址 变址寻址的速度比直接寻址慢,因变址寻址的速度比直接寻址慢,因CPU要多执行一要多执行一 次加法。次加法。 变址寻址通常用来访问一维数组中的元素,位移量变址寻址通常用来访问一维数组中的元素,位移量 用来确定数组的起点,间址寄存器的值选择一个元用来确定数组的起点,间址寄存器的值选择一个元 素。素。 南京理工大学机械工程学院 自动机实验室 3)存储器寻址)存储器寻址- 基址加变址寻址基址加变址寻址 操作数在存储器中操作数在存储器中,其偏移地址是指令中指定的基址寄存
16、器和,其偏移地址是指令中指定的基址寄存器和 变址寄存器的内容相加之和。段地址由基址寄存器约定在哪一变址寄存器的内容相加之和。段地址由基址寄存器约定在哪一 个段寄存器中。基址使用寄存器个段寄存器中。基址使用寄存器BX时约定为时约定为DS、使用寄存器、使用寄存器 BP时约定为时约定为SS。 例如:MOV BX+SI,AX 或MOV BXSI,AX BXBX BPBP EA = + SISI DIDI 南京理工大学机械工程学院 自动机实验室 3)存储器寻址)存储器寻址- 基址变址相对寻址基址变址相对寻址 操作数在存储器中,其偏移地址是指令中指定的基址寄存器和变,其偏移地址是指令中指定的基址寄存器和变
17、 址寄存器的内容与位移量址寄存器的内容与位移量3项相加之和。段地址由基址寄存器项相加之和。段地址由基址寄存器 约定在哪一个段寄存器中。基址使用寄存器约定在哪一个段寄存器中。基址使用寄存器BX时约定为时约定为DS、 使用寄存器使用寄存器BP时约定为时约定为SS。 例如:MOV BX+SI+5,AX 或MOV 5BXSI,AX BXBX BPBP EA = 8位偏移量位偏移量 16位偏移量位偏移量 + SISI DIDI + 南京理工大学机械工程学院 自动机实验室 3) 存储器寻址存储器寻址- 基址变址相对寻址基址变址相对寻址 由于基址和变址寄存器中的内容都可以修改,所以基址由于基址和变址寄存器中
18、的内容都可以修改,所以基址 加变址方式和基址加变址相对寻址方式常用来处理二维加变址方式和基址加变址相对寻址方式常用来处理二维 数组。数组。 南京理工大学机械工程学院 自动机实验室 4)I/O端口寻址端口寻址 操作数存放在某个操作数存放在某个I/O端口中,指令中指出操作数所在的端口中,指令中指出操作数所在的 端口。端口。 8088/8086CPU的端口操作指令只有输入和输出两条指的端口操作指令只有输入和输出两条指 令令: IN OUT。 例如:例如: IN AL,5 OUT 32H,AL 南京理工大学机械工程学院 自动机实验室 8088/8086指令寻址方式小结 (1 1)立即寻址)立即寻址 (
19、2 2)寄存器寻址)寄存器寻址 (3 3)存储器寻址)存储器寻址 1 1)直接寻址)直接寻址 2 2)寄存器间址)寄存器间址 3 3)变址寻址)变址寻址 4 4)基址加变址寻址)基址加变址寻址 5 5)基址加变址相对寻址)基址加变址相对寻址 (4 4)I/OI/O端口寻址端口寻址 南京理工大学机械工程学院 自动机实验室 8088/8086指令的编码组成 8088/8086采用了变字节的指令格式,指令长度最短采用了变字节的指令格式,指令长度最短 的仅的仅1个字节,最长的占个字节,最长的占6个字节。指令编码由操作码、个字节。指令编码由操作码、 寻址方式和操作数三部分组成。寻址方式和操作数三部分组成
20、。 通常,指令的第一字节为操作码,规定指令的操作类型通常,指令的第一字节为操作码,规定指令的操作类型; ; 第二字节规定操作数的寻址方式第二字节规定操作数的寻址方式; ; 之后的第之后的第3-63-6字节,依据指令的不同而取舍,可变字节指令主字节,依据指令的不同而取舍,可变字节指令主 要体现在这里,这部分一般用来指出存储器操作数地址的偏要体现在这里,这部分一般用来指出存储器操作数地址的偏 移量或立即数。移量或立即数。 南京理工大学机械工程学院 自动机实验室 8088/8086指令的编码组成 操作码操作码/寻址方式字节格式如下:寻址方式字节格式如下: D7D6D5D4D3D2D1D0D7D6D5
21、D4D3D2D1D0 OPCODEDWMODREGR/M 第一字节中:第一字节中:6 6位位 OPCODEOPCODE可表示可表示6464个不同的操作个不同的操作 ; W指示操作数类型,指示操作数类型,W=1(字),(字),W=0(字节);(字节); D指示操作数的传送方向,指示操作数的传送方向, D=1,寄存器操作数为源操作数,寄存器操作数为源操作数 D=0,寄存器操作数为目的操作数,寄存器操作数为目的操作数 第一字节第一字节 第二字节第二字节 南京理工大学机械工程学院 自动机实验室 8088/8086指令的编码组成 第二字节指出所用的操作数第二字节指出所用的操作数 (源,目的)存放的位置,
22、(源,目的)存放的位置, 以及存储器操作数有效地址以及存储器操作数有效地址 的计算方法。的计算方法。 D5D3的的REG 字段规定一字段规定一 个寄存器操作数,由第一字个寄存器操作数,由第一字 节的节的D1位决定作为源还是位决定作为源还是 目的操作数。目的操作数。 REGW=0W=1 000ALAX 001CLCX 010DLDX 011BLBX 100AHSP 101CHBP 110DHSI 111BHDI 南京理工大学机械工程学院 自动机实验室 8088/8086指令的编码组成 D7、D6 的的MOD字段用来区字段用来区 分分另一个操作数另一个操作数是存储器操是存储器操 作数作数M还是寄存
23、器操作数还是寄存器操作数R, 若是存储器操作数则进一步若是存储器操作数则进一步 指出存储器操作数地址位移指出存储器操作数地址位移 量的字节数。量的字节数。 MOD方式方式位移量位移量 00M无 01M8位 10M16位 11R/ 南京理工大学机械工程学院 自动机实验室 8088/8086指令的编码组成 R/M字段由字段由MOD字段控制,若字段控制,若MOD=11,则,则 R/M字段指出第二操作数寄存器的名称;字段指出第二操作数寄存器的名称; 若若MOD=00,01,10,则,则R/M字段指出如何字段指出如何 计算存储器操作数地址。计算存储器操作数地址。 南京理工大学机械工程学院 自动机实验室
24、8088/8086指令的编码组成 MOD 存储器操作数存储器操作数W=0W=1 R/M0001101111 000BX+SIBX+SI+D8BX+SI+D16ALAX 001BX+DIBX+DI+D8BX+DI+D16CLCX 010BP+SIBP+SI+D8BP+SI+D16DLDX 011BP+DIBP+DI+D8BP+DI+D16BLBX 100SISI+D8SI+D16AHSP 101DIDI+D8DI+D16CHBP 110BPBP+D8BP+D16DHSI 111BXBX+D8BX+D16BHDI 南京理工大学机械工程学院 自动机实验室 8086/8088指令系统 8088/808
25、6指令按功能分为以下六类: 一、一、数据传送指令数据传送指令 二、算术运算指令二、算术运算指令 三、逻辑运算与移位指令三、逻辑运算与移位指令 四、串操作指令四、串操作指令 五、控制转移指令五、控制转移指令 六、处理器控制指令六、处理器控制指令 南京理工大学机械工程学院 自动机实验室 一、数据传送类指令 不论是专用计算机,还是通用计算机,也不不论是专用计算机,还是通用计算机,也不 管是数值计算或信息处理,还是实时控制,都需管是数值计算或信息处理,还是实时控制,都需 要传送数据。因此,数据传送是最基本、最主要要传送数据。因此,数据传送是最基本、最主要 的操作。数据传送类指令也是使用频率最高的。的操
26、作。数据传送类指令也是使用频率最高的。 传送类指令的特点是把数据从计算机的一个传送类指令的特点是把数据从计算机的一个 地方传送到另一个地方。把数据的原来所在地称地方传送到另一个地方。把数据的原来所在地称 为为“源源” SRC ,要接收数据的地方称为要接收数据的地方称为“目的地目的地” DST 南京理工大学机械工程学院 自动机实验室 数据传送指令数据传送指令用于实现用于实现CPU内部寄存器之间、寄存器与存内部寄存器之间、寄存器与存 储器之间、累加器与储器之间、累加器与I/O端口之间以及立即数到寄存器或端口之间以及立即数到寄存器或 存储器的数据传送,可按字或字节进行数据传送。存储器的数据传送,可按
27、字或字节进行数据传送。 数据传送类指令共有数据传送类指令共有14条,分为以下条,分为以下4小类:小类: (1)通用传送指令:通用传送指令: (2)累加器专用传送指令累加器专用传送指令 (3) 地址传送指令地址传送指令 (4) 标志传送指令标志传送指令 注:注:除特别说明外,数据传送类指令一般不影响标志位。除特别说明外,数据传送类指令一般不影响标志位。 一、数据传送类指令 南京理工大学机械工程学院 自动机实验室 (1) 通用传送指令 MOV DST,SRC PUSH SRC POP DST XCHG DST,SRC 南京理工大学机械工程学院 自动机实验室 通用传送指令MOV 格式:格式: MOV
28、 dst, src 功能:功能:把一个字节或一个字操作数从源传送到目的地把一个字节或一个字操作数从源传送到目的地(源源 保持不变保持不变) 通用传送指令的操作数及其传送方向如图所示:通用传送指令的操作数及其传送方向如图所示: 立即数 IMM 存储器 MEM 通用寄存 器REG DS ES SS (CS除外) 南京理工大学机械工程学院 自动机实验室 通用传送指令MOV 该指令有如下 几种种形式: (1) MOV BX, AX; 通用寄存器间进行传送 (2) MOV DX, 2000H ; 立即数送通用寄存器 (3) MOV WORD PTR BX, 2400H ; 立即数送存储器 (4) MOV
29、 BX, AX ; 通用寄存器送存储器 (5) MOV AX, BP+SI+5 ; 存储器送通用寄存器 (6) MOV DS, AX ; 通用寄存器送段寄存器 (CS除外) 南京理工大学机械工程学院 自动机实验室 通用传送指令MOV 使用该指令需注意以下几点: (1) 源和目的操作数不能同时为存储器操作数 (2) 两操作数的位数、类型和属性要一致 如: MOV AX,BL (3) 操作数不能出现二义性 如:MOV BX, 1 操作数的类型不明确(字/字节?) (4) CS,IP和立即数不能作目的操作数; (5) 不能直接用立即数给段寄存器赋值 (6)不能在段寄存器间直接传送数据 相关例:见P3
30、0 南京理工大学机械工程学院 自动机实验室 堆栈操作指令PUSH 格式:格式:PUSH src 功能:功能:将通用寄存器、段寄存器或存储器中的一个字压入栈顶。将通用寄存器、段寄存器或存储器中的一个字压入栈顶。 SP=0040H SP=003EH 12 34 1234 AH AL 设AX=1234H,下图是执行PUSH AX的具体过程(见书 P31,先减量修改指针再传送): 执行前执行后 南京理工大学机械工程学院 自动机实验室 堆栈操作指令POP 格式:格式: POP dst 功能:功能:将将SP所指向的栈顶的一个字弹出给通用寄存器、段所指向的栈顶的一个字弹出给通用寄存器、段 寄存器寄存器(CS
31、除外除外)。同时进行修改堆栈指针的操作,。同时进行修改堆栈指针的操作, 即:即: SPSP+2 例如:POP DX POP CX (过程见书P32,先传送再增量修改指针) 南京理工大学机械工程学院 自动机实验室 数据交换指令XCHG 格式:格式:XCHG dst, src 功能:功能:将源和目的操作数(字将源和目的操作数(字/字节)中的内容交换。字节)中的内容交换。 注意:注意:交换只能在通用寄存器之间、通用寄存器和存储器之间进行。即:交换只能在通用寄存器之间、通用寄存器和存储器之间进行。即: XCHG REG,REG XCHG REG,MEM XCHG MEM,REG 例如:将数据段中的字变
32、量例如:将数据段中的字变量DATA1和和DATA2互换互换. MOV AX,DATA1 XCHG AX,DATA2 MOV DATA1,AX 不可在两存储器之间不可在两存储器之间 南京理工大学机械工程学院 自动机实验室 (2)累加器专用传送指令 IN AX(AL),n(DX) OUT n(DX), AX(AL) XLAT 表名 (查表转换指令) 南京理工大学机械工程学院 自动机实验室 累加器专用传送指令IN,OUT 格式:格式: IN Acc, Port 或或 IN Acc, DX 格式:格式: OUT Port, Acc 或或OUT DX, Acc 功能功能:对于对于8088,将一个字节由输
33、入端口传送至,将一个字节由输入端口传送至AL;对于;对于8086,还,还 可从端口进行字的输入输出,可将一个字由输入端口传送至可从端口进行字的输入输出,可将一个字由输入端口传送至 AX。 注意:注意:端口地址若是由指令中的端口地址若是由指令中的port所规定,则只可寻址所规定,则只可寻址0255,端,端 口地址若用口地址若用DX间址,则允许寻址间址,则允许寻址64K个输入端口。个输入端口。 南京理工大学机械工程学院 自动机实验室 累加器专用传送指令IN,OUT 例2: MOV DX, 330H IN AL, DX OUT DX, AL 端口地址超过端口地址超过255,必须用,必须用DX间间 址
34、访问。这里的址访问。这里的DX表示的是寄存表示的是寄存 器间接寻址的外设地址,而不是器间接寻址的外设地址,而不是 寄存器寻址。寄存器寻址。 例1: IN AL, 06H OUT 06H, AL 端口地址在端口地址在(00HFFH) 之间,可以用直接输入之间,可以用直接输入 输出指令输出指令 南京理工大学机械工程学院 自动机实验室 累加器专用传送指令 查表转换指令XLAT 格式:格式:XLAT source-table 功能:功能:该指令是从存放于内存的转换表中查找出一个该指令是从存放于内存的转换表中查找出一个 字节的内容,用以取代字节的内容,用以取代AL寄存器中的内容。它寄存器中的内容。它 的
35、操作数都是隐含的,在此指令之前,要将的操作数都是隐含的,在此指令之前,要将BX 指向转换表的起点。指向转换表的起点。AL中的内容用做查表时的中的内容用做查表时的 索引,查出表中偏移量等于索引,查出表中偏移量等于AL中的二进制值的中的二进制值的 那个单元的内容,并用其取代那个单元的内容,并用其取代AL中原来的内容。中原来的内容。 即即 BX+ALAL。 该指令可以方便地将一种代码转换为另一该指令可以方便地将一种代码转换为另一 种代码。种代码。 南京理工大学机械工程学院 自动机实验室 累加器专用传送指令 查表转换指令XLAT 例:从例:从5号端口输入一位十进制数码,将其转换后再输号端口输入一位十进
36、制数码,将其转换后再输 出到出到10号端口号端口(见见P33) MOV BX, OFFSET TABLE IN AL, 5 XLAT TABLE OUT 10, AL 南京理工大学机械工程学院 自动机实验室 (3)地址传送指令 LEA DST,SRC LDS DST,SRC LES DST,SRC 南京理工大学机械工程学院 自动机实验室 地址传送指令LEA 1偏移地址传送指令 格式:LEA REG16,MEM 功能:将存储单元的偏移地址送16位通用寄存器。该指令常用来给某 个16位通用寄存器设置地址初值,以便从此开始存取数据。 例:LEA BX, 1200H; 执行后BX=1200H 另外:L
37、EA BX, TABLE MOV BX, OFFSET TABLE 作用相同 南京理工大学机械工程学院 自动机实验室 地址传送指令LDS,LES 2 2传送数据段偏移地址及数据段段地址指令 格式:LDS REG16,MEM32 功能:将存放在存储器中的32位地址指针分别传送到两个寄存 器中。高位地址内容送DS,低位地址内容送指令中给出的寄存 器。 例:LDS SI,BX; 则将BX+3和BX+2送DS,BX+1和BX送SI 3 3传送附加段偏移地址和附加段段地址指令传送附加段偏移地址和附加段段地址指令 格式:LES REG16,MEM32 功能:除了将段地址送ES外,其余和LDS指令类似。 例
38、:LES DI,DWORD PTR BX 则将DS段的BX+3和BX+2送ES,BX+1和BX送DI 南京理工大学机械工程学院 自动机实验室 (4)标志位传送指令 LAHF SAHF PUSHF POPF 南京理工大学机械工程学院 自动机实验室 标志传送指令 1标志寄存器低8位送AH 格式: LAHF 功能:将标志寄存器低8位中的SF,ZF, AF,PF,CF送至AH中的相应位。 AH内容送标志寄存器低8位 格式:SAHF 说明:影响标志 2标志寄存器内容进栈 格式:PUSHF 标志寄存器内容出栈 格式:POPF 说明:影响标志 PUSHF和POPF指令一般用在子程序和中断 处理程序的首尾。
39、南京理工大学机械工程学院 自动机实验室 标志传送指令 在8088/8086指令系统中,没有直接改变跟踪标志T 的指令,故要改变T标志,须将标志压入堆栈,改变 堆栈中对应D8位的值,然后再从堆栈中弹出标志。 如: PUSHF POP AX OR AH,01H PUSH AX POPF O D IT S ZAPC 南京理工大学机械工程学院 自动机实验室 作业5 P65:2-1、2、7 南京理工大学机械工程学院 自动机实验室 补充: 80 x86系列指令系统 80 x8680 x86及其兼容芯片是应用最多的处理器芯片,属于及其兼容芯片是应用最多的处理器芯片,属于CISCCISC型的指令型的指令 系统
40、。系统。80868086指令指令是是变字长指令变字长指令,不同指令的操作码和寻址方式不同,指,不同指令的操作码和寻址方式不同,指 令长度也不一致,每条指令由令长度也不一致,每条指令由1 16 6个字节组成个字节组成。以。以8086CPU8086CPU为例说明为例说明 CISCCISC芯片分析指令编码的特点。芯片分析指令编码的特点。 前面讲的最常用的两操作数的传送、加、减、与、或指令的编码格式如前面讲的最常用的两操作数的传送、加、减、与、或指令的编码格式如 图所示。图所示。 操作码操作码 反映该反映该指令的功能指令的功能 OPCODEOPCODE; 类型类型 反映反映操作数操作数的的类型类型(字
41、长等)(字长等),W,W; 寻址方式寻址方式 反映反映操作数操作数的寻的寻址方式址方式,寄存器操作数的编码也在,寄存器操作数的编码也在 其间其间 D REG MOD R/MD REG MOD R/M; 南京理工大学机械工程学院 自动机实验室 操作数操作数 操作数中的操作数中的立即数立即数、内存操作数中的位移量部分。、内存操作数中的位移量部分。 对于实现对于实现“寄存器与寄存器,寄存器与存储器之间寄存器与寄存器,寄存器与存储器之间”的上述操作的指的上述操作的指 令而言,令而言, 上述上述80868086指令编码格式可细化为以下图所示的格式。指令编码格式可细化为以下图所示的格式。 中中 6 6位位
42、 OPCODEOPCODE可表示可表示6464个不同的操作个不同的操作 ; D D 位表示数据传送的方向:位表示数据传送的方向:D=0D=0,寄存器为,寄存器为源操作数源操作数,D=1D=1,寄存器,寄存器 为为目的操作数目的操作数 ; W W 位表示操作数是字还是字节:位表示操作数是字还是字节:W=1W=1,为,为字操作字操作,W=0W=0,为,为字节操作字节操作 中中3 3位位 REG REG 字段的编码如表字段的编码如表 : 南京理工大学机械工程学院 自动机实验室 两个操作数中有两个操作数中有一个是寄存器一个是寄存器,其编码由上表所示;,其编码由上表所示;另一个是寄存另一个是寄存 器或是存储器器或是存储器,其指令代码由第二个字节中的,其指令代码由第二个字节中的MODMOD字段字段和和R/MR/M字段决字段决 定定, 如下表所示。如下表
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024版标准担保协议中英文本版B版
- 二零二五年度夫妻分居期间财产管理合同3篇
- 2024版详尽连带担保合同电子版下载版B版
- 二零二五年度导购员客户关系管理与维护合同3篇
- 二零二五年度城市基础设施建设项目质押担保借款合同3篇
- 2024版事业单位人员聘用合同范文
- 一流本科专业建设的规划与实施路径
- 2024年文化衍生品行纪代销合同3篇
- 第19章 生物的生殖和发育说课稿2023-2024学年北师大版生物八年级上册
- 2025年青岛版六三制新选择性必修2生物下册月考试卷
- 江西省特种作业人员体检表(共1页)
- 室间隔缺损教学查房
- 幼儿园大班主题《我自己》个别化学习
- 派出所立体化勤务指挥室建设模式探析――以大连市公
- 物资设备部工作述职报告
- 单值移动极差图(空白表格)
- 精品资料(2021-2022年收藏)龙门吊轨道基础施工方案
- 画廊与画家合作协议书范本
- 全口义齿-印模与模型-课件PPT
- 地方课程六年级上册
- 中科院大连化物所模板PPT课件
评论
0/150
提交评论