微机原理学习笔记-常见寻址方式

本文详细介绍了计算机指令系统中常见的寻址方式,包括立即数、寄存器、直接、寄存器间接、基址、变址、比例变址、基址加变址、基址加比例变址等,以及各种寻址方式在数组操作中的应用。这些寻址方式对于理解和优化程序执行效率至关重要。
摘要由CSDN通过智能技术生成

常见寻址方式



1. 立即数寻址

最简单的寻址方式,直接将立即数传送给目的操作数。

MOV		AX,9099H		;将立即数送给AX

2.寄存器寻址(寄存器直接寻址)

操作数存放在对应寄存器中。指令编码短,无需从存储器取操作数,执行快

MOV 	EDX,EBX
INC		CL	
MOV		DS,AX

3. 直接寻址(存储器直接寻址)

操作数存放在存储器中,但有效地址由指令直接给出。EA和操作码一起存放在存储器代码段中

MOV	AX,BUFFER		;将地址BUFFER处两个连续的字节地址中的操作数送给AX,BUFFER:存储器中存放单元的符号地址。
//假设BUFFER偏移地址为3000H,(DS)=5000H
MOV AX,DS:[3000H]	;将物理地址53000H中的内容送给AL,53001H送给AH
等价于:
MOV	AX,[3000H];
若为其他段寄存器,需要加段超越前缀。
MOV AX,ES:[3000H];

4. 寄存器间接寻址

利用寄存器保存存储单元的地址,可以通过间接寻址访问所有存储单元。即操作数存放在存储器中,但其EA存放在寄存器中,即从EA读取地址,再到对应地址单元寻找对应内容。
E A = [ 寄 存 器 ] EA=[寄存器] EA=[]

#16位寻址时,偏移地址存放在SI,DI,BP和BX
#1.以SI、DI、BX间接寻址,默认操作数在DS段
	MOV AX,[DI]
#2.以BP间接寻址,默认操作数在SS(stack segment)段
	MOV DX,[BP]
#如果操作数在其他段,需要在指令操作数前加段超越前缀。

5. 基址寻址

E A = [ 基 址 寄 存 器 ] + 位 移 量 EA=[基址寄存器]+位移量 EA=[]+

16位寻址时默认:BX以DS作为段寄存器;BP以SS作为段寄存器

MOV AX,[BP+24]		;等价于 MOV AX,24[BP]

适用于对一维数组的数组元素进行检索

6. 变址寻址

E A = [ 基 址 寄 存 器 ] + 位 移 量 EA=[基址寄存器]+位移量 EA=[]+

16位寻址时默认:仅SI、DI作为变址寄存器,并且默认以DS作为段寄存器

MOV AX,BUFFER[DI]		;BUFFER是偏移量等价于 MOV AX,[DI+BUFFER]

适用于对一维数组的数组元素进行检索

7.比例变址寻址

E A = [ 变 址 寄 存 器 ] × 比 例 因 子 + 位 移 量 EA=[变址寄存器]\times比例因子+位移量 EA=[]×+

MOV AX,TABLE[EBP*4]

只适用于32位寻址。

8.基址加变址寄存器寻址

E A = [ 基 址 寄 存 器 ] + [ 变 址 寄 存 器 ] EA=[基址寄存器]+[变址寄存器] EA=[]+[]

一般规定由基址寄存器决定哪一个段寄存器作为基址指针。

MOV AX,[BP][SI]		;由SI决定默认为DS作为段基址寄存器

常用于二维数组的检索和二重循环

9.基址加比例变址寻址

E A = [ 变 址 寄 存 器 ] × 比 例 因 子 + [ 基 址 寄 存 器 ] EA=[变址寄存器] \times 比例因子+[基址寄存器] EA=[]×+[]

只有32位一种情况。

10.带位移的基址加变址寻址

E A = [ 变 址 寄 存 器 ] + [ 基 址 寄 存 器 ] + 位 移 量 EA=[变址寄存器]+[基址寄存器]+位移量 EA=[]+[]+

MOV AX,[BX+DI+MASK]

这种寻址操作主要用于二维数组操作,位移量即为数组起始地址。

11.带位移的基址加比例变址寻址

E A = [ 变 址 寄 存 器 ] × 比 例 因 子 + [ 基 址 寄 存 器 ] + 位 移 量 EA=[变址寄存器]\times 比例因子+[基址寄存器]+位移量 EA=[]×+[]+

$

MOV AX,[BX+DI+MASK]

这种寻址操作主要用于二维数组操作,位移量即为数组起始地址。

11.带位移的基址加比例变址寻址

E A = [ 变 址 寄 存 器 ] × 比 例 因 子 + [ 基 址 寄 存 器 ] + 位 移 量 EA=[变址寄存器]\times 比例因子+[基址寄存器]+位移量 EA=[]×+[]+

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Miracle Fan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值