MCS-51单片机的位地址空间是如何分配的?

如题所述

第1个回答  2022-11-16
关于51单片机内存问题,一直是个疑惑大家的问题,因为51单片机是个很另类的单片机。\x0d\x0a下面我给楼主讲解一下:\x0d\x0a51单片机之所以另类,是因为,他寻址内存的空间,不是靠总线,是用指令的方式。\x0d\x0a51单片机有以下几个内存模块组成:\x0d\x0aROM或者Flash就不说了。\x0d\x0aRAM有------内部RAM的低128位(00-7F)\x0d\x0a -------内部RAM的高128位(80-FF)---【89C51单片机没有这一段空间】\x0d\x0a -------特殊功能寄存器(SFR)(80-FF)\x0d\x0a ------外部RAM 64K(0000-FFFF)\x0d\x0a楼主又疑惑了,好多地址是重复的,比如,我向80H地址写一个数值,单片机怎么知道读的是内部的高128位RAM?还是SFR?还是外部64K的RAM呢?\x0d\x0a答案是用指令,如果是直接寻址,那么访问的就是SFR,如果是R0或者R1间接寻址,就是内部高128位RAM,如果是DPTR或者是R0,R1间接寻址,且配合的是MovX指令,那么就是访问外部64KRAM中的第80H个地址。\x0d\x0a对于你内部的128B,可以直接寻址,寄存器寻址、寄存器间接寻址都可
相似回答