微處理器基礎(chǔ)知識(shí)_第1頁
微處理器基礎(chǔ)知識(shí)_第2頁
微處理器基礎(chǔ)知識(shí)_第3頁
微處理器基礎(chǔ)知識(shí)_第4頁
微處理器基礎(chǔ)知識(shí)_第5頁
已閱讀5頁,還剩74頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

微處理器基礎(chǔ)知識(shí)第一頁,共七十九頁,2022年,8月28日第2章微處理器的基礎(chǔ)知識(shí)2.1Intel公司80x86系列微處理器簡介2.2程序可見寄存器組2.3存儲(chǔ)器2.4PC機(jī)操作系統(tǒng)的發(fā)展2.5DOS內(nèi)存布局2.6外部設(shè)備及I/O地址空間2.7匯編語言概述第二頁,共七十九頁,2022年,8月28日2.1Intel公司80x86系列微處理器簡介Intel公司80x86系列微處理器 自上世紀(jì)70年代開始出現(xiàn)微型計(jì)算機(jī)以來,CPU經(jīng)歷了飛速的發(fā)展,1971年,Intel設(shè)計(jì)成功了第一片4位微處理器Intel4004;隨之又設(shè)計(jì)生產(chǎn)了8位微處理器8008;1973年推出了8080;1974年基于8080的個(gè)人計(jì)算機(jī)(PC)問世,Microsoft公司的創(chuàng)始人BillGates為這種PC開發(fā)了BASIC語言解釋程序;1977年Intel推出了8085。自此之后,又陸續(xù)推出了8086、80386、Pentium等80X86系列微處理器。

第三頁,共七十九頁,2022年,8月28日1.16位CPU——8086、8088、802862.32位CPU——80386、804863.準(zhǔn)64位CPU——Pentium、PⅡ、PⅢ、PⅣ4.64位CPU——Itanium

Intel陸續(xù)推出的80x86系列處理器的性能和功能越來越強(qiáng)。但是,從匯編語言程序設(shè)計(jì)人員面對(duì)這些CPU的軟件體系結(jié)構(gòu)角度來看,8086建立的實(shí)模式和80386建立的保護(hù)模式模型到目前為止一直適用。因此,后邊介紹的實(shí)模式編程以8086為例說明,保護(hù)模式編程以80386為例說明。

第四頁,共七十九頁,2022年,8月28日CPU數(shù)據(jù)總線寬度地址總線寬度尋址能力工作模式808616201MB字節(jié)實(shí)模式80888201MB字節(jié)實(shí)模式80286162416MB字節(jié)實(shí)模式、保護(hù)模式80386SX162416MB字節(jié)實(shí)模式、保護(hù)模式80386DX32324GB字節(jié)實(shí)模式、保護(hù)模式80486DX32324GB字節(jié)實(shí)模式、保護(hù)模式Pentium643664GB實(shí)模式、保護(hù)模式Intel80x86系列微處理器

第五頁,共七十九頁,2022年,8月28日三種運(yùn)行模式 從80386開始,Intel的CPU具有3種運(yùn)行模式:實(shí)模式、保護(hù)模式和虛擬8086模式。CPU的3種運(yùn)行模式及其轉(zhuǎn)換關(guān)系如圖2-1所示。實(shí)模式保護(hù)模式虛擬8086模式Reset復(fù)位Reset復(fù)位、修改CR0LMSW指令、修改CR0中斷或異常IRETD指令、任務(wù)轉(zhuǎn)換Reset復(fù)位第六頁,共七十九頁,2022年,8月28日1.實(shí)模式

CPU復(fù)位(Reset)或加電(PowerOn)的時(shí)候以實(shí)模式啟動(dòng),處理器以實(shí)模式工作。在實(shí)模式下,內(nèi)存尋址方式和8086相同,由16位段寄存器的內(nèi)容乘以16當(dāng)做基地址,加上16位偏移地址形成20位的物理地址。在實(shí)模式下,所有的段都是可以讀、寫和可執(zhí)行的。第七頁,共七十九頁,2022年,8月28日2.保護(hù)模式

在保護(hù)模式下,CPU提供了多任務(wù)、內(nèi)存分段分頁管理和特權(quán)級(jí)保護(hù)等功能,這些功能是Windows/Linux等現(xiàn)代操作系統(tǒng)的基石。如果沒有CPU的支持,操作系統(tǒng)的許多功能根本無法實(shí)現(xiàn)。例如,在實(shí)模式下,應(yīng)用程序可以執(zhí)行任何的CPU指令,讀寫所有的內(nèi)存,DOS操作系統(tǒng)就不能控制應(yīng)用程序的行為,應(yīng)用程序可以做任何事情,沒有任何限制。而在保護(hù)模式下,通過設(shè)置特權(quán)級(jí)和內(nèi)存的分段分頁,應(yīng)用程序只能讀寫屬于它自己的內(nèi)存空間,而不能破壞其他應(yīng)用程序和操作系統(tǒng)。第八頁,共七十九頁,2022年,8月28日

實(shí)模式下沒有特權(quán)級(jí)的概念,相當(dāng)于所有的指令都工作在特權(quán)級(jí)0,即最高的特權(quán)級(jí)。它可以執(zhí)行所有特權(quán)指令,包括讀寫控制寄存器CR0等。Windows/Linux操作系統(tǒng)就是通過在實(shí)模式下初始化控制寄存器、GDTR、LDTR、IDTR、TR等寄存器以及頁表,然后再通過置CR0的保護(hù)模式位(PE位)為1而進(jìn)入保護(hù)模式的。實(shí)模式下不支持硬件上的多任務(wù)切換,所有的指令都在同一個(gè)環(huán)境下執(zhí)行。第九頁,共七十九頁,2022年,8月28日保護(hù)模式下提供的主要功能有: 段的大小可以設(shè)置為4GB,段內(nèi)的偏移量為32位。 特權(quán)級(jí)保護(hù)。 支持內(nèi)存分頁機(jī)制,支持虛擬內(nèi)存。 支持多任務(wù)。第十頁,共七十九頁,2022年,8月28日3.虛擬86模式

虛擬86模式是以任務(wù)形式在保護(hù)模式下執(zhí)行的,在CPU上可以同時(shí)支持由多個(gè)真正的CPU任務(wù)和多個(gè)虛擬86任務(wù)。在虛擬86模式下,CPU支持任務(wù)切換和內(nèi)存分頁。第十一頁,共七十九頁,2022年,8月28日2.2程序可見寄存器組

程序可見寄存器組包括多個(gè)8位、16位和32位寄存器,如圖所示。陰影部分只對(duì)80386(含80386)以上CPU有效。

1.通用寄存器

2.段寄存器

3.控制寄存器第十二頁,共七十九頁,2022年,8月28日8086~PentiumCPU程序可見寄存器組1615

CHCL (AH)AX(AL)

EAX

EBX (CH)CX(CL)

ECX(DH)DX(DL)

EDX位08731

AHAL

SP

ESP

AHAL

BP

EBP

AHAL

SI

ESI

DI

EDI

IP

EIP(BH)BX(BL)

FLAGS數(shù)據(jù)寄存器堆棧指針基址指針源變址目的變址指令指針標(biāo)志指針寄存器變址寄存器控制寄存器通用寄存器

FLAGS

GS

CS

SS

DS

ES

FS代碼段寄存器堆棧段寄存器數(shù)據(jù)段寄存器附加段寄存器段寄存器第十三頁,共七十九頁,2022年,8月28日

FLAGS1615

CHCL (AH)AX(AL)

EAX

EBX (CH)CX(CL)

ECX (DH)DX(DL)

EDX

位08731

AHAL

SP

ESP

AHAL

BP

EBP

AHAL

SI

ESI

DI

EDI

IP

EIP (BH)BX(BL)

FLAGS數(shù)據(jù)寄存器堆棧指針基址指針源變址目的變址指令指針標(biāo)志指針寄存器變址寄存器控制寄存器

通用寄存器第十四頁,共七十九頁,2022年,8月28日

GS

CS

SS

DS

ES

FS代碼段寄存器堆棧段寄存器數(shù)據(jù)段寄存器附加段寄存器段寄存器第十五頁,共七十九頁,2022年,8月28日1.通用寄存器⑴數(shù)據(jù)寄存器·四個(gè)16位寄存器:AX、BX、CX、DX。 ·八個(gè)8位寄存器:AH、AL、BH、BL、CH、CL、DH、DL。

·四個(gè)32位寄存器(386以上):EAX、EBX、ECX、EDX。第十六頁,共七十九頁,2022年,8月28日⑵指針寄存器

堆棧指針寄存器SP、ESP(386以上) 功能:存放當(dāng)前堆棧段棧頂偏移量,總是與SS堆棧段寄存器配合存取堆棧中的數(shù)據(jù)。 說明:實(shí)模式使用SP,保護(hù)模式使用ESP。第十七頁,共七十九頁,2022年,8月28日基址指針寄存器:BP、EBP(386以上) 功能:存放地址的偏移量部分或數(shù)據(jù)。若存放偏移量時(shí),缺省情況與SS配合。 說明:實(shí)模式使用BP。保護(hù)模式使用EBP第十八頁,共七十九頁,2022年,8月28日變址寄存器:SI、DI、ESI(386以上)、EDI(386以上) 功能:存放地址的偏移量部分或數(shù)據(jù)。若存放偏移量時(shí),缺省情況與DS配合。 說明:實(shí)模式使用SI、DI。 保護(hù)模式使用ESI、EDI。第十九頁,共七十九頁,2022年,8月28日注意:

除SP、ESP堆棧指針不能隨意修改、需要慎用外,其他通用寄存器都可以直接在指令中使用,用以存放操作數(shù),這是它們的通用之處。其他專用用途在具體指令中介紹。第二十頁,共七十九頁,2022年,8月28日2.段寄存器 簡介:IBMPC機(jī)的存儲(chǔ)器采用分段管理方法組織,因此一個(gè)物理地址用段基址和偏移量表示。一個(gè)程序可以由多個(gè)段組成。

段寄存器功能:段寄存器存放段基址。在實(shí)模式下存放段基地址,在保護(hù)模式下存放段選擇子。第二十一頁,共七十九頁,2022年,8月28日2.段寄存器(續(xù))代碼段寄存器CS:指定當(dāng)前代碼段,代碼段中存放當(dāng)前正在運(yùn)行的程序段。 堆棧段寄存器SS:指定當(dāng)前堆棧段。

說明:堆棧段是在內(nèi)存開辟的一塊特殊區(qū)域,其中的數(shù)據(jù)訪問原則是后進(jìn)先出(LIFO),允許插入和刪除的一端叫做棧頂。IBMPC機(jī)中SP(或ESP)指向棧頂,SS指向堆棧段基地址。第二十二頁,共七十九頁,2022年,8月28日 數(shù)據(jù)段寄存器DS:指定當(dāng)前運(yùn)行程序所使用的數(shù)據(jù)段。

附加數(shù)據(jù)段寄存器ES:指定當(dāng)前運(yùn)行程序所使用的附加數(shù)據(jù)段。

段寄存器FS和GS:指定當(dāng)前運(yùn)行程序的另外兩個(gè)存放數(shù)據(jù)的存儲(chǔ)段(只對(duì)80386以上機(jī)器有效)。第二十三頁,共七十九頁,2022年,8月28日說明:

雖然DS、ES、FS、GS(甚至于CS、SS)所指定的段中都可以存放數(shù)據(jù),但DS是主要的數(shù)據(jù)段寄存器,在默認(rèn)情況下使用DS所指向段的數(shù)據(jù)。若要引用其他段中的數(shù)據(jù),通常需要顯式說明。第二十四頁,共七十九頁,2022年,8月28日3.控制寄存器控制寄存器包括指令指針寄存器和標(biāo)志寄存器。

注意:在程序中不能直接引用控制寄存器名。

第二十五頁,共七十九頁,2022年,8月28日⑴指令指針寄存器IP、EIP(386以上)功能

總是與CS段寄存器配合指出下一條要執(zhí)行指令的地址,其中存放偏移量部分。實(shí)模式使用IP,保護(hù)模式使用EIP。

第二十六頁,共七十九頁,2022年,8月28日⑵標(biāo)志寄存器(FLAGS) 標(biāo)志寄存器也被稱為狀態(tài)寄存器,由運(yùn)算結(jié)果特征標(biāo)志和控制標(biāo)志組成。如圖所示。

重點(diǎn):各檔CPU均有的標(biāo)志。即8086擁有的9個(gè)標(biāo)志。第二十七頁,共七十九頁,2022年,8月28日0123456789101112131415161718192021..31CFPFAFZFSFTFIFDFOFCFPFAFZFSFTFIFDFOFNTCFPFAFZFSFTFIFDFOFIOPLNTVMRFCFPFAFZFSFTFIFDFOFIOPLNTVMRFACCFPFAFZFSFTFIFDFOFIOPLNTVMRFACVIMVIPIDIOPL8086/808880286386/486DX80486SX80586第二十八頁,共七十九頁,2022年,8月28日①運(yùn)算結(jié)果特征標(biāo)志

用于記錄程序中運(yùn)行結(jié)果的特征。8086~Pentium的標(biāo)志寄存器均含有CF、PF、AF、ZF、SF、OF這6位標(biāo)志。第二十九頁,共七十九頁,2022年,8月28日 CF:進(jìn)位標(biāo)志,記錄運(yùn)算結(jié)果的最高位向前產(chǎn)生的進(jìn)位或借位??捎糜跈z測無符號(hào)數(shù)運(yùn)算時(shí)是否發(fā)生溢出。

CF=1有進(jìn)位或借位

CF=0無進(jìn)位或借位第三十頁,共七十九頁,2022年,8月28日 PF:奇偶標(biāo)志,記錄運(yùn)算結(jié)果最低8位中含1的個(gè)數(shù)??捎糜跈z測數(shù)據(jù)傳送過程中是否發(fā)生錯(cuò)誤。

PF=1個(gè)數(shù)為偶數(shù)

PF=0個(gè)數(shù)為奇數(shù)第三十一頁,共七十九頁,2022年,8月28日 AF:輔助進(jìn)位標(biāo)志,記錄運(yùn)算結(jié)果最低4位向前產(chǎn)生的進(jìn)位或借位。只有在執(zhí)行十進(jìn)制運(yùn)算指令時(shí)才關(guān)心此位。

AF=1 有進(jìn)位或借位

AF=0 無進(jìn)位或借位第三十二頁,共七十九頁,2022年,8月28日

ZF:零標(biāo)志,記錄運(yùn)算結(jié)果是否為0。

ZF=1運(yùn)算結(jié)果為零 ZF=0結(jié)果非零

SF:符號(hào)標(biāo)志,記錄運(yùn)算結(jié)果的符號(hào)。

SF=1運(yùn)算結(jié)果為負(fù) SF=0結(jié)果非負(fù)第三十三頁,共七十九頁,2022年,8月28日

OF:溢出標(biāo)志,記錄運(yùn)算結(jié)果是否超出了機(jī)器所能表示的范圍??捎糜跈z測帶符號(hào)數(shù)運(yùn)算時(shí)是否發(fā)生溢出。

OF=1運(yùn)算結(jié)果超出范圍 OF=0結(jié)果未超出第三十四頁,共七十九頁,2022年,8月28日②控制標(biāo)志:

控制標(biāo)志控制處理器的操作,要通過專門的指令才能使控制標(biāo)志發(fā)生變化。 控制標(biāo)志包括:IF、DF、TF等第三十五頁,共七十九頁,2022年,8月28日以下控制標(biāo)志對(duì)8086~PentiumCPU均有效:

IF:中斷允許標(biāo)志。IF的控制只對(duì)外部可屏蔽中斷請(qǐng)求(INTR)起作用。

IF=1允許CPU響應(yīng)INTR IF=0禁止響應(yīng)INTR第三十六頁,共七十九頁,2022年,8月28日 DF:方向標(biāo)志。專服務(wù)于字符串操作指令,指示串操作時(shí)操作數(shù)地址的增減方向。

DF=1串操作時(shí)操作數(shù)地址為自動(dòng)減量

DF=0串操作時(shí)操作數(shù)地址為自動(dòng) 增量第三十七頁,共七十九頁,2022年,8月28日 TF:陷阱標(biāo)志,用于程序調(diào)試。

TF=1CPU處于單步方式

TF=0CPU處于連續(xù)方式第三十八頁,共七十九頁,2022年,8月28日以下控制標(biāo)志只對(duì)80286以上CPU有效:

IOPL(I/OPrivilegeLevel):特權(quán)標(biāo)志,占D13和D12兩位。當(dāng)在保護(hù)模式工作時(shí),IOPL指定要求執(zhí)行I/O指令的特權(quán)級(jí)。若當(dāng)前任務(wù)的特權(quán)級(jí)比IOPL高則執(zhí)行I/O指令;否則發(fā)生一個(gè)保護(hù)異常,導(dǎo)致執(zhí)行程序被掛起第三十九頁,共七十九頁,2022年,8月28日 NT:嵌套任務(wù)標(biāo)志。 保護(hù)模式在執(zhí)行中斷返回指令I(lǐng)RET時(shí)要測試NT值。當(dāng)NT=1時(shí),表示當(dāng)前執(zhí)行的任務(wù)嵌套于另一任務(wù)之中,執(zhí)行完該任務(wù)后要返回到另一任務(wù),IRET指令的執(zhí)行是通過任務(wù)切換實(shí)現(xiàn)的。當(dāng)NT=0時(shí),用堆棧中保存的值恢復(fù)FLAGS、CST及IP寄存器的內(nèi)容,以執(zhí)行常規(guī)的IRET中斷返回操作。

第四十頁,共七十九頁,2022年,8月28日以下控制標(biāo)志只對(duì)80386以上CPU有效:

RF:重啟動(dòng)標(biāo)志。該標(biāo)志控制是否接受調(diào)試故障。

RF=0時(shí)接受,

RF=1時(shí)忽略。

第四十一頁,共七十九頁,2022年,8月28日 VM:虛擬方式標(biāo)志。 當(dāng)CPU處于保護(hù)模式時(shí),若VM=1則切換到虛擬模式,以允許執(zhí)行多個(gè)DOS程序;否則CPU工作在一般的保護(hù)模式。第四十二頁,共七十九頁,2022年,8月28日以下控制標(biāo)志只對(duì)80486SXCPU有效:

AC:地址對(duì)齊檢查標(biāo)志。 若AC=1時(shí)進(jìn)行地址對(duì)齊檢查,當(dāng)出現(xiàn)地址不對(duì)齊時(shí)會(huì)引起地址對(duì)齊異常,只有在特權(quán)級(jí)3運(yùn)行的應(yīng)用程序才檢查引起地址對(duì)齊故障。若AC=0時(shí)不進(jìn)行地址對(duì)齊檢查。只有80486SX微處理器使用該位,主要用來同它配套的協(xié)處理器80487SX同步工作。所謂地址不對(duì)齊是指以下情形:一個(gè)字從奇地址開始,或一個(gè)雙字不是從4的倍數(shù)的地址開始。第四十三頁,共七十九頁,2022年,8月28日以下控制標(biāo)志只對(duì)Pentium以上CPU有效:

ID:標(biāo)識(shí)標(biāo)志。若ID=1,則表示Pentium支持CPUID指令,CPUID指令給系統(tǒng)提供Pentium微處理器有關(guān)版本號(hào)及制造商等信息。

第四十四頁,共七十九頁,2022年,8月28日

VIP:虛擬中斷掛起標(biāo)志。與VIF配合,用于多任務(wù)環(huán)境給操作系統(tǒng)提供虛擬中斷掛起信息。

VIF:虛擬中斷標(biāo)志,是虛擬方式下中斷標(biāo)志位的映像。第四十五頁,共七十九頁,2022年,8月28日2.3存儲(chǔ)器基本概念 1、二進(jìn)制位:存儲(chǔ)信息的基本單位,可用小寫字母b表示。 2、字節(jié):存取信息的基本單位,可用大寫字母B表示。一個(gè)字節(jié)由八位二進(jìn)制數(shù)組成,占用一個(gè)存儲(chǔ)單元。其位編號(hào)自左至右為b7b6b5b4b3b2b1b0。

第四十六頁,共七十九頁,2022年,8月28日 3、字:一個(gè)字16位,占用兩個(gè)存儲(chǔ)單元。其位編號(hào)為b15~b0。

4、雙字:一個(gè)雙字32位,占用四個(gè)存儲(chǔ)單元。其位編號(hào)為b31~b0。

5、四字:一個(gè)四字64位,占用八個(gè)存儲(chǔ)單元。其位編號(hào)為b63~b0。第四十七頁,共七十九頁,2022年,8月28日逆序存放 照Intel公司的習(xí)慣,對(duì)于字、雙字、四字?jǐn)?shù)據(jù)類型,其低地址中存放低位字節(jié)數(shù)據(jù),高地址中存放高位字節(jié)數(shù)據(jù),這就是有些資料中稱為“逆序存放”的含義。

第四十八頁,共七十九頁,2022年,8月28日存儲(chǔ)器分段管理

IBMPC機(jī)的存儲(chǔ)器采用分段管理的方法。存儲(chǔ)器采用分段管理后,一個(gè)內(nèi)存單元地址要用段基地址和偏移量兩個(gè)邏輯地址來描述,表示為段基址:偏移量,其段基址和偏移量的限定、物理地址的形成視CPU工作模式?jīng)Q定。第四十九頁,共七十九頁,2022年,8月28日 8086和8088微處理器只能工作在實(shí)模式,80286以上的微處理器既可以工作在實(shí)模式也可以工作在保護(hù)模式。無論是哪一種微處理器,每次機(jī)器冷啟動(dòng)或復(fù)位都隱含地以實(shí)模式開始工作。在實(shí)模式下微處理器只可以尋址最低的1M字節(jié)。

第五十頁,共七十九頁,2022年,8月28日

對(duì)段基址的限定:只要工作在實(shí)模式,段基址必須定位在地址為16的整數(shù)倍上,這種段起始邊界通常稱做節(jié)或小段。段基址有了這樣的規(guī)定,1M字節(jié)空間的20位地址的低4位可以不表示出,而高16位就可以完全放入段寄存器了。

對(duì)段長的限定:在實(shí)模式下段長不能超過64K。第五十一頁,共七十九頁,2022年,8月28日 存儲(chǔ)器采用分段管理后,其物理地址的計(jì)算方法為:

10H×段基址+偏移量(其中H表示是十六進(jìn)制數(shù)) 簡便的計(jì)算方法:因?yàn)槎位泛推屏恳话阌檬M(jìn)制數(shù)表示,物理地址簡便的計(jì)算方法是在段基址的最低位補(bǔ)以0H,再加上偏移量。

第五十二頁,共七十九頁,2022年,8月28日例.某內(nèi)存單元的地址用十六進(jìn)制數(shù)表示為1234:5678,則其物理地址為12340H+5678H=179B8H。 如圖2-5所示。第五十三頁,共七十九頁,2022年,8月28日存儲(chǔ)器12340H179B8H…………1234:56785678H……段n

12340(16H×段基址)+5678(偏移量)179B8(物理地址)

圖2-4物理地址的形成第五十四頁,共七十九頁,2022年,8月28日2.4PC機(jī)操作系統(tǒng)的發(fā)展MS-DOS

MS-DOS使用字符界面,用戶必須通過輸入命令來執(zhí)行各個(gè)程序,不易使用。它又是一個(gè)單任務(wù)的操作系統(tǒng),同一時(shí)刻只能運(yùn)行一項(xiàng)任務(wù)。MS-DOS運(yùn)行在實(shí)模式下,只能尋址640KB內(nèi)存,要訪問其他的內(nèi)存只能依靠XMS、EMS、DPMI(DOSProtectedModeInterface)等接口。MS-DOS使用FAT12/FAT16文件系統(tǒng)。

第五十五頁,共七十九頁,2022年,8月28日桌面Windows系統(tǒng)

在Windows95/98中,如果某一個(gè)程序運(yùn)行出錯(cuò),則整個(gè)系統(tǒng)不能繼續(xù)運(yùn)行。這個(gè)缺點(diǎn)在WindowsNT和WindowsXP系統(tǒng)中得到解決,這是因?yàn)樾碌南到y(tǒng)將各個(gè)進(jìn)程的空間完全隔離,如果一個(gè)進(jìn)程出錯(cuò),其他進(jìn)程不受影響。

Windows95/98使用FAT16/FAT32文件系統(tǒng)。第五十六頁,共七十九頁,2022年,8月28日WindowsNT系列

Linux Linux是一個(gè)類UNIX的系統(tǒng),它支持多用戶環(huán)境、多進(jìn)程、多CPU、網(wǎng)絡(luò)、虛擬內(nèi)存管理、多種文件系統(tǒng)等。第五十七頁,共七十九頁,2022年,8月28日2.5DOS內(nèi)存布局程序暫駐區(qū)系統(tǒng)內(nèi)存區(qū)擴(kuò)展存儲(chǔ)區(qū)0640KB(1MB)1024KB

IBM-PC機(jī)存儲(chǔ)器映像第五十八頁,共七十九頁,2022年,8月28日程序暫駐區(qū)(TPA): 長度為640KB,其中駐留操作系統(tǒng)的核心部分、其他控制計(jì)算機(jī)的程序、當(dāng)前激活或非激活的應(yīng)用程序等。應(yīng)用程序在執(zhí)行時(shí)就存放在程序暫駐區(qū)。

第五十九頁,共七十九頁,2022年,8月28日系統(tǒng)內(nèi)存區(qū): 長度為384KB,主要包括BIOSROM、顯示RAM、硬盤控制器ROM等。對(duì)于系統(tǒng)內(nèi)存區(qū)的其余空間,80386以上機(jī)器可以利用CPU的換頁功能,把1M以上的內(nèi)存映射到這塊區(qū)域,使DOS也可以使用這塊空間。第六十頁,共七十九頁,2022年,8月28日擴(kuò)展存儲(chǔ)區(qū)(XMS): 286以上的計(jì)算機(jī)可以包含擴(kuò)展存儲(chǔ)區(qū),使存儲(chǔ)容量遠(yuǎn)遠(yuǎn)大于1M,只有在保護(hù)模式下才可以訪問擴(kuò)展存儲(chǔ)區(qū)。它要靠其他的內(nèi)存管理程序管理,目前使用最多的擴(kuò)展內(nèi)存管理程序是HIMEM.SYS。該程序應(yīng)該通過CONFIG.SYS中的DEVICE命令說明,并在系統(tǒng)執(zhí)行CONFIG時(shí)被加載到內(nèi)存,然后由它監(jiān)控?cái)U(kuò)展內(nèi)存的使用情況。第六十一頁,共七十九頁,2022年,8月28日2.6外部設(shè)備及I/O地址空間 外部設(shè)備(簡稱外設(shè))包括輸入設(shè)備、輸出設(shè)備、外存儲(chǔ)器。計(jì)算機(jī)運(yùn)行時(shí)需要的程序和數(shù)據(jù)及所產(chǎn)生的結(jié)果要通過輸入設(shè)備、輸出設(shè)備與人交互,或者需要保存在大容量的磁盤等外存儲(chǔ)器中。外設(shè)是計(jì)算機(jī)不可缺少的重要組成部分,對(duì)外設(shè)進(jìn)行驅(qū)動(dòng)或訪問是匯編語言的重要應(yīng)用領(lǐng)域之一。第六十二頁,共七十九頁,2022年,8月28日 外設(shè)與主機(jī)的信息交換是通過外設(shè)接口進(jìn)行的,每個(gè)外部設(shè)備的接口中都有一組寄存器,用來存放與CPU交換的數(shù)據(jù)、狀態(tài)和命令信息。每個(gè)寄存器都有一個(gè)端口地址,由這些端口地址組成了I/O地址空間。

Intel80x86系列的不同型號(hào)所提供的內(nèi)存地址總線寬度不盡相同,從而最大可尋址內(nèi)存空間不同,但它所提供的I/O地址總線寬度總是16位的,所以允許最大的I/O尋址空間為64KB,尋址范圍為0000H~FFFFH。第六十三頁,共七十九頁,2022年,8月28日 在PC機(jī)中,由于I/O地址空間是獨(dú)立編址的,因此系統(tǒng)需要提供獨(dú)立的訪問外設(shè)指令(I/O指令)。第六十四頁,共七十九頁,2022年,8月28日2.7匯編語言概述

程序設(shè)計(jì)語言包括: 機(jī)器語言:直接用二進(jìn)制代碼的機(jī)器指令表示的語言。用機(jī)器語言書寫的程序叫做機(jī)器語言源程序,計(jì)算機(jī)可以直接運(yùn)行機(jī)器語言源程序。機(jī)器語言程序的執(zhí)行效率高。第六十五頁,共七十九頁,2022年,8月28日 匯編語言:用指令助記符、符號(hào)地址、標(biāo)號(hào)等符號(hào)書寫程序的語言。用匯編語言書寫的程序叫做匯編語言源程序,計(jì)算機(jī)不能直接運(yùn)行匯編語言源程序。匯編語言程序的執(zhí)行效率高。第六十六頁,共七十九頁,2022年,8月28日 高級(jí)語言:高級(jí)語言是一種類似于人類語言的語言。用高級(jí)語言書寫的程序叫做高級(jí)語言源程序,計(jì)算機(jī)不能直接運(yùn)行高級(jí)語言源程序。高級(jí)語言程序易于編寫,開發(fā)周期短,可移植性好。第六十七頁,共七十九頁,2022年,8月28日什么是匯編語言? 通過以下例子說明:要求編寫程序?qū)崿F(xiàn):

123+456SUM字節(jié)第六十八頁,共七十九頁,2022年,8月28日⑴用C語言實(shí)現(xiàn)main(){ inta,b,sum; a=123;b=456; sum=a+b;} 可以看出,它與人類語言和數(shù)學(xué)表示很相似,很容易書寫和讀懂。第六十九頁,共七十九頁,2022年,8月28日⑵

用IBMPC機(jī)器語言實(shí)現(xiàn) 用DEBUG環(huán)境下的E命令把機(jī)器指令及數(shù)據(jù)輸入內(nèi)存。

①鍵入程序代碼:

-ecs:100a10f0103061101a31301b8004ccd21第七十頁,共七十九頁,2022年,8月28日 ②為數(shù)據(jù)分配空間:

-eds:10f7b00c8010000

這里需要考慮:

a.給代碼和數(shù)據(jù)分配內(nèi)存空間。

b.熟悉機(jī)器指令及其格式。

c.把十進(jìn)制數(shù)轉(zhuǎn)換成十六進(jìn)制數(shù)。

d.熟悉數(shù)據(jù)在內(nèi)存中的存放順序。 例如,123的十六進(jìn)制數(shù)表示為007b,若在內(nèi)存中占用一個(gè)字,其存放順序?yàn)?b00。同

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論