導航:首頁 > 數據處理 > 如何求數據段中存放的數據位元組數

如何求數據段中存放的數據位元組數

發布時間: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為低時,外部。

閱讀全文

與如何求數據段中存放的數據位元組數相關的資料

熱點內容
怎麼發送加密微信信息 瀏覽:356
蘋果怎麼備份游戲數據 瀏覽:548
財務代理要哪些條件 瀏覽:830
申請優秀團員為什麼要財務信息 瀏覽:984
鄭州市科技市場怎麼走 瀏覽:907
銀川哪個市場好 瀏覽:756
代理怎麼找到廠家 瀏覽:104
怎麼找到當貝市場下載的安裝包 瀏覽:629
ourplay安裝程序怎麼卸載 瀏覽:665
轉轉交易付款怎麼講 瀏覽:169
市場上酸雞爪為什麼又白又大 瀏覽:761
秋刀魚市場價格多少 瀏覽:55
買產品送股權怎麼樣 瀏覽:758
相城區人才市場在哪裡 瀏覽:316
期貨交易如何匹配性格 瀏覽:757
在網上買電子產品哪些東西必須有 瀏覽:90
研究大型轟炸機需要哪些技術 瀏覽:276
信息與技術的區別是什麼 瀏覽:728
數據異常怎麼辦 瀏覽:954
寧南職業技術學校學費多少 瀏覽:150