微机原理及接口技术

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MOV AX,[BX+3] MOV AX,3[SI]
15
例如:MOV AX ,[BP+1223H] 假设:(SS)=5000H, (BP)=3678H
M

SS 50000
BP 3678
+
1223
5489B
操作码

23H

12H

… ……
AH AL AX 55 AA
50000 53678 5489B
段超越
将ES段中的2000H和 2001H 单元内容分别送AL和 AH 直接寻址中存储器操作数的有效地址也可用变量名的形式 给出。 例: VALUE DB 12H
MOV AL,[VALUE] 或 MOV AL,VALUE
11
例如:MOV AX ,[1234H] ;(DS)=5000H MOV AX ,ES:[1234H]
数 据 段

17
6 基址变址寻址
操作数的有效地址: EA= [基址寄存器]+[变址寄存器] 一般以基址寄存器来决定默认寄存器。 可以使用段超越。 该寻址方式主要用于二维数组。用基址寄存器存放数组首地 址,而用变址寄存器来定位数组中的各元素。 下面两种表示方法是等价的:
MOV AX ,[SI] ;寄存器间接寻址 MOV AX,SI ;寄存器寻址
13
例如:MOV AX ,[SI] 假设:(DS)=5000H, (SI)=1234H
DS 50000
+ SI 1234
51234
M


操作码
码 段
……
AH AL AX 67 89
5Fra Baidu bibliotek000
51234 89H
数 据

67H
第三章 8086的寻址方式和指令系统 教学重点
3.1 8086指令格式和寻址方式 3.3 8086指令系统
1
3.1 8086指令格式和寻址方式
3.1.1、指令格式 3.1.2、寻址方式
2
3.1.1 指令格式
标号:
操作码 操作数 ……, 操作数 ;注释
➢标号:是该指令所在地址的名字,其后必须跟“:”,可缺省 ➢操作码:指示计算机执行什么操作 ➢指令有单操作数、双操作数和无操作数之分 ➢源操作数/目的操作数 ➢加注释使程序容易读懂,前加 “;”
8
2 寄存器寻址
操作数包含在某寄存器中,指令中指定寄存器名称。 对于16位操作数,寄存器可以是AX、BX、CX、DX、SI、 DI、SP和BP等;对于8位操作数,寄存器可以是AL、AH、 BL、BH、CL、CH、DL和DH。 不需要访存来取得操作数,所以速度较快。
例如: MOV SI,AX MOV AL,DH
AAH 55H
1223
堆 栈 段

16
例如:MOV AX ,[SI+1223H] 假设:(DS)=5000H, (SI)=3678H
M

DS 50000
SI 3678
+ 1223
5489B
操作码

23H

12H

… ……
AH AL AX 55 AA
50000 53678 5489B
AAH 55H
1223

14
5 寄存器相对寻址
操作数的有效地址 EA=[基址或变址寄存器]+位移量
基址寄存器为BP、BX, BX以DS作为默认段寄存器,BP以SS 作为默认段寄存器。 变址寄存器为SI、DI,以DS作为默认段寄存器 位移量在指令中给出,位移量可以是8位或16位的。 书写时寄存器名要放在方括号中,位移可不写在方括号中。
5
有效地址(EA):存储器寻址时,指令的操作数部给出的 地址是段内偏移地址,也称有效地址。
❖EA包括:
基址寄存器内容;变址寄存器内容;位移量;比例因子
❖计算方法:
EA=[基址寄存器]+([变址寄存器] *比例因子)+位移量
BX,BP
SI,DI
1
0,8,16
例:(BX)=2000H,(SI)=1000H,偏移量=0250H,
7
1 立即数寻址
操作数就包含在指令中,作为 指令的一部分,跟在操作码后。
例如:MOV AX,1234H
立即数可以是8位,也可以是
16位。如是16位,按“高高低 AH AL
低”原则存放。
AX 12 34
主要用于赋初值。
Memory


操作码

34H

12H


注:立即数不能作目的操作数。以A~F打头的数字,前面要加一个0, 如 MOV AX,0FF00H
M

DS 50000
+ 1234
51234
操作码

34H

12H

……
AH AL AX 67 89
50000
51234 89H
数 据
67H


12
4 寄存器间接寻址
操作数在存储器中,有效地址EA=[寄存器]。若以SI、DI、BX间 接寻址,则默认DS的内容作为段地址 。若以BP 间接寻址,则默认 SS的内容作为段地址 。 该寻址方式可用于表格处理,在处理完表中的一项后,修改指针 寄存器的内容就可以处理表中的另一项。 寄存器间接寻址时,寄存器名一定要放在方括号中。
则EA= 2000H+1000H+0250H=3250H
6
二 各种寻址方式
8086/8088的寻址方式有8种: 1 立即数寻址(Immediate addressing) 2 寄存器寻址(Register addressing) 3 存储器寻址(Memory addressing)
直接寻址(Direct addressing) 寄存器间接寻址(Register Indirect addressing) 寄存器相对寻址 (Register relative addressing) 基址变址寻址(Based indexed addressing) 相对基址变址寻址 (Relative based indexed addressing)
注意:源、目的操作数的长度一致
9
3 直接寻址
操作数在存储器中,指令中直接包含其有效地址EA。
操作数一般在DS段中,若对其它段中的数据寻址,要在 指令中加段前缀指出段寄存器名,这称为段超越。
直接寻址的地址放在方括号内,在源程序中常用变量名 表示。
段寄存器 段地址
指令 EA
存储器 操作数
10
例: (1)MOV AX,[2000H] 将DS段中的2000H和 2001H 单元内容分别送AL和 AH (2) MOV AX,ES:[2000H]
3
3.1.2 寻址方式
一 寻址方式和有效地址的概念 二 各种寻址方式 三 存储器寻址时的约定
4
一 寻址方式和有效地址的概念
寻址方式就是寻找指令中的操作数的方式。 8086/8088指令中的操作数的3种存放位置: ❖操作数就在指令中,立即数,立即寻址。 ❖ 某寄存器中,寄存器寻址。 ❖ 内存的数据区中,存储器寻址。
相关文档
最新文档