通俗理解寻址方式(基址DPTR/PC + 变址A)

前言

通过(基址+变址)组合的寻址方式,我们可以很容易地访问数组中的不同元素,而不需要每次都手动计算内存地址。基址寄存器提供了数组的起始位置,而变址寄存器提供了具体元素的偏移量,两者相加得到最终的内存地址。这就是变址寻址的基本原理。
:DPTR(数据指针存储器)、PC(程序计数器)、变址A(累加器)在这里插入图片描述

类比

想象一下,你有一本书,这本书的每一页上都有一张表格,表格的每一行上都记录着某些数据。我们可以把这本书看作是计算机的内存,把每一页看作是一个内存块,把每一行看作是一个内存地址。

场景

你需要从这本书中找到某个特定的数据,但这个数据的位置是动态变化的,例如你需要根据不同的条件找到不同的页和行。

基址寄存器和变址寄存器的类比

  • 基址寄存器:类似于你翻到的某一页。假设你现在翻到了第10页,这就是你的基址寄存器(DPTR或PC)的值。
  • 变址寄存器:类似于你在某一页中的某一行。假设你需要访问第10页中的第3行,这个3就是你的变址寄存器(A)的值。
实际操作

假设你想查找第10页的第3行的数据:

  1. 你先翻到第10页——这是基址寄存器。
  2. 然后你在第10页上找到第3行——这是变址寄存器。

这样,你就找到了你需要的数据所在的位置。

在计算机中的实际应用

在计算机中,基址寄存器和变址寄存器的组合可以用来灵活地访问内存中的数据。例如,你有一个数组,数组的起始地址存储在基址寄存器中,而你想要访问数组中的某个元素,具体位置由变址寄存器来决定。

具体例子

假设有一个数组array,存储在内存中的地址从100开始:

  • 基址寄存器(DPTR):指向数组的起始地址100。
  • 变址寄存器(A):存储我们想访问的元素的偏移量,例如3。

在代码中表示如下:

MOV DPTR, #100  ; 将数组起始地址100加载到基址寄存器DPTR中
MOV A, #3       ; 将偏移量3加载到变址寄存器A中
MOVC A, @A+DPTR ; 通过变址寻址方式访问数组中的第四个元素(100 + 3)

在这个例子中:

  • 基址寄存器DPTR指向内存地址100。
  • 变址寄存器A的值是3。
  • 最终访问的内存地址是100 + 3 = 103,这就是我们要查找的数据的位置。
  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值