汇编解析(1)-内存寻址之实模型平面模式(real mode flat mode)(1)
一、8080CPU
1、8位CPU,16位地址線
2、尋址范圍64K
3、尋址方案:
16位地址的地址線,取出所在的8位內(nèi)容(一個(gè)字節(jié))
一個(gè)字節(jié)存儲(chǔ)8位無(wú)符號(hào)數(shù),儲(chǔ)存的數(shù)值范圍為0-255。
4、使用CP/M80操作系統(tǒng)
CP/M(微型計(jì)算機(jī)控制程序)是數(shù)字研究公司(1991年被Novell所兼并)在1974年開(kāi)發(fā),為8位CPU(如Intel 8080、Zilog Z80等)的個(gè)人電腦(PC)所設(shè)計(jì)的操作系統(tǒng)。
一個(gè)最小的8位CP / M系統(tǒng)需要以下硬件組件:
一個(gè)使用ASCII字符集的計(jì)算機(jī)終端
英特爾8080(以及后來(lái)的8085)或Zilog公司的Z80微處理器
至少有16千字節(jié)的RAM
可引導(dǎo)的磁盤
至少有一個(gè)軟盤驅(qū)動(dòng)器
在8位版本中,CP/M的系統(tǒng)組件加載至主存中。系統(tǒng)組件分為3個(gè)部分:
基本輸入輸出系統(tǒng)(BIOS)
基本磁盤的操作系統(tǒng)(BDOS)
控制臺(tái)命令處理器(CCP)。
BIOS和BDOS常駐在主存中,而CCP常駐在主存中,除非應(yīng)用程序覆蓋,在這種情況下,它會(huì)自動(dòng)重新加載應(yīng)用程序完成后運(yùn)行。還提供了大量標(biāo)準(zhǔn)工具命令。命令以.COM擴(kuò)展名存儲(chǔ)在磁盤上。 BIOS直接控制硬件構(gòu)造(例如CPU和主存),它提供文字輸入輸出、磁盤扇區(qū)讀寫等功能。BDOS運(yùn)行CP/M文件系統(tǒng)和一些輸入輸出操作(例如重定向)。CCP提供用戶命令行并直接運(yùn)行它們(內(nèi)部命令例如DIR顯示一個(gè)文件夾中的文件,或者ERA刪除一個(gè)文件),或者讀取、起動(dòng)一個(gè)可執(zhí)行檔。
8080主要使用的操作系統(tǒng)是CP/M-80,到8086的時(shí)候,實(shí)際尋址范圍是8080的16倍,但是英特爾將8086創(chuàng)建為可讓程序只占用1M內(nèi)存中的64K字節(jié)段,好像完全是小型的8080內(nèi)存系統(tǒng),直接影響到后來(lái)的段寄存器設(shè)計(jì)。
二、8086,8088CPU
1、8080的內(nèi)存模式非常簡(jiǎn)單,以至于需要在8086中運(yùn)行8080程序時(shí),作出兼容性犧牲設(shè)計(jì),引入了段寄存器。
2、可將8080程序快速改為8086程序,通過(guò)段寄存器,只占用1M內(nèi)存中的64K字節(jié)內(nèi)存段,模擬了8080CPU的內(nèi)存模式。
通過(guò)CS(code segment)代碼段寄存器實(shí)現(xiàn)這一過(guò)程,它指向了1M內(nèi)存中的64K字節(jié)內(nèi)存段的起始地址。
3、那么需要使用64K以上內(nèi)存,就需要更改段寄存器的地址,每次使用64k內(nèi)存,進(jìn)入和離開(kāi)段寄存器指向的內(nèi)存段起始地址。
4、 1M字節(jié)的使用
(1)大小為:2202^{20}220或16516^5165字節(jié),因此需要20根地址線
(2)內(nèi)存地址從0開(kāi)始,即從000000H到0FFFFH
三、386以及以后CPU
1、4M內(nèi)存空間
2、32位CPU為4GB
3、但為了兼容8086、8088的DOS程序,仍需要做出特別的設(shè)計(jì),奔騰級(jí)別的CPU使用虛擬86模式(virtual-86 mode)運(yùn)行實(shí)模式段模型程序。
4、實(shí)模式段模型下,CPU只使用了20根地址線,即使它有32根地址線或更多,以64KB為塊單位對(duì)內(nèi)存進(jìn)行操作,最多可使用1MB直接尋址內(nèi)存。
四、段寄存器
1、16個(gè)字節(jié)容量
2、一個(gè)段可以小于或等于64K,但是不能大于64K,前面提過(guò),這是與8086的兼容設(shè)計(jì),16位地址。
總結(jié)
以上是生活随笔為你收集整理的汇编解析(1)-内存寻址之实模型平面模式(real mode flat mode)(1)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: SpringBoot 自动配置实现流程
- 下一篇: Gson详解(二)