寻址方式——汇编学习笔记(三)
2013-05-30 14:18
253 查看
操作数寻址方式有多种,其目的是缩短指令长度,扩大寻址空间,提高编程的灵活性。最基本的寻址方式有如下几种。
(1)隐含寻址
在指令中并不直接给出操作数的地址,而是隐含着操作数的地址。
例:ADD B ;另一个操作数的地址即隐含为累加器AC
(2)立即寻址
指令的地址字段指出的不是操作数的地址,而是操作数本身,这种寻址方式称为立即
寻址。
优点:不需操作数地址寻址,速度快。
例: ADD B,#3 ;#3为立即数
(3)直接寻址
直接寻址是一种基本的寻址方式,其特点是:在指令格式的地址字段中直接指出操作
数在内存的地址D,即有效地址等于形式地址。 E=D
例:INC 3A00H
这是一条加1指令,指令有效地址E=3A00H
(4)间接寻址
间接寻址是相对于直接寻址而言的,在间接寻址的情况下,指令地址字段中的形式地
址D不是操作数的有效地址,而是操作数地址的指示器,即D单元的内容才是操作数的有效
地址。 E=(D)
优点:提供编程的灵活性;
缺点:增加了访存时间,速度慢。
例: INC (3A00H)
这是一条加1指令,指令有效地址E=(3A00H)=4000H
(5)寄存器寻址方式和寄存器间接寻址方式
· 寄存器寻址方式---当操作数不放在内存中,而是存放在CPU的通用寄存器中时,可采
用寄存器寻址方式。
优点:用寄存器暂存操作数,无需访存,速度快。
例:INC R1
这是一条加1指令,指令有效地址E = R1
· 寄存器间接寻址方式---指令中的寄存器内容不是操作数,而是操作数的地址,该地
址指明的操作数应在内存中。E=(Ri)
例:INC (R1)
这是一条加1指令,指令有效地址E=(R1)=3A00H
(6)相对寻址
把程序计数器PC的内容加上指令格式中的形式地址D而形成操作数的有效地址。
E=(PC)± D
优点:相对于当前指令地址进行浮动。
例: INC [PC+200H]
这是一条加1指令,指令有效地址E=(PC)+200H=2200H
(7)基址寻址方式
将CPU中基址寄存器Bx的内容加上指令格式中的形式地址而形成操作数的有效地址。
E=(Bx)± D
如:INC [Bx+300H]
这是一条加1指令,指令有效地址E=(Bx)+300H=0380H
(8) 变址寻址方式
把CPU中某个变值寄存器Rx的内容与偏移量D相加来形成操作数的有效地址。
E=(Rx)± D
如:INC [Rx+300H]
这是一条加1指令,指令有效地址E=(Rx)+300H=0380H
☆ 变址寻址和基址寻址寻址方法十分类似,但用途不同:
· 变址寻址:主要便于数组访问
· 基址寻址:可扩大寻址范围,可实现程序浮动。
(9) 块寻址方式
实现数据块的传送。
· 指示数据块长度的方法:
① 指令中划出字段给出块长度;
② 指令中划出字段指出块的首地址、末地址;
③ 由块结束字符指出数据块长度。
(10) 段寻址方式
Intel 8086 CPU中采用了段寻址方式(基址寻址的特例)。
由16位段寄存器和16位偏移量产生20位物理地址,示意图见教科书P138图4.4。
(11)复合寻址方式
--多种寻址方式的组合
例1:相对、间址寻址方式
INC [(PC+100H)]
这是一条加1指令,指令有效地址:E=((PC)+100H)=2000H
例2:间址、变址寻址方式
INC [(Rx)+(100H)]
这是一条加1指令,指令有效地址:E=(Rx)+(100H)=1060H
(1)隐含寻址
在指令中并不直接给出操作数的地址,而是隐含着操作数的地址。
例:ADD B ;另一个操作数的地址即隐含为累加器AC
(2)立即寻址
指令的地址字段指出的不是操作数的地址,而是操作数本身,这种寻址方式称为立即
寻址。
优点:不需操作数地址寻址,速度快。
例: ADD B,#3 ;#3为立即数
(3)直接寻址
直接寻址是一种基本的寻址方式,其特点是:在指令格式的地址字段中直接指出操作
数在内存的地址D,即有效地址等于形式地址。 E=D
例:INC 3A00H
这是一条加1指令,指令有效地址E=3A00H
(4)间接寻址
间接寻址是相对于直接寻址而言的,在间接寻址的情况下,指令地址字段中的形式地
址D不是操作数的有效地址,而是操作数地址的指示器,即D单元的内容才是操作数的有效
地址。 E=(D)
优点:提供编程的灵活性;
缺点:增加了访存时间,速度慢。
例: INC (3A00H)
这是一条加1指令,指令有效地址E=(3A00H)=4000H
(5)寄存器寻址方式和寄存器间接寻址方式
· 寄存器寻址方式---当操作数不放在内存中,而是存放在CPU的通用寄存器中时,可采
用寄存器寻址方式。
优点:用寄存器暂存操作数,无需访存,速度快。
例:INC R1
这是一条加1指令,指令有效地址E = R1
· 寄存器间接寻址方式---指令中的寄存器内容不是操作数,而是操作数的地址,该地
址指明的操作数应在内存中。E=(Ri)
例:INC (R1)
这是一条加1指令,指令有效地址E=(R1)=3A00H
(6)相对寻址
把程序计数器PC的内容加上指令格式中的形式地址D而形成操作数的有效地址。
E=(PC)± D
优点:相对于当前指令地址进行浮动。
例: INC [PC+200H]
这是一条加1指令,指令有效地址E=(PC)+200H=2200H
(7)基址寻址方式
将CPU中基址寄存器Bx的内容加上指令格式中的形式地址而形成操作数的有效地址。
E=(Bx)± D
如:INC [Bx+300H]
这是一条加1指令,指令有效地址E=(Bx)+300H=0380H
(8) 变址寻址方式
把CPU中某个变值寄存器Rx的内容与偏移量D相加来形成操作数的有效地址。
E=(Rx)± D
如:INC [Rx+300H]
这是一条加1指令,指令有效地址E=(Rx)+300H=0380H
☆ 变址寻址和基址寻址寻址方法十分类似,但用途不同:
· 变址寻址:主要便于数组访问
· 基址寻址:可扩大寻址范围,可实现程序浮动。
(9) 块寻址方式
实现数据块的传送。
· 指示数据块长度的方法:
① 指令中划出字段给出块长度;
② 指令中划出字段指出块的首地址、末地址;
③ 由块结束字符指出数据块长度。
(10) 段寻址方式
Intel 8086 CPU中采用了段寻址方式(基址寻址的特例)。
由16位段寄存器和16位偏移量产生20位物理地址,示意图见教科书P138图4.4。
(11)复合寻址方式
--多种寻址方式的组合
例1:相对、间址寻址方式
INC [(PC+100H)]
这是一条加1指令,指令有效地址:E=((PC)+100H)=2000H
例2:间址、变址寻址方式
INC [(Rx)+(100H)]
这是一条加1指令,指令有效地址:E=(Rx)+(100H)=1060H
相关文章推荐
- 汇编学习笔记(4)寻址方式
- ARM寻址方式
- ARM (二) arm指令分类及其寻址方式
- 七种寻址方式(立即寻址、寄存器寻址)
- 寻址方式与指令系统
- 实验七_寻址方式在结构化数据中的应用
- 汇编学习笔记--更灵活的寻址方式
- 8086中的七种寻址方式
- 2: 心法筑基--ARM汇编指令之寻址方式
- 汇编语言 第三版 王爽 实验7 寻址方式在结构化数据访问中的应用
- 段寄存器和8种地址寻址方式
- 汇编语言学习笔记之与转移地址有关的寻址方式
- 实模式和保护模式区别及寻址方式
- 七种寻址方式(寄存器相对寻址方式)
- ARM处理器的指令系统一 ARM处理器寻址方式
- 8086汇编寻址方式总结
- ARM指令寻址方式
- 每日一课(12/75)操作数的寻址方式
- ARM处理器的三级流水线和ARM指令及寻址方式
- 8086汇编寻址方式教程