寻址方式

现有(DS)=2000H,(BX)=0100H,(SI)=0002H,(20100H)=12H,(20101H)=34H,(20102H)=56H,(20103H)=78H,(21200H)=2AH,(21201H)=4CH,(21202H)=B7H,(21203H)=65H,试说明下列各条指令执行完后AX寄存器的内容。

首先要知道AL,AH合并起来是AX。其中,AX是一个16位寄存器,AH就是AX的高字节(高8位),AL是AX的低字节(低8位)。

(1) MOV AX, 1200H

(2) MOV AX, BX

(3) MOV AX, [1200H]

(4) MOV AX, [BX]

(5) MOV AX, 1100[BX]

(6) MOV AX, [BX][SI]

(7) MOV AX, 1100[BX][SI]

加了[ ]的BX是指BX所指向的存储单元的内容
不加[ ]的BX就是BX寄存器的内容。

答 :
(1) (AX)=( 1200H )

(2) (AX)=( 0100H )

(3) (AX)=( 4C2AH )

(4) (AX)=(3412H )

(5) (AX)=( 4C2AH )

(6) (AX)=( 7856H )

(7) (AX)=(65B7H)

注:下面的16 * DS,DS为16进制,所以在直接表现上为在DS后加一个零如16 * DS=20000H
段地址*16的意思是:让段地址左移4位,比如2000H左移4位,成为20000H。再加上一个16位的偏移地址。这样就是20位的物理地地址了。
在这里插入图片描述

(3)开始的寻址计算中,获得AL后,+1H的内容为AH,合起来后为AX

(1) MOV AX, 1200H:
立即寻址,直接把1200H赋给AX
(2) MOV AX, BX:
寄存器寻址,把BX赋给AX
AX=BX=0100H
(3) MOV AX, [1200H]:
直接寻址方式,AL=16 * DS+1200H=21200H= 2AH
AH=AL+1H=21201H=4CH
AX=4C2AH。下面几题计算方法一样。
(4) MOV AX, [BX]
寄存器间接寻址,AL=16 * DS+BX=20100H=12H
(5) MOV AX, 1100[BX]
寄存器相对寻址,AL=16 * DS+BX+1100=21200H=
2AH
(6) MOV AX, [BX] [SI]
基址变址寻址,AL=16 * DS+BX+SI=20102H=56H
(7) MOV AX, 1100[BX][SI]
相对基址变址寻址,AL=16 * DS+1100+[BX]+[SI]=21202H=B7H

  • 9
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
RISC-V是一种开源的指令集架构,它具有简洁、灵活和可扩展的特点。RISC-V的寻址方式主要包括以下几种: 1. 立即数寻址(Immediate Addressing):指令中的操作数是一个立即数,直接作为操作数使用。例如,ADDI指令可以将一个立即数与寄存器中的值相加。 2. 寄存器寻址(Register Addressing):指令中的操作数是一个寄存器中的值。例如,ADD指令可以将两个寄存器中的值相加。 3. 基址寻址(Base Addressing):指令中的操作数是一个基址加上一个偏移量得到的地址。例如,LW指令可以从内存中加载一个字到寄存器中,其中基址是一个寄存器,偏移量是一个立即数。 4. 相对寻址(PC-relative Addressing):指令中的操作数是相对于程序计数器(PC)的偏移量得到的地址。例如,BEQ指令可以根据两个寄存器中的值是否相等来决定是否跳转,跳转目标地址是相对于当前指令地址的偏移量。 5. 堆栈寻址(Stack Addressing):指令中的操作数是相对于栈顶指针(SP)的偏移量得到的地址。例如,SW指令可以将一个寄存器中的值存储到栈中,其中偏移量是一个立即数。 6. 全局寻址(Global Addressing):指令中的操作数是一个全局地址,可以直接访问全局数据区或代码区。例如,LUI指令可以将一个立即数的高位加载到一个寄存器中,用于构造一个全局地址。 以上是RISC-V常见的寻址方式,不同的寻址方式适用于不同的场景和需求。通过灵活组合这些寻址方式,可以实现各种复杂的计算和数据操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值