导航:首页 > 数据处理 > 如何求数据段中存放的数据字节数

如何求数据段中存放的数据字节数

发布时间:2023-09-07 14:08:31

1. 定义数据段如下,画出数据存储示意图,并说明该数据段共有多少个字节单元。

所谓内部数据存储器就是集成在单片机内部的数据存储器,因为单片机的内部的数据总线是8位的,所以其寻址范围只有00H~FFH。而这段内存也分为两部分:00H~7FH:直接寻址区: 也叫DATA区。C语言中在定义变量的时候,加上data这个关键字修饰的话,那么这个变量就存在这个区域。这个区域可以进行直接寻址。例如 MOV A, 30H;把30H单元里面的内容复制到A中。 这段区域比较复杂,00H~1FH这段区域是通用寄存器(R0~R7)组所占的区域。你可能觉得很奇怪,R0~R7只有八个字节,而这段区域有32个字节。其实这个段区域是分为四组,每组8个字节。而程序在同一时刻所用到的R0~R7只是占这四组中的一组。其他的24个字节是当作普通内存在使用的。而使用那一组是由PSW寄存器中的RS0和RS1两位来决定的。 可能你会觉得设计这单片机的人不是找抽吗,没事搞的那么复杂干什么。其实设计者这样设计是有目的的。在中断的时候,这个设计就非常方便了。在进中断的时候,要做现场的保护,就是把一些在主程序中用到的寄存器同时又在中断中用到,这样的寄存器就必须保护,防止数据丢失。例如在主程序中用到了R0~R7,在中断中也用到了R0~R7,不这样设计的话就得一个一个寄存器去入栈,然后再一个一个的出栈。麻烦的很。而有这样的分组设计,只需在进中断的时候,把PSW入栈,再改变PSW的RS0和RS1两位的值,用不同的寄存器组。然后在中断结束的时候,把PSW出栈就可以了。这样就方便很多。 20H~2FH,叫位寻址区,这个区域的16个字节可以进行位寻址。C语言中定义的位变量就分配在这个区域。 30H~7FH:普通 的内存。80H~FFH:这段地址也纠结。如果单片机是51的话还好理解,因为51单片机内存只有128个字节,而这段地址是特殊功能寄存器的地址。如果是52单片机的话就纠结啦,52单片机内部数据存储器有256个字节,00H~7FH只有128个啊,而80H~FFH是特殊功能器的地址啊,那么还有128个字节的地址怎么编排呢?和特殊功能器共用地址?那会不会在访问内存的时候改变了特殊功能器的值啊,改变了的话程序会出问题的?这是每个初学者都有这样的疑问。其实特殊功能寄存器的确和后面128个字节的内存是共用相同的地址的。但是他们都有自己的物理地址,就像两个人同名样的,虽然名字相同,但不是同一个人。而区分的方法就是利用不同的寻址方式,特殊功能寄存器有直接寻址,内存用间接寻址。例如:MOV R0, 0E0H;直接寻址,把累加器A中的值复制到R0中。MOV R1,#0E0HMOV R0,@R1间接寻址,把地址为E0H的内存单元里面数复制到R0中。间接寻址只能用R0或R1作为地址指针。 外部数据存储器,也就是外部扩展的寄存器。以前的外部存储器都是挂在单片机外面的(现在的外部存储器都集成在单片机内部了,但是访问的方式还是没改变。只是不占用IO口了),用单片机的P0口和P2口来连接外部存储器。P0口作为访问外部存储器地址的低八位和数据口,P2口作为地址的高八位。程序访问外部数据存储器,必须用DPTR或者R0和R1做为地址指针,用MOVX指令。在外部存储器的地址小于100H的时候,可以用R0和R1作为地址指针来访问外部存储器。例如:MOV R0,#30HMOVX A,@R0这段程序就是把地址为30H 的外部存储器的数据复制到A中。 所以外部存储器的00H~FFH也叫pdata区。同样在C语言中,用pdata关键字修饰的变量存在该区域。外部存储器所有的区域都可以用DPTR作为指针来访问。例如:;地址小于8位MOV DPTR,#0030HMOVX A,@DPTR;地址大于8位MOV DPTR,#3000HMOVX A,@DPTR所以外部存储器所有区域叫xdata区,在C语言中,有xdata修饰的变量就存在该区域。内部数存和外部数存有些地址是重叠的,但是它们在空间上不重叠。也就是有自己独立的物理空间。利用不同的寻址方式从而来区分他们。程序存储器也就是只读存储器。在程序运行过程中只能对它进行读,但是不能写。对它的写只能利用一些特殊的方式,例如把你在电脑里面写好程序,通过下载器下载到单片机里面。而在程序中对它的读也得用DPTR做为指针来访问,并且用MOVC指令。由于老的51单片机内部集成的程序存储器空间比较小,所以有时候需要外扩程序存储器。但是内部程序存储器和外部程序存储器不能共存,只能用其中的一个。有单片机的EA管教来决定,EA为高时,内部。EA为低时,外部。

阅读全文

与如何求数据段中存放的数据字节数相关的资料

热点内容
ourplay安装程序怎么卸载 浏览:665
转转交易付款怎么讲 浏览:169
市场上酸鸡爪为什么又白又大 浏览:761
秋刀鱼市场价格多少 浏览:55
买产品送股权怎么样 浏览:757
相城区人才市场在哪里 浏览:314
期货交易如何匹配性格 浏览:756
在网上买电子产品哪些东西必须有 浏览:89
研究大型轰炸机需要哪些技术 浏览:274
信息与技术的区别是什么 浏览:727
数据异常怎么办 浏览:952
宁南职业技术学校学费多少 浏览:149
如何把简单数据做丰满 浏览:938
建行交易失败多久退款 浏览:630
目前市场什么丝绸被面值得收藏 浏览:611
肺癌一般什么数据较高 浏览:588
美国要求哪些半导体企业提供数据 浏览:402
苏州学小吃技术去哪里学校好 浏览:651
程序乱码了怎么复原 浏览:923
支付宝交易有问题如何冻结 浏览:877