寄存器操作数的寻址方式

本文详细介绍了8086处理器中寄存器操作数的寻址方式,包括直接寻址和寄存器间接寻址。直接寻址通过常数或变量名给出偏移地址,如MOV AX, DS:[100H]和MOV BX, VAR。寄存器间接寻址则涉及基址、变址和位移量的组合,如[BX+VAR]、[SI]和[BP+DI+100H]。在使用间址寄存器时,DS通常用于BX、SI和DI,而SS用于BP,并且有特定的段基址规定。" 51817066,5651593,Android UI 实践:打造登录界面,"['Android开发', 'UI设计', '布局', '图片处理']
摘要由CSDN通过智能技术生成

在程序中,一个存储单元的地址是采用逻辑地址形式表示的,即:

段基址:偏移量

1、 直接寻址

这种寻址方式是在指令中直接给出存储器操作数的偏移地址。有效地址EA可直接由偏移地址得到。

(1)   用常数表示。

MOV AX , DS : [100H]

该指令把当前数据量便宜100H的数字存储单元的数据送至AX。用常数表示时,段寄存器必须指明,不能缺省。

(2)   用变量名表示。

MOV BX , VAR

MOV AH , DA+2

第一条指令将由变量名VAR所指的存储单元内容传送给BX。

第二条指令将由变量名DA代表的地址偏移量再加2的那个字节单元内容送给AH。

假设VAR的偏移量为1000H,DA的偏移量为2000H,则上述两条指令等效为:

MOV BX , DS:[1000H]

MOV AH , DS:[2002H]

2、 寄存器间接寻址

寄存器间接寻址表示的偏移地址由三个地址分量的某种组合形式表示,这三个地址分量为:

(1)基址。由基址寄存器BX或基址指针BP提供的偏移地址。

(2)变址。由源变址寄存器SI或目的变址寄存器DI提供的偏移地址。

(3)位移量。一个8为或16位常数。

1)基址寻址。格式:

[基址寄存器]

[基址寄存器+位移量]

位移量[基址寄存器]

例:

MOV AH , [BX+VAR]

MOV AH , VAR[BX]

2)变址寻址。例:

MOV AX , ARRY[SI]

MOV [DI] ,BX

MOV DX

寄存器组织: 计算机内部有许多寄存器,它们是一个小型的、高速的存储器件。寄存器用来存储指令操作数、地址数据、程序计数器、状态标志等信息,以及临时存储器件,它们被直接放置在CPU内部,与主存储器相比,寄存器的访问速度更快,因此寄存器对于计算机程序性能的提升有着至关重要的作用。 寄存器分为通用寄存器和特殊寄存器两类。通用寄存器是CPU用来暂存数据的一种寄存器。通常情况下,通用寄存器的个数是有限的,且寄存器名称和编号是固定的,例如x86架构的CPU中,有8个通用寄存器(AX、BX、CX、DX、SI、DI、BP、SP);ARM架构的CPU中,有16个通用寄存器(R0~R15)。 特殊寄存器是存储CPU控制信息的寄存器,如程序计数器、状态寄存器、控制寄存器等。它们的作用是控制CPU的运行状态、执行顺序等。 寻址方式寻址方式是指CPU通过什么方式来访问存储器中的数据。常见的寻址方式有以下几种: 1. 直接寻址:直接使用指令中给出的地址来获取数据。例如:MOV AX, [1000H],表示将存储器地址为1000H的单元中的数据传送到AX寄存器中。 2. 立即寻址:将指令中的数据作为操作数,例如:MOV AX, 1234H,表示将数据1234H传送到AX寄存器中。 3. 间接寻址:使用指针指向数据的地址来获取数据。例如:MOV AX, [BX],表示将BX寄存器中存储的地址所指向的数据传送到AX寄存器中。 4. 寄存器寻址:使用寄存器来存储地址,例如:MOV AX, [SI],表示将SI寄存器中存储的地址所指向的数据传送到AX寄存器中。 5. 基址加变址寻址:使用基地址和偏移地址相加的方式来获取数据。例如:MOV AX, [1000H+SI],表示将存储器地址为1000H+SI的单元中的数据传送到AX寄存器中。 以上是常见的几种寻址方式,实际上,还有其他的寻址方式,如相对寻址、基址加变址加立即数寻址等。不同的寻址方式适用于不同的场景,选择合适的寻址方式可以提高程序的性能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值