2个回答
展开全部
8051的通用寄存器(r0-r7)通过PSW映射在IRAM的0x00开始到0x20结束,共4组,每组8字节。
至于累加器(ACC),辅助寄存器(B)和数据指针寄存器(DPTR)是编址在IRAM中的。8051其实类似堆栈机模型,而且CPU和IRAM的关联度非常高,不像现代的计算机结构一样容易分离。不过如果将IRAM看待为一个大型REGISTER FILE,就更好分析8051系统了。你可以认为IRAM就是个巨大的寄存器组,CPU直接访问IRAM的效率和寄存器的效率差别不大。
并且8051背负的历史包袱太严重。原本IRAM的0x00-0x7f作为RAM使用,0x80-0xff作为SFR使用。而后8052这款芯片将0x80-0xff这段IRAM的作用增多:指针访问做RAM,直接访问做SFR。这样直接导致了8051访存效率的降低以及初学者经常拎不清楚的问题出现。同样,外部的XRAM和ROM的访问必须依赖DPTR等指针访问,这迫使不少增强型8051单片机生产商推出了双DPTR的设计。
这样的比较混乱,略微复杂,靠着专利过期成功商业化的单片机结构即将迎来它的末日。建议题主改学ARMv7/LC2K/MIPS/RISC-V/AVR这类简洁而高效的架构
至于累加器(ACC),辅助寄存器(B)和数据指针寄存器(DPTR)是编址在IRAM中的。8051其实类似堆栈机模型,而且CPU和IRAM的关联度非常高,不像现代的计算机结构一样容易分离。不过如果将IRAM看待为一个大型REGISTER FILE,就更好分析8051系统了。你可以认为IRAM就是个巨大的寄存器组,CPU直接访问IRAM的效率和寄存器的效率差别不大。
并且8051背负的历史包袱太严重。原本IRAM的0x00-0x7f作为RAM使用,0x80-0xff作为SFR使用。而后8052这款芯片将0x80-0xff这段IRAM的作用增多:指针访问做RAM,直接访问做SFR。这样直接导致了8051访存效率的降低以及初学者经常拎不清楚的问题出现。同样,外部的XRAM和ROM的访问必须依赖DPTR等指针访问,这迫使不少增强型8051单片机生产商推出了双DPTR的设计。
这样的比较混乱,略微复杂,靠着专利过期成功商业化的单片机结构即将迎来它的末日。建议题主改学ARMv7/LC2K/MIPS/RISC-V/AVR这类简洁而高效的架构
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询