指令系统和寻址方式.ppt
合集下载
七种寻址方式.ppt
其中Ri中的内容为40H,把内部RAM中40H单元的内容送 到A。
寻址范围: (1)访问内部RAM低128个单元,其通用形式为@Ri (2)对片外数据存储器的64K字节的间接寻址,例如:
MOVX A,@DPTR
(3)片外数据存储器的低256字节
例如:MOVX A,@Ri
(4)堆栈区
堆栈操作指令PUSH(压栈)和POP(出栈)使用堆 栈指针(SP)作间址寄存器
寄存器DPTR等。
1020
程序存储区 EA
片内RAM区
12
R2
4A
ACC
4A
MOV A,R2执行示意图
2.直接寻址方式 操作数直接以单元地址的形式给出: MOV A,40H 寻址范围: (1) 内部RAM的128个单元 (2) 特殊功能寄存器。除了以单元地址的形式外, 还可用寄存器符号的形式给出。例如: MOV A,80H 与 MOV A,P0是等价的。
地址 译码
寄存器区 内部控制信号
数据缓冲器 外部数据总线DB
指令 时钟及清零 寄存器
译码
外部控制总线CB
返回
D7 D6 D5 D4 D3 D2 D1 D0 27H 0 0 1 0 0 0 0 0
3F 3E 3D 3C 3B 3A 39 38
图4.9 SETB 3DH 指令执行示意图
7.相对寻址方式
在相对寻址的转移指令中,给出了地址偏 移量,以“rel”表示,即把PC的当前值加上偏 移量就构成了程序转移的目的地址:
目的地址=转移指令所在的地址 + 转移指令的字 节数 + rel
偏移量rel是一带符号的8位二进制数补码数 。
范围是:–128 ~ +127
向地址增加方向最大可转移(127+转移指令字节) 个单元地址,向地址减少方向最大可转移 (128-转移指令字节)个单元地址。
寻址范围: (1)访问内部RAM低128个单元,其通用形式为@Ri (2)对片外数据存储器的64K字节的间接寻址,例如:
MOVX A,@DPTR
(3)片外数据存储器的低256字节
例如:MOVX A,@Ri
(4)堆栈区
堆栈操作指令PUSH(压栈)和POP(出栈)使用堆 栈指针(SP)作间址寄存器
寄存器DPTR等。
1020
程序存储区 EA
片内RAM区
12
R2
4A
ACC
4A
MOV A,R2执行示意图
2.直接寻址方式 操作数直接以单元地址的形式给出: MOV A,40H 寻址范围: (1) 内部RAM的128个单元 (2) 特殊功能寄存器。除了以单元地址的形式外, 还可用寄存器符号的形式给出。例如: MOV A,80H 与 MOV A,P0是等价的。
地址 译码
寄存器区 内部控制信号
数据缓冲器 外部数据总线DB
指令 时钟及清零 寄存器
译码
外部控制总线CB
返回
D7 D6 D5 D4 D3 D2 D1 D0 27H 0 0 1 0 0 0 0 0
3F 3E 3D 3C 3B 3A 39 38
图4.9 SETB 3DH 指令执行示意图
7.相对寻址方式
在相对寻址的转移指令中,给出了地址偏 移量,以“rel”表示,即把PC的当前值加上偏 移量就构成了程序转移的目的地址:
目的地址=转移指令所在的地址 + 转移指令的字 节数 + rel
偏移量rel是一带符号的8位二进制数补码数 。
范围是:–128 ~ +127
向地址增加方向最大可转移(127+转移指令字节) 个单元地址,向地址减少方向最大可转移 (128-转移指令字节)个单元地址。
第二章 80868088寻址方式和指令系统
(5)奇偶标志PF
用于反映运算结果中“1”的个数。如果“1”的个数为偶数,则OF被置1,否则OF被清0。
(6)辅助进位标志AF
在字节操作时,如发生低半字节向高半字节进位或借位;在字操作时,如发生低字节向高字 节进位或借位,则辅助进位标志AF被置1,否则AF被清0。
②状态控制标志
(1)方向标志DF
方向标志决定着串操作指令执行时,有关指针寄存器调整方向。 当DF为1时,串操作指令按减方式改变有关的存储器指针值, 当DF为0时,串操作指令按加方式 改变有关的存储器指针值。
其中:存储单元的物理地址是12345H, 标出的:两个重叠段的段值分别是:1002H和1233H, 在对应段内的偏移分别是2325H和0015H。
采用段值和偏移构成逻辑地址后,段值由段寄存器给出,偏移可由指令指针IP、堆栈指针SP 和其他可作为存储器指针使用的寄存器(SI、DI、BX和BP)给出,偏移还可直接用16位数给 出。
图中指令存放在代码段中,OP表示该指令的操作码部分 再例如: MOV AL,5 则指令执行后,(AL)=05H
MOV BX,3064H 则指令执行后, (BX)=3064H
2、寄存器寻址方式
操作数在CPU内部的寄存器中,指令指定寄存器号。
对于16位操作数数,寄存器可以是:
AX、BX、CX、DX、SI、DI、SP和BP等;
指令中不使用物理地址,而是使用逻辑地址,由总线接口单元BIU按需要根据段值和偏移自动 形成20位物理址。
3、段寄存器的引用
由于8086/8088CPU有四个段寄存器,可保存四个段值。所以可同时使用四个段值,但这四个 段有所分工。
在取指令的时候,自动引用代码段寄存器CS,再加上由IP所给出的16位偏移,得到要取指令 的物理地址。
汇编语言第3章 指令系统和寻址方式
5.寄存器相对寻址方式(register relative addressing)
EA=基址(base) 或变址( index)+偏移量 (displacement)
基址寄存器有:BX,BP 变址寄存器有:SI,DI 注:默认段是数据段和堆栈段
(SI) 物理地址=(DS)*16+(BX)+displacement
(DI) =(SS)*16+(BP)+ (SI)+displacement (DI)
例:mov AX,ARRAY[BX][DI] (DS)=1000H,(BX)=1200H, (DI)=1000H, ARRAY=1000H 物理地址=DS*16+(BX)+(DI)+ARRAY =DS*16+1200+1000+1000=13200H 若:(13200)=34H,(13201)=12H 则,(AX)=1234H 允许段超越。 例:mov AL,ES:ARRAY[BX][DI] 用途:处理成组数据(举例说明)
2.段内间接寻址(intrasegment indirect addressing) (IP)新=EA=寄存器或存储单元的内容 寄存器:所有寄存器寻址方式可用的寄存器 存储单元:所有存储单元寻址方式均适用 例:JMP SI (IP)=(SI) JMP WORD PTR VAR或简写JMP VAR (DS)=1000H,VAR=2000H 存储单元的物理地址=(DS)*16+VAR=12000H (12000H)=1234H 则,(IP)新=1234H
4.寄存器间接寻址方式(register indirect addressing)
EA=基址(base) 或变址( index) 基址寄存器有:BX,BP 变址寄存器有:SI,DI 注:默认段是数据段和堆栈段 (SI) 物理地址=(DS)*16+(BX) (DI) =(SS)*16+(BP)
第四章-指令系统PPT课件
指令系统中指令采用等长指令的优点:各种指令字长度是相等的,
指令字结构简单,且指令字长度是不变的 ;
采用非等长指令的的优点:各种指令字长度随指令功能而异,结
构灵活,能充分利用指令长度,但指令的控制较复杂 。
.
16
五、指令助记符
由于硬件只能识别1和0,所以采用二进制操作 码是必要的,但是我们用二进制来书写程序却 非常麻烦。
指令前缀 段取代 操作数长度取代 地址长度取代
操作码 Mod Reg或操作码 R/M S I B 位移量 立即数
.
19
七、 Pentium指令格式
指令前缀中的重复前缀指定串的重复操作,这样使 Pentium处理串比软循环快得多。
LOCK前缀用于多CPU环境中对共享存储器的排他性 访问
段取代用于改变默认段寄存器的情况
提供一个常数。
.
31
3、直接寻址
指令中地址码字段给出的地址A就是操作数的 有效地址EA(Effective Address),即EA=A。
.
32
3、直接寻址
操作数地址是不能修改的,与程序本身所在的位置 无关,所以又叫做绝对寻址方式
在早期的计算机中,主存储器的容量较小,指令中 地址码的位数要求不长,采用直接寻址方式简单快 速,也便于硬件实现,因此,常被作为主要的寻址 方式。
本章所讨论的指令,是机器指令。 一台计算机中所有机器指令的集合,称为这台计算机的指令系
统。 指令系统是表征一台计算机性能的重要因素,它的格式与功能
不仅直接影响到机器的硬件结构,而且也直接影响到系统软件, 影响到机器的适用范围
.
3
4.1 指令系统的发展与性能要求
3、发展情况
复杂指令系统计算机,简称CISC。但是如 此庞大的指令系统不但使计算机的研制周期 变长,难以保证正确性,不易调试维护,而 且由于采用了大量使用频率很低的复杂指令 而造成硬件资源浪费。
指令字结构简单,且指令字长度是不变的 ;
采用非等长指令的的优点:各种指令字长度随指令功能而异,结
构灵活,能充分利用指令长度,但指令的控制较复杂 。
.
16
五、指令助记符
由于硬件只能识别1和0,所以采用二进制操作 码是必要的,但是我们用二进制来书写程序却 非常麻烦。
指令前缀 段取代 操作数长度取代 地址长度取代
操作码 Mod Reg或操作码 R/M S I B 位移量 立即数
.
19
七、 Pentium指令格式
指令前缀中的重复前缀指定串的重复操作,这样使 Pentium处理串比软循环快得多。
LOCK前缀用于多CPU环境中对共享存储器的排他性 访问
段取代用于改变默认段寄存器的情况
提供一个常数。
.
31
3、直接寻址
指令中地址码字段给出的地址A就是操作数的 有效地址EA(Effective Address),即EA=A。
.
32
3、直接寻址
操作数地址是不能修改的,与程序本身所在的位置 无关,所以又叫做绝对寻址方式
在早期的计算机中,主存储器的容量较小,指令中 地址码的位数要求不长,采用直接寻址方式简单快 速,也便于硬件实现,因此,常被作为主要的寻址 方式。
本章所讨论的指令,是机器指令。 一台计算机中所有机器指令的集合,称为这台计算机的指令系
统。 指令系统是表征一台计算机性能的重要因素,它的格式与功能
不仅直接影响到机器的硬件结构,而且也直接影响到系统软件, 影响到机器的适用范围
.
3
4.1 指令系统的发展与性能要求
3、发展情况
复杂指令系统计算机,简称CISC。但是如 此庞大的指令系统不但使计算机的研制周期 变长,难以保证正确性,不易调试维护,而 且由于采用了大量使用频率很低的复杂指令 而造成硬件资源浪费。
寻址方式及指令系统
协同发展提高计算机性能
通过寻址方式和指令系统的协同发展,可以不断提高计 算机的性能和灵活性,满足不断变化的计算需求。
谢谢
THANKS
序的可读性和可维护性。此外,间接寻址方式还可以用于实现间接函数调用、数组元素的访问等。
基址寻址方式
总结词
基址寻址方式是指将基址寄存器BX或BP 的内容加上位移量DISP。
VS
详细描述
在基址寻址方式中,操作数的有效地址是 由基址寄存器BX或BP的内容与位移量 DISP相加得到的。基址寻址方式常用于 数组元素的访问和变址运算等场景。通过 基址寻址方式,可以方便地实现数组元素 的遍历和跳转等操作。
变址寻址方式
总结词
变址寻址方式是指将变址寄存器的内容加上 位移量DISP。
详细描述
在变址寻址方式中,操作数的有效地址是由 变址寄存器的内容与位移量DISP相加得到 的。变址寻址方式常用于数组元素的访问和 程序中的循环结构等场景。通过变址寻址方 式,可以实现数组元素的动态遍历和循环变 量的自增等操作。
02 指令系统概述
CHAPTER
指令系统的定义
指令系统的定义
指令系统是计算机硬件能够直接执行 的指令集合,它规定了计算机所具有 的基本功能。
指令系统的特点
指令系统是计算机体系结构的核心组 成部分,其特点包括指令集的规模、 指令的功能、寻址方式、操作码的长 度等。
指令系统的组成
指令格式
01
指令格式是指令系统中每条指令的固定格式,包括操作码和地
间接寻址方式
总结词
间接寻址方式是指操作数通过间接指定的地址来访问,而不是直接给出操作数的值或寄 存器名称。
详细描述
在间接寻址方式中,指令中的地址码指示的是一个内存单元的地址,而不是直接给出操作数的值或寄存器名 称。通过访问该内存单元,可以得到操作数的值。间接寻址方式的优点是可以隐藏操作数的实际值,提高程
微型计算机基本原理与接口技术(第二版)教学课件ppt作者陈红卫主编第三章
AH←AH+调整所产生的进位值。 对标志位的影响:AF、CF 例: MOV AX,0435H
MOV BL,39H ADD AL,BL AAA
微机原理
② AAS 减法的ASCII码调整指令 指令格式: AAS 执行操作:AL←把减法结果AL的内容调整到 非压缩的BCD码格式 AH←AH - 调整所产生的借位值 标志位的影响:AF、CF
微机原理
3.1.6 转移类指令的寻址方式 1.段内相对转移寻址 有效地址EA为当前IP寄存器内容与指令中指定 的8位或16位有符号数之和 例:JZ DISP 其中DISP是符号地址 2.段内间接转移寻址 有效地址EA为寄存器或存储器单元的内容,这种 寻址方式不能用于条件转移指令。 例:JMP CX
微机原理
3.1.3 寄存器寻址方式 寄存器寻址:操作数存放在CPU内部的寄存器中 例 :MOV AX,DX ; AX←DX 3.1.4 寄存器间接寻址 寄存器间接寻址:有效地址包含在基址寄存器 BX、BP或变址寄存器SI、DI中直接寻址 例 MOV AX,[BX]
MOV AX,[BP] 3.1.5 寄存器相对寻址 寄存器相对寻址方式:有效地址在SI、DI、BX 或BP之一,加上指令中8位或16位相对地址 例 MOV AL,ADDR[SI]
3.2 8086/8088 CPU的指令系统 微机原理
3.2.2 算术运算指令
1.加法指令 ⑴ ADD 不带进位加法指令 指令格式:ADD DST,SRC 执行操作:(DST)←(SRC)+(DST)。 对标志位的影响:OF、SF、ZF、AF、PF、CF。
存储器 通用寄存器 立即数
存储器 通用寄存器 立即数
OR AL,20H 执行上述指令后AL=?
⑶逻辑非NOT 指令 指令格式:NOT OPR 执行操作: (OPR)←(OPR) 影响的标志位:无
MOV BL,39H ADD AL,BL AAA
微机原理
② AAS 减法的ASCII码调整指令 指令格式: AAS 执行操作:AL←把减法结果AL的内容调整到 非压缩的BCD码格式 AH←AH - 调整所产生的借位值 标志位的影响:AF、CF
微机原理
3.1.6 转移类指令的寻址方式 1.段内相对转移寻址 有效地址EA为当前IP寄存器内容与指令中指定 的8位或16位有符号数之和 例:JZ DISP 其中DISP是符号地址 2.段内间接转移寻址 有效地址EA为寄存器或存储器单元的内容,这种 寻址方式不能用于条件转移指令。 例:JMP CX
微机原理
3.1.3 寄存器寻址方式 寄存器寻址:操作数存放在CPU内部的寄存器中 例 :MOV AX,DX ; AX←DX 3.1.4 寄存器间接寻址 寄存器间接寻址:有效地址包含在基址寄存器 BX、BP或变址寄存器SI、DI中直接寻址 例 MOV AX,[BX]
MOV AX,[BP] 3.1.5 寄存器相对寻址 寄存器相对寻址方式:有效地址在SI、DI、BX 或BP之一,加上指令中8位或16位相对地址 例 MOV AL,ADDR[SI]
3.2 8086/8088 CPU的指令系统 微机原理
3.2.2 算术运算指令
1.加法指令 ⑴ ADD 不带进位加法指令 指令格式:ADD DST,SRC 执行操作:(DST)←(SRC)+(DST)。 对标志位的影响:OF、SF、ZF、AF、PF、CF。
存储器 通用寄存器 立即数
存储器 通用寄存器 立即数
OR AL,20H 执行上述指令后AL=?
⑶逻辑非NOT 指令 指令格式:NOT OPR 执行操作: (OPR)←(OPR) 影响的标志位:无
《指令系统》PPT课件
例:
已知:(DS)=2100H,(DI)=2000H
指令: MOV AX,[DI] ;AX ((DI))
物理地址=(DS)× 16 + (DI)
是一个内存 单元地址
=2100H × 16 + 2000H
=21000H + 2000H
=23000H
指令结果:将23000H单元内容送AL中,
将23001H单元内容送AH中。
22
2020/11/14
例:
将数据段的变量WVAR(即该变量名指示的内存单元数据)送至 AX寄存器 变量指示内存的一个数据,直接引用变量名就是采用直接寻址方式 变量应该在数据段进行定义,常用的变量定义伪指令 DB和 DW分别表示定义
字节变量和字变量 变量一经定义便具有逻辑地址和类型属性
23
南京理工大学动力学院
2009年
1
2020/11/14
第二章 8086/8088 指令系统
2.1 概述 2.2 寻址方式 2.3 数据传送指令 2.4 算术运算指令 2.5 逻辑运算指令 2.6 串操作指令 2.7 程序控制指令
2
2020/11/14
•指令是微处理器执行某种操作的命令。 •微处理器全部指令的集合称为指令系统(指令集)
将数据段中由BX指定偏移地址处的内存数据送至 AX寄存器 汇编指令: MOV AX, [BX]; 指令功能:AX←DS : [ BX ]; 该指令中有效地址存放于BX寄存器中,而数据则存放在数据段内存单元中,
假设BX内容设置为2000H,则该指令等同于 MOV AX, [2000H]
28
2020/11/14
一方面,会影响处理器执行指令的速度和效率 另一方面,对程序设计也很重要
第5章 指令系统PPT课件
到该地址字段中去,以能表示更多的指令。
上一页
下一页
17.08.2020
17
可变格式的指令操作码编码格式举例
如某机器的指令长度为16位,以4位为1个字段 ,分成4个字段,一个4位的操作码字段,3个4 位的地址码字段,其指令格式为:
用可变格式编码,要表示15条三地址指令,15 条二地址指令,15条一地址指令和16条零地址 指令,共表示61条指令,则可以如下安排:
下一页
7
5.1.2 指令格式
⑵ 地址码:指出操作数的存储地址,CPU通过 这个地址取得操作数。根据地址码的不同,就 有不同的指令格式。 ⑶ 操作结果的存放地址 ⑷ 下一条要执行的指令的地址
17.08.2020
上一页
下一页
8
5.1.2 指令格式
⒉指令格式 根据地址码所给出的地址的个数(操作数的个 数),可以把指令格式分成零地址指令、一地 址指令、二地址指令、三地址指令和多地址指 令(或称几操作数指令)。 ⑴ 零地址指令 格式:
上一页 返回目录
下一页
16
5.1.4 指令操作码的编码格式
⒉可变格式 操作码的长度可变,且分散地放在指令字的
不同字段中。这种格式的优点是可压缩操作码 的平均长度,控制器的设计相对较为复杂,指 令的译码时间也较长。一般在字长较短的微小 型机上广为采用。
可变格式的指令操作码编码格式,通常是在指令字中
用一个固定长度的字段来表示基本操作码,而对于一 部分不需要某个地址码的指令,把它们的操作码扩充
这类指令只有操作码而无操作数,通常也叫无
操作数指令。
上一页
下一页
17.08.2020
9
5.1.2 指令格式
⑵ 一地址指令 格式:
微控制器寻址方式与指令系统
§3.2指令分类
• 数据传送类 • 算术运算类 • 逻辑操作类 • 控制转移类及设置类
12、、123R[R[、、、R装存,d123d=A=C...源加减乘M载储R12a操xr逻 逻 逻地..r±法法法数 数y作址软 程]源辑 辑 辑]运 运 运据 据=操中 序R与 或 异作算 算 算s 断 转数或移 3、45、、R堆45d..=求比栈34-测 移源..补较操操子 功试 位作作调 能数 用 设置
4、R2=D:[R3 - -] //((R3))=>R2, //(R3)-1=>R3。
5、主要用于堆栈操作
2、寄存器前置增量间接寻址
3、寄存器后置增量间接寻址
4、寄存器后置减量间接寻址
5、寄存器自动增减量间接寻址
五、变址寻址
R1=[BP+IM6] //((BP)+IM6)=>R1
六、PC相对寻址
用于转移指令,(PC)±IM6;IM6<=63
PUSH Rx,Rx to [SP] ▪压入某两个或多个寄存器
PUSH Rx,Ry to [SP] ▪先压栈,SP内容自动减1。 ▪不影响标志位。
例1、执行指令 PUSH R3,PC to [SP]
X
X
高 地
X
X
址
SP
PC
SR
R5
R4
R3
低
SP
地
址
2、出栈指令
POP Rx,Ry from [SP]
▪ 将以Rs的内容为起始地址的一组存储器中的内容 送到Rx~Ry中。先传送低序号寄存器。
▪ 弹出到单个寄存器 POP Rx,Rx from [SP]
▪ SP内容先自动增量,再弹出。 ▪ 影响标志位N、Z。
第3章80888086指令系统(老师用的课件哦)
第3章 8088/8086指令系统
图3.5 变址寻址示意图
第3章 8088/8086指令系统
例:MOV AX,200AH[SI];或(AX)←
[(DS)*16+(SI)+200AH
EA=(SI)
+200AH,SI为变址寄存器,200AH为16位的位移量。
图3.6为用BP寄存器进行变址寻址时的示意图。
第3章 8088/8086指令系统
3.存储器操作数 存储器操作数是把操作数放在存储器单元中。对这 类操作数,在指令中必须给出存储器的地址。存储器 的实际地址(也称物理地址)是由指定的段基址和段内地 址偏移量(也称为有效地址EA)所决定的。由于段基址 相对很少改变,故一般预先予以指定,以后通过隐含 方法使用,即只要段基址未改变,其在汇编指令中便 不再出现。此时,只给出有效地址EA(以各种寻址方式 给出)。
第3章 8088/8086指令系统
3.2 8088/8086指令系统
3.2.1 数据传送指令 1 .数据传送指令MOV 指令格式:MOV OPRD1,OPRD2 MOV 为操作码。 OPRD1为目的操作数,可以是寄存器、存储器、
累加器。
第3章 8088/8086指令系统
OPRD2为源操作数,可以是寄存器、存储器、累 加器和立即数。
第3章 8088/8086指令系统
4.寄存器间接寻址
寄存器间接寻址的操作数类型为存储器操作数,与 直接寻址方式的区别是:该存储单元的16位段内偏移 地址,不是从指令代码中直接得到,而是从指令所指 定的寄存器中得到。能用于间接寻址的寄存器为SI、 DI、BX、BP。若以SI、DI、BX进行间接寻址,应由 数据段DS的内容作为段基址,间接寻址寄存器的内容 为段内偏移量,并指定形成操作数的物理地址。若以 寄存器BP间接寻址,则BP中的内容为段内偏移量,段寄 存器SS与之一起形成物理地址。寄存器间接寻址示意 图如图3.4所示。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第3章 指令系统和寻址方式
3.2.3 存储器寻址方式 当操作数放在存储器中的某个单元时,CPU要访问存储器
才能获得该操作数。如果存储器的存储单元地址是20位,把通 过各种方法算出段内偏移地址(有效地址),结合段地址形成20 位物理地址找到操作数的方法,统称为存储器寻址方式。
指令中用于确定操作数存放地址的方法,称为寻址方式。 如果地址码字段直接给出了操作数,这种寻址方式叫立即寻址; 如果地址码字段指出了操作数所在的寄存器编号,叫寄存器寻 址;如果操作数存放在存储器中,则地址码字段通过各种方式 给出存储器地址,叫存储器寻址。
第3章 指令系统和寻址方式
指令有机器指令和汇编指令两种形式。前一种形式由基2 码(二进制)组成,它是机器所能直接理解和执行的指令。但这 种指令不好记忆,不易理解,难写难读。因此,人们就用一些 助记符来代替这种基2码表示的指令,这就形成了汇编指令。汇 编指令中的助记符通常用英文单词的缩写来表示,如加法用 ADD、减法用SUB、传送用MOV等等,这些符号化了的指令使 得书写程序、阅读程序、修改程序变得简单方便了。但计算机 不能直接识别和执行汇编指令,在把它交付给计算机执行之前, 必须翻译成计算机所能识别的机器指令。汇编指令与机器指令 是一一对应的,本书中的指令都使用汇编指令形式书写,便于 学习和理解。
第3章 指令系统和寻址方式
根据地址码字段所给出地址的个数,指令格式可分为零地 址、一地址、二地址、三地址和多地址指令格式。大多数指令 需要双操作数,分别称两个操作数为源操作数和目的操作数, 指令运算结果存入目的操作数的地址中。这样,目的操作数的 原有数据将被取代。Intel 8086/8088的双操作数运算指令就采用 这种二地址指令。
第3章 指令系统和寻址方式
【例3-2】 MOV AL,0FFH 操作的示意图如图3.2所示。 【例3-3】 MOV AX,1234H 操作的示意图如图3.3所示。 另外要注意,这种寻址方式不能用于单操作数指令。若用 于双操作数指令,也只能用于源操作数字段,不能用于目的操 作数字段。
第3章 指令系统和寻址方式
第3章 指令系统和寻址方式
操作数及操作结果存放的地点有三处:存放在指令的地址 码字段中;存放在寄存器中;存放在存储器的数据段、堆栈段 或附加数据段中。与其对应的三种操作数是:立即操作数、寄 存器操作数和存储器操作数。寻找这些操作数有三种基本寻址 方式,立即寻址方式、寄存器寻址方式和存储器寻址方式。其 中,存储器寻址又包括多种寻址方式。下面分别介绍这些寻址 方式。
第3章 指令系统和寻址方式
3.2.1 立即寻址方式 立即寻址方式寻找的操作数紧跟在指令操作码之后。这种
寻址方式在汇编语言格式中表示为
操作码 数字表达式
其中,这个数字表达式的值可以是一个8位整数,也可以是 一个16位整数。 【例3-1】 MOV AX,267
MOV AL,10010011B AND 0FEH MOV AL,PORT1 MOV AX,DATA1
第3章 指令系统和寻址方式
第3章 指令系统和寻址方式
3.1 指令系统概述 3.2 8088/8086 CPU的寻址方式 3.3 8088/8086 CPU的指令系统 习题3
第3章 指令系统和寻址方式
3.1 指令系统概述
程序是指令的有序集合,指令是程序的组成元素,通常一 条指令对应着一种基本操作。一台计算机能执行什么样的操作, 能做多少种操作,是由该计算机的指令系统决定的。一台计算 机的指令集合,就是该计算机的指令系统。每种计算机都有自 己固有的指令系统,互不兼容。但是,同一系列的计算机其指 令系统是向上兼容的。
其中,AX,BX是16位寄存器寻址方式;AL,BL是8位寄存器 寻址方式。
第3章 指令系统和寻址方式
汇编这种寻址方式时,汇编程序将寄存器的地址编号写入 指令的地址码字段。当机器执行含有这种寻址方式的指令时, 根据地址码字段的编号访问到寄存器,继而访问到操作数。这 种寻址方式的优点是:寄存器数量一般在几个到几十个,比存 储器单元少很多,因此它的地址码短,从而缩短了指令长度, 节省了程序存储空间;另一方面,从寄存器里取数比从存储器 里取数的速度快得多,从而提高了指令执行速度。
第3章 指令系统和寻址方式
其中,“267”是数字;“10010011B AND 0FEH”是一个数 字表达式;PORT1是一个用EQU定义的变量名,属于常数; DATA1是定义的段名,实际上就是段地址,是一常数。这些都 是立即寻址方式。
汇编立即寻址方式时,汇编程序首先计算出数字表达式的 值,然后将其写入指令的地址码字段,这称为立即数。
每条指令由两部分组成:操作码字段和地址码字段,格式 如图3.1所示。
第3章 指令系统和寻址方式
操作码
操作数(地址码)
图3.1 指令格式
操作码字段:用来说明该指令所要完成的操作。 地址码字段:用来描述该指令的操作对象。一般是直接给出 操作数,或者给出操作数存放的寄存器编号,或者给出操作数存 放的存储单元的地址或有关地址的信息。
代码段
AL
OP
0FFH
图3.2 8位立即寻址操作示意图
第3章 指令系统和寻址方式
代码段 AX
OP 34H 12H
图3.3 16位立即寻址操作示意图
ห้องสมุดไป่ตู้
第3章 指令系统和寻址方式
3.2.2 寄存器寻址方式 寄存器寻址是指寻找的操作数在某个寄存器中。这种寻址
方式在汇编语言格式中表示为 操作码 寄存器名
比如AL,BX,CX,DS、IP等等。 【例3-4】MOV AX,BX MOV AL,BL
第3章 指令系统和寻址方式
3.2 8088/8086 CPU的寻址方式
寻找和获得操作数、操作数存放地址或指令转移地址的方 法称为寻址方式。8088/8086 CPU的寻址分为两类,即数据寻址 和指令寻址。指令寻址方式将在3.3.5节结合控制转移指令加以 讨论。
机器执行指令的目的就是对指定的操作数完成规定的操作, 将操作结果存入规定的地方。因此,如何获得操作数的存放地 址及操作结果的存放地址就是一个很关键的问题。8088/8086 CPU有多种方法来获取操作数的存放地址及操作结果的存放地 址,这些方法统称为数据寻址方式。