A. 存儲器分段示意圖
代碼段首地址:31FF0H 當前指令地址:320F0H 數據段首地址:10E40H
堆棧段首地址:21F00H 堆棧段棧頂地址:31EEEH 附加段首地址:10F40H
B. 定義數據段如下,畫出數據存儲示意圖,並說明該數據段共有多少個位元組單元。
所謂內部數據存儲器就是集成在單片機內部的數據存儲器,因為單片機的內部的數據匯流排是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為低時,外部。
C. 畫出該存儲器的組成邏輯框圖
按大小來看,一共需要16塊DRAM晶元,將每四塊分為一組,形成32位的數據寬度,根據該儲存容量大小一共需要16位地址線(可以根據儲存容量除以數據寬度來確定)。將地址線的低14位作為全部DRAM晶元的地址,然後將高2位作為組片選信號,即選擇各組輸出的32位數據。
D. 存儲器分為哪幾類CPU如何訪問它們試畫出存儲器層次圖
存儲系統可分為內存和外存兩大類。內存是直接受CPU控制與管理的並只能暫存數據信息的存儲器,外存可以永久性保存信息的存儲器。存於外存中的程序必須調入內存才能運行,內存是計算機工作的舞台。內存與外存的區別是:內存只能暫存數據信息,外存可以永久性保存數據信息;外存不受CPU控制,但外存必須藉助內存才能與CPU交換數據信息;內存的訪問速度快,外存的訪問速度慢。
內存可分為:RAM與ROM。RAM的特點是:可讀可寫,但斷電信息丟失。ROM用於存儲BIOS。
外存有:磁碟(軟盤和硬碟)、光碟、U盤(電子盤)
E. 計算機組成原理 關於畫出存儲器的結構圖的問題
這題你不要問人,功利的講,畫圖很麻煩,而且這是大題,網路80分差不多。。。。
而且,這個你可以做出來的,參照組成原理存儲器設計的第一個例題,第一步列出rom和ram需要的存儲空間的二進製表示,第二選擇最少的元件,第三部連接串聯還是並聯的連接。做完這么兩三道,就不會忘啦!以後也會很容易,花你半小時時間久能掌握這個知識點,期末考試和考研必考!相信我吧。
對不起,實在是畫圖太麻煩了
F. 微機原理的題,什麼是存儲器的分段示意圖
參考答案 無論生活有多難,最終,你都會找到那個讓你心甘情願傻傻相伴的人。不要忘掉別人生氣時候說的話,因為往往那才是真相!
G. 有兩個16位字31DAH和5E7FH 他們在8086系統存儲器中的地址分別為00130H和00134H ,試畫出他們的存儲示意圖
16位微處理器80886共有二十根地址線,按字定址,每個字為16位(16bit=2B),其中31DAH,5E7FH為存儲單元中的數據,00130H、00134H為內存地址,兩個地址相隔4個字,示意圖如下
H. 用16k*8位的SRAM晶元構成64k*16位的存儲器,試畫出該存儲器的組成邏輯框圖
共八個SRAM,每四片串聯(地址線並聯,數據線連一起),得到兩組64K*8的存儲組,然後將兩組並聯(地址線連一起,數據線並聯)即64K*16BIT,地址分配可分為8個塊區,高低位元組分別解碼選擇,然後進行四個16K的定址,訪問具體數據的映射地址。
首先要滿足位寬的要求,2片16*8並行組成16*16的結構,地址線相同,數據線擴展,然後在滿足容量用4個16*16的結構構成64*16,地址線擴展,數據線相同,地址線上多數要加內解碼器容來片選,常見3-8解碼器138。
(8)畫出存儲器的示意圖擴展閱讀:
存儲器是用來存儲程序和各種數據信息的記憶部件。存儲器可分為主存儲器(簡稱主存或內存)和輔助存儲器(簡稱輔存或外存)兩大類。和CPU直接交換信息的是主存。
主存的工作方式是按存儲單元的地址存放或讀取各類信息,統稱訪問存儲器。主存中匯集存儲單元的載體稱為存儲體,存儲體中每個單元能夠存放一串二進制碼表示的信息,該信息的總位數稱為一個存儲單元的字長。存儲單元的地址與存儲在其中的信息是一一對應的,單元地址只有一個,固定不變,而存儲在其中的信息是可以更換的。
I. 一個存儲器有 13根地址線,8條數據線,畫出該存儲器的系統連接圖
2的10次方=1KB,注意這里的B是大寫,也就是位元組,所以存儲容量是1K位元組,注意這里的8根數據線實際上剛好是傳輸1個位元組。