数据寻址-偏移寻址(硬核)


\quad

在这里插入图片描述
\quad
\quad
在这里插入图片描述
\quad

\quad
在这里插入图片描述
\quad

在这里插入图片描述
\quad

一. 基址寻址

\quad

在这里插入图片描述

A就是偏移量
有的用通用寄存器来代替BR专用寄存器的功能
其中 R 0 R_0 R0的位数是由通用寄存器的总数来判断的, 比如通用寄存器有8行, 那么 R 0 R_0 R0就需要用3bit来指明

\quad

基址寻址的作用
在这里插入图片描述
那么如果地址不是从0开始的呢?

在这里插入图片描述
只需要更改基址就可以, 不用更改指令的地址码
永远让BR指向起始地址
\quad
\quad

在这里插入图片描述

我们写的应用程序到底被放到内存的什么位置, 这点是由操作系统来管理的, 我们决定不了,
基址寄存器是指向应用程序的起始地址, 因此基址寄存器的内容显然是由操作系统来管理, 所以不由程序员控制, 但是程序员可以用汇编语言操作通用寄存器里的内容

\quad

二. 变址寻址

\quad

在这里插入图片描述
\quad
变址寻址和基址寻址很类似, 最大的不同是变址寄存器的内容程序员是可以修改的
而且通常我们把IX作为偏移量, A作为基址, 这点和基址寻址是相反的

\quad
变址寻址的作用
在这里插入图片描述
局限性: 若要从0加到100, 就要一直增加操作数和地址码, 很不方便

\quad
用变址寻址可以实现循环
在这里插入图片描述
在数组处理过程中,可设定A为数组的首地址,不断改变变址寄存器lX的内容,便可很容易形成数组中任一数据的地址,特别适合编制循环程序。

\quad
在这里插入图片描述
注:实际应用中往往需要多种寻址方式复合使用(可理解为复合函数)

\quad

三. 相对寻址

\quad

在这里插入图片描述
A可正可负, 用补码表示
\quad

在这里插入图片描述
注意: 取出指令后PC自动加"1", 字长2个字节就加2 , 字长4个字节就加4

\quad
相对寻址的作用
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
\quad
\quad
在这里插入图片描述

\quad

四. 硬件如何实现数的"比较"

\quad
在这里插入图片描述
若要实现比较a和b的大小, 其实就让两个数相减看结果为什么, 结果为0则相等
结果为正则a大, 结果为负则a小

这里是通过标志位来判断
\quad

关于条件跳转指令

jmp 2, (无条件跳转到地址2)
je 2, (jump when equal 若a和b相等则跳转到地址2)
jg 2, (jump when great 若a>b则跳转到地址2)

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值