谁给解释下 为什么寄存器本身也有地址

时间:2021-10-04 19:10:18
我初学arm 汇编 ,很多东西不懂
以前一直以为寄存器只能存别人的内存地址  ,当然我知道那是通用寄存器

昨天看到书上说s3c2410x 处理器有117个输入输出脚,分为8个端口
端口F的管脚为GPF0~GPF7
同时还给出了端口F的寄存器 
比如GPFCON 地址是0x56000050
CGPDAT     地址是0x56000054等


看它的汇编代码  似乎向那个寄存器地址写入数值就真得改变了寄存器的值

;定义端口 E 寄存器预定义
rGPFCON EQU 0x56000050

ldr r0,=rGPFCON ;将寄存器rGPFCON 的地址存放到寄存器r0 中
ldr r1,=0x4000
str r1,[r0] ;将寄存器r1 中的数据存放到寄存器rPCONE 中


为什么这些寄存器本身也有地址呢?这个地址是内存里的地址吗?

6 个解决方案

#1


和I/O编址方式有关 是统一编址还是独立编址。

#2


寄存器的地址是为CPU寻址,以便CPU访问这些寄存器,其不是内存中的地址。。。

#3


每个寄存器都是有地址的,只是ARM的外设寄存器等是占用内存地址空间的,不象51系列的特殊寄存器地址,51系列特殊寄存器地址是独立的必须直接寻址

#4


天啊 一人一个说法

#5


呵呵,还是去先看看你所用芯片的Memory map吧

#6


最后还是觉得pxh7103 更牛x

#1


和I/O编址方式有关 是统一编址还是独立编址。

#2


寄存器的地址是为CPU寻址,以便CPU访问这些寄存器,其不是内存中的地址。。。

#3


每个寄存器都是有地址的,只是ARM的外设寄存器等是占用内存地址空间的,不象51系列的特殊寄存器地址,51系列特殊寄存器地址是独立的必须直接寻址

#4


天啊 一人一个说法

#5


呵呵,还是去先看看你所用芯片的Memory map吧

#6


最后还是觉得pxh7103 更牛x