微机原理与接口技术PPT课件
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(2)如果要对其他段寄存器所指出的存储区 进行直接寻址,则本条指令前必须用前缀指出 段寄存器名。
21018H 21019H
AA 数 BB 据
段
8
三、直接寻址
• 操作数的存储区是在DS段以外的段中,则应 在指令中指定段跨越前缀:
• MOV BX, ES:[2000H] 设ES=3000H,则指令执行后是将32000H
代码:8B 07
设 DS=2000H,BX=5000H CS=1000H,IP=0000H
物理地址: 代码段:CS ×16+IP=10000H
存储器
M
10000H 8B 代
10001H 07 码
10002H
段
数据段:DS ×16+BX=25000H
AH AL
BB AA
25000H 25001H
AA 数 BB 据
和32001H两单元的内容取出送BX中。 • 有时用符号地址代替数值地址,
MOV AX, BUFFER • 等价于
MOV AX, [BUFFER]
9
四、寄存器间接寻址
• 操作数的有效地址由寄存器BX、BP、SI、DI中的一 个指出。
• 如果指令前面没有用前缀指明具体的段寄存器,则 寻址时,对BX、SI、DI,默认的段寄存器通常为DS; 对BP,默认的段寄存器为SS。
微机原理与应用
第一章 微型计算机基础知识 第二章 指令系统和汇编语言程序设计 第三章 8088的总线周期与总线操作 第四章 微型计算机的输入/输出 第五章 常见接口电路 第六章 存储器及其接口 /模和模/数转换
1
标题添加
点击此处输入相 关文本内容
标题添加
点击此处输入相 关文本内容
总体概述
点击此处输入 相关文本内容
点击此处输入 相关文本内容
2
第2章 指令系统和汇编语言程序设计
2.1 8086/8088的寻址方式 2.2 8086/8088指令格式 2.3 8086/8088指令系统 2.4 汇编语言程序设计
3
2.1 8086/8088的寻址方式
• 一条指令需解决:一是进行何种操作;另一
个是操作数和操作结果在何处。
例:MOV AL,80H;AL80H 机器码:B0 80H
AL
存储器
M
00000H 00001H
B0 80
代 码
段
MOV AX,1000H;AX 1000H
机器码:B8 00 10H
00010H B8 代
AH AL 00011H 00 码 00012H 10 段
5
一、立即数寻址(续)
立即寻址的说明: 1. 立即数只能是整数; 2. 立即数可以是8位数或16位数,若是16位数, 要求低字节数放在低地址中,高字节数放在高 地址中。 3. 该指令主要用来对R赋值; 4. 不运行总线周期,速度快; 5. 立即数只能作源操作数。
设SS=3000H,BP=2000H, COUNT=1050H
有效地址为: EA=2000H+1050H=3050H
物理地址: 堆栈段=30000H+3050H=33050H
存储器
M
10000H 8B 代
10001H 86 码
10002H
段
AH AL BB AA
33050H 33051H
AA 堆 BB 栈
6
二、寄存器寻址
• 操作数包含在CPU的内部寄存器中。
• 例:MOV AX,BX;AX BX MOV CL,DH;CL DH
• 说明:
1. 对16位操作数来说,寄存器可以为AX、BX、
CX、DX、SI、DI、SP、BP。
2. 对8位操作数来说,寄存器可为AH、AL、BH、
BL、CH、CL、DH、DL。
存储器
; AH [1019H]
M
设CS=1000H,IP=0000H,DS=2000H
10000H ×× 代
物理地址:
10001H 18 码
CS×16+IP=10000H
10002H 10 段
DS×16+逻辑地址=21018H
AH AL
说明:
BB AA
(1)如果指令前面没有用前缀指明操作数在
哪一段,则默认为段寄存器是数据段寄存器DS;
• 操作数的寻址方式有以下几种:
•
立即数寻址
寄存器寻址
直接寻址
寄存器间接寻址
寄存器相对寻址
基址加变址寻址
相对的基址加变址寻址
• 例:指令形式:
MOV AX, 0000H; AX← 0000H
助记符 目的操作数 源操作数
4
一、立即数寻址
• 操作数紧跟在操作码的后面,与操作码一起放在码段
区域,立即数可以为8位,也可以为16位。
段
11
返回
五、寄存器相对寻址(变址寻址)
• 有效地址是由一个基址或变址寄存器的内容加上一 个8位或16位的位移量来得到的,即
BX
EA=
BP SI
DI
+ 8位 16位
注:若用BP,那么默认 的段寄存器就是SS。
例:MOV AX, [BX+20H]; AL[BX+20H],AH [BX+21H]
例:MOV AX,COUNT[BP]; AL [33050H], AH [33051H]
段
13
返回
六、基址加变址寻址
• 将一个基址寄存器(BX、BP)的内容加上一 个变址寄存器(SI、DI)的内容来形成操作 数的有效地址。
• 例:MOV AX,[BX][SI]; 或 MOV AX,[BX+SI];AL [BX+SI] AH [BX+SI+1]
3. 操作在CPU内部进行,不需要使用总线,执行
速度快。
4. 一条指令中,既可以对源操作数采用该方式,也
可以对目的操作数采用该方式,也可以两者都用寄
存器寻址方式。
7
三、直接寻址
• 操作数地址的16位偏移地址直接包含在指令中,但操
作数一般在存储器(数据段区域)中,它的地址为
DS加上它16位地址偏移量。 例:MOV AX,[1018H];AL [1018H]
等价于: MOV AX,[COUNT+BP]
设SS=3000H,BP=2000wk.baidu.com,COUNT=1050H
则有效地址为:EA=2000H+1050H=3050H
物理地址=30000H+3050H=33050H 执行情况
注:这种方式可使用段超越前缀。
12
五、寄存器相对寻址(变址寻址)
例: MOV AX,[COUNT+BP]; 代码:8B 86
例:MOV AX,[BX];AL [BX] ;AH [BX+1]
设 DS=2000H,BX=5000H
物理地址=DS ×16+BX =25000H
执行情况
注:指令中也可用段超越前缀,对其他段寄存器所 指的存储区进行寻址。
10
四、寄存器间接寻址
例:MOV AX,[BX];AL [BX]
;AH [BX+1]