有关51单片机寄存器问题:为什么RAM中的位地址空间中字节地址为20H到2FH,而其位地址为01H到7FH?为什么特殊功能寄存器SFR的可寻址单元字节地址是80H、88G、90H...F0H,而其位地址为什么是从80H到F7H?字节地址与位地址倒底有何区别?
另外,MOV指令执行的是否是位地址还是字节地址?比如:MOV 20H,#55H 是不是将立即数55H送入位地址20H还是送入字节地址20H?如果是送入位地址20H,是不是每个位地址又能存八位二进制数,如20H里存放立即数55H,是否即位地址20H里存放01010101?
如果有谁回答的好且详细并提供相关资料,本人可根据此问题解决程度,将追加5到100不等的悬赏分,希望同行能帮我解决下。
区别:
1、存储
单片机中的存储器通常以字节(8bit)为单位来进行组织,即每一个字节有一个地址,通过“字节”地址可以访问到存储器中的任何一个字节,这是最常见的形式。问题当中以“sfr”开头的,就是在定义字节地址,相当于给指定的地址又起了一个别名,以后可以通过这个别名访问字节存储单元。
2、操作对象
针对开关控制之类的应用MCS-51单片机内部集成了一个一位的处理器,这个处理器的操作对象是单个的比特位(并非字节),为了对位的情况进行存储,在原字节形式的存储器上又叠加了一个位存储区,针对每一个比特位给定一个地址,这样就构成了位地址空间。
3、存储单元地址
由于是叠加设计的位存储区,形式上就表现为:存储器中的某些存储单元即可以通过字节地址访问,也可以通过位地址访问(具体是访问该字节中的某个比特位)。
在MCS-51单片机中被叠加设计的这些字节存储单元的字节地址有一个点,就是:字节地址的最低位要么是十六进制的0,要么是十六进制的8,而且位地址当中的00H对应的是字节20H中的D0位。
扩展资料:
位地址:位地址就是每一个位的地址,8位一个字节。
字节地址:如果把字节比为一个8位的数组的话,字节地址就是这个数组的首地址。
字节地址20H~2FH区域是可以按位寻址的,对应的位地址为00H~7FH。
位地址23H实际上就是字节地址24H的第4位,即24H.3。
字节地址23H对应的位地址为18H(字节地址23H.0)~1FH(字节地址23H.7)。
位地址就是每一个位的地址,8位一个字节,如果把字节比为一个8位的数组的话,字节地址就是这个数组的首地址,具体区别如下。
字节地址和位地址的区别:
一、位地址是字节地址中的某一位,在RAM 中,位地址20H是字节地址24H的最低位。
二、字节地址20H有8个位地址:从00H---07H,所以在用汇编去编程的时候,需要注意操作的地址是位地址还是字节地址。
三、把数据存放在含有位地址的字节地址中相连时,可以在程序中去改变这个数据的某一位,所以字节地址中可以存放8个位变量。
四、在用汇编去编程的时候,需要注意操作的地址是位地址还是字节地址。
五、把数据存放在含有位地址的字节地址中时,可以在程序中去改变这个数据的某一位,字节地址中可以存放8个位变量。