7种寻址方式培训讲学

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

以DPTR或PC为基址寄存器,累加器A为变址寄存器。把两
者内容相加,结果作为操作数的地址。
常用于查表操作。 ❖ MCS-51
Hale Waihona Puke Baidu
操作数在程 序存储器中
MOVC A, @A+DPTR ;(A+DPTR) →A
MOVC A, @A+PC ; PC+1 →PC,(A+PC)→A
❖ 8086/8088CPU
MOV AL,[BX+SI]
2020/5/28
3
rel: 补码形式的8位地址偏移量。 偏移范围为-128~127
/:位操作指令中,该位求反后参与操作,不影响 该位 X:片内RAM的直接地址或寄存器 (X):相应地址单元中的内容 →:箭头左边的内容送入箭头右边的单元内
2020/5/28
4
§3.2 寻址方式
3.2.1 立即寻址
程序存储区 指令代码
2040H 83 2041H …
当前P…C

2120H 47 2121H 45
2020/5/28
A 4E50
ALU 2121H
12
改变PC
3.2.6 相对寻址
Relative Addressing
将PC中的当前内容与指令第二字节给出的数相加,结 果作为跳转指令的转移地址(转移目的地址)。 PC中的当前内容称为基地址(本指令后的字节地址) 指令第二字节给出的数据称为偏移量,1字节带符号数.
常用于跳转指令。 如: JC 23H 若C=0,不跳转; C=1,跳转.
2020/5/28
13
如:JC 23
程序存储区
1000H 40 1001H 23 1002H 30
当前PC …

1024H 47 1025H 45
指令代码
23H
1002H
ALU
1025H
2020/5/28
14
3.2.7 位寻址 Bit Addressing
2020/5/28
7
的确,这两条指令执行的结果是完全相同的, 都是将00H单元中的内容送到A中去,但是执行的过 程不同,执行第一条指令需要2个机器周期,而第二 条则只需要1个机器周期,第一条指令变成最终的目 标码要两个字节(E5H 00H),而第二条则只要一个 字节(E8H)就可以了。
2020/5/28
MOV AX,[BP+DI]
2020/5/28
10
如:MOVC A,@A+DPTR 设DPTR=2000H,A=E0H
程序存储区
A
2040H 93
4E70
2041H …
指令代码


20E0H 47
DPH 20 DPL 00
ALU 20E0H
2020/5/28
11
如:MOVC A,@A+PC 设A=E0H
立即寻址 程序存储器
直接寻址 片内RAM低128字节、SFR
寄存器寻址 工作寄存器R0~R7,A,B,DPTR
寄存器间接寻址
片内RAM:@R0,@R1,SP 片外RAM:@R0 ,@R1,@DPTR
变址寻址 程序存储器:@A+PC,@A+DPTR
相对寻址 程序存储器256字节范围内:PC+偏移量
第三章 MCS-51指令系统 Instruction Set
§3.1 概述
7种寻址方式,111条指令
字节数
单字节指令:49条 双字节指令:45条 三字节指令:17条
运算速度
单周期指令:64条 双周期指令:45条 四周期指令: 2 条
2020/5/28
1
功能
数据传送类:29条 算术运算类:24条 逻辑运算类:24条 控制转移类:17条 位操作类: 17条
2020/5/28
2
常用符号 Rn:工作寄存器中的寄存器Rn、R1…R7之一,
Ri:工作寄存器中的寄存器R0或R1
#data:8位立即数
#data16:16位立即数 direct:片内RAM或SFR的地址(8位)
@间接寻址寄存器
Bit:片内RAM或SFR的位地址 addr11:11位目的地址
addr16:16位目的地址
2020/5/28
5
3.2.2 直接寻址
Direct Addressing
直接使用数所在单元的地址找到了操作数,所以称 这种方法为直接寻址。
操作数在SFR、内部RAM、位地址空间。
如: MOV A,00H MOV C,60H MOV A,0F0H
8086/8088CPU MOV AL,[2000H]
对片内RAM的位寻址区和某些可位寻址的特殊功
能寄存器进行位操作时的寻址方式。
如: SETB 3DH; 将27H.5位置1
操作数在片内 RAM位地址区或
CLR C ;Cy位清0
SFR某些位中
8086/8088CPU 无此寻址方式
2020/5/28
15
寻址方式涉及的存储器空间
寻址方式
寻址空间(操作数存放空间)
Immediate Addressing
操作数存在程 序存储器中
操作数就包含在指令代码中,在操作码之后,称为
立即数,用“#”表示。
8086/8088
MCS-51
MOV AL,80H
如:MOV P1, #80H MOV R7, #0F5H MOV DPTR,#1245H
MOV AL,0F5H MOV BX,1245H
8
3.2.4 寄存器间接寻址 Register Indirect Addressing
把地址放在另外一个寄存器中,根据这个寄存器中的数值 决定该到哪个单元中取数据。
▪R0,R1----8位地址,片内低128字节或片外
▪DPTR----16位,片外64KB
操作数在
❖ MCS-51 片内RAM中
❖ 8086/8088CPU
2020/5/28
6
3.2.3 寄存器寻址
Register Addressing
对选定的工作寄存器R0~R7、累加器A、通用寄存器B、 地址寄存器DPTR中的数进行操作。 例:MOV A,R0;将R0工作寄存器中的数据送到累加器A中去。
MOV AL,BL (8086CPU的寄存器寻址方式)
提一个问题:我们知道,工作寄存器就是内存单元 的一部分,如果我们选择工作寄存器组0,则R0就 是RAM的00H单元,那么这样一来,MOV A,00H 和 MOV A,R0不就没什么区别了吗?
如: MOV A,@R0 MOVX A,@R0 MOVX A,@DPTR
操作数在 片外RAM中
MOV AL,[BX] MOV AX,[SI]
操作数在
片外RAM中
2020/5/28
9
3.2.5 变址寻址(基址+变址)
Base-Register-plus-Index-Register-Indirect Addressing
相关文档
最新文档