版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
學(xué)習(xí)機(jī)簡(jiǎn)介微型計(jì)算機(jī)結(jié)構(gòu)匯編語(yǔ)言程序設(shè)計(jì)指令格式尋址方式指令系統(tǒng)第1節(jié)
微型計(jì)算機(jī)結(jié)構(gòu)概念:微型計(jì)算機(jī)結(jié)構(gòu)是指微型計(jì)算機(jī)主要部件的特性布局及連接,是程序設(shè)計(jì)者必須了解的硬件資源及其資源部件,如地址空間、寄存器組、尋址方式、指令系統(tǒng)等。典型的微型計(jì)算機(jī)結(jié)構(gòu)包括微處理器、存儲(chǔ)器、輸入/輸出三個(gè)主要部分,通過(guò)系統(tǒng)總線連接。
1.Intel8086處理器的結(jié)構(gòu)
2.寄存器結(jié)構(gòu)
8086微處理器內(nèi)部共有14個(gè)16位的寄存器,所有寄存器可分為四組:數(shù)據(jù)寄存器AX、BX、CX、DX,指針及變址寄存器SP、BP、SI、DI,段寄存器CS、DS、SS、ES與控制寄存器IP、FLAGS。
(1)數(shù)據(jù)寄存器
數(shù)據(jù)寄存器是用來(lái)寄存運(yùn)算中的數(shù)據(jù)。它包括:
a.AX(Accumulator)是累加器,是算術(shù)運(yùn)算中主要寄存器。
b.BX(Base),是基址寄存器,常對(duì)應(yīng)于數(shù)據(jù)段,用于間接尋址及基址變址尋址。
c.CX(Count),是計(jì)數(shù)寄存器,在循環(huán)指令和串處理指令中用作隱含的計(jì)數(shù)器,移位指令中使用CL作為計(jì)數(shù)器。
d.DX(Data),是數(shù)據(jù)寄存器,在雙字運(yùn)算時(shí)與AX組合,作為AX的擴(kuò)展,存放高位字,AX存放低位字。
(2)指針及變址寄存器
指針及變址寄存器SP、BP、SI、DI,除SP外,可像數(shù)據(jù)寄存器一樣,作為存放操作數(shù)的通用寄存器,更經(jīng)常、更主要的用途是存放地址,提供尋址時(shí)的偏移地址。
a.SP(StackPointer)是堆棧指針寄存器,用來(lái)指示棧頂?shù)钠频刂贰?/p>
b.BP(BasePointer)是基址指針寄存器,對(duì)應(yīng)于堆棧段。
c.SI(SourceIndex)和DI(DestinationIndex),是源變址寄存器和目的的變址寄存器,用來(lái)形成間接地址,實(shí)現(xiàn)基址加變址尋址。
(3)段寄存器
段寄存器是用來(lái)存放當(dāng)前段的段地址。
a.CS(CodeSegment),代碼段寄存器,用于存入代碼段的段地址。
b.DS(DataSegment),數(shù)據(jù)段寄存器,用于存放數(shù)據(jù)段的段地址。
c.SS(StackSegment),堆棧段寄存器,用于存放堆棧段的段地址。
d.ES(ExtraSegment),附加數(shù)據(jù)段寄存器,用于存放附加數(shù)據(jù)段的段地址。
(4)控制寄存器
控制寄存器用以存放與程序執(zhí)行有關(guān)的信息,寄存的內(nèi)容將影響或改變程序的執(zhí)行流程。
a.IP(InstructionPointer),指令指針寄存器,又稱(chēng)程序計(jì)數(shù)器,是一個(gè)專(zhuān)用寄存器,用于存放當(dāng)前要執(zhí)行指令的地址。
b.OF(OverflowFlag),溢出標(biāo)志位。
c.SF(SignFlag),符號(hào)標(biāo)志位。
d.ZF(ZeroFlag),零標(biāo)志位。
e.AF(AuxiliartyFlag),輔助進(jìn)位標(biāo)志位。
f.PF(ParityFlag),奇偶標(biāo)志位。
g.CF(CarryFlag),進(jìn)位標(biāo)志位。
h.DF(DirectionFlag),方向標(biāo)志位。
i.IF(InterruptFlag),中斷標(biāo)志位。
j.TF(TrapFlag),陷阱標(biāo)志位。
3.內(nèi)存組織
(1).內(nèi)存地址
內(nèi)存的基本單元為8位組成的一個(gè)字節(jié),每個(gè)內(nèi)存單元分配了一個(gè)唯一地址,從0開(kāi)始編址。1MB內(nèi)存地址從00000H到FFFFFH。
8086微機(jī)字長(zhǎng)為16位,16位稱(chēng)為1個(gè)字(Word),字被存儲(chǔ)在連續(xù)2個(gè)字節(jié)中。雙字(DoubleWord)被存儲(chǔ)在連續(xù)4個(gè)字節(jié)中,如用寄存器存放,則需一對(duì)寄存器。如DX:AX。
(2)段式存儲(chǔ)管理
8086微外理器內(nèi)部的EU部件使用16位地址,只能進(jìn)行16位運(yùn)算,為解決與存儲(chǔ)器20位地址的矛盾,對(duì)存儲(chǔ)空間引入邏輯地址,分成許多邏輯段,采用段式存儲(chǔ)管理。
采用段式存儲(chǔ)管理,段地址與偏移地址都可直接放在16位寄存器中,段地址放段寄存器中,偏移地址可以放通用寄存器中,雖然指令使用16位地址,但尋址范圍達(dá)到1M字節(jié)。
(3)邏輯地址與物理地址
邏輯地址是編寫(xiě)程序時(shí)使用的地址,由段地址與偏移地址構(gòu)成。
邏輯地址常用格式“段地址:偏移地址”表示。
物理地址是內(nèi)存的實(shí)際20位地址,是存儲(chǔ)空間的絕對(duì)地址,和存儲(chǔ)單元一一對(duì)應(yīng),采用5位十六進(jìn)制數(shù)表示。
物理地址只有被轉(zhuǎn)換成物理地址才能訪問(wèn)內(nèi)存。
物理地址=段地址X16+偏移地址。
也就是說(shuō),將段地址左移4位,加上偏移地址,即可得到物理地址。轉(zhuǎn)換工作由總線接口部件的地址加法器完成。
(4)I/O空間是微處理器另一塊獨(dú)立的64KB大小的物理地址空間,用地址總線的低16位作為8位I/O端口的尋址線。
4.堆棧技術(shù)
(1)堆棧描述
堆棧是內(nèi)存中一塊特定區(qū)域,是一片先進(jìn)后出、后進(jìn)先出的存儲(chǔ)空間,堆棧段中數(shù)據(jù)由高地址到低地址順序存放。
堆棧一端是固定的,另一端是浮動(dòng)的,固定的一端稱(chēng)為堆棧棧底,浮動(dòng)的一端稱(chēng)為堆棧棧頂,是堆棧的操作端。由堆棧段寄存器SS指示堆棧段地址,堆棧棧底及堆棧長(zhǎng)度由椎棧指針寄存器SP的初值指出,堆棧棧頂也由堆棧指針寄存器SP的值指出。
堆棧為空時(shí),棧頂與棧底相同。
(2)堆棧操作
堆棧操作遵循“先進(jìn)后出、后進(jìn)先出”的原則,包括壓入操作(PUSH)和彈出操作(POP)。堆棧操作過(guò)程中,SP的值不斷變化,但總是指向堆棧棧頂位置。
堆棧操作總是對(duì)字?jǐn)?shù)據(jù)進(jìn)行。
壓入操作用于數(shù)據(jù)進(jìn)棧,保存信息。
彈出操作用于數(shù)據(jù)出棧,恢復(fù)信息。
堆棧操作有專(zhuān)用的指令完成,也可以由子程序調(diào)用指令實(shí)現(xiàn)。
第2節(jié)
匯編語(yǔ)言程序設(shè)計(jì)
1.開(kāi)發(fā)環(huán)境
典型的匯編語(yǔ)言開(kāi)發(fā)環(huán)境包括編輯程序、匯編程序、連接程序及調(diào)試程序。
a.編輯程序用于建立匯編程序,可用任何字處理軟件完成。
b.匯編程序用于將匯編程序匯編成目標(biāo)代碼程序,常用的有Mricrosoft公司的MASM5.0與MASM6.0,目標(biāo)代碼程序文件擴(kuò)展名為OBJ。
c.連接程序用于將目標(biāo)代碼程序連接裝配成可執(zhí)行程序,目標(biāo)代碼程序既可以是匯編程序產(chǎn)生的,也可以是其他編譯程序產(chǎn)生的,常用的是Microsoft公司的LINK程序。執(zhí)行程序文件擴(kuò)展名為EXE。
d.調(diào)試程序用于跟蹤程序的執(zhí)行情況,查找程序中的邏輯錯(cuò)誤,Microsoft公司的DEBUG、CodeView與Borland公司的TurboAssembler都是不錯(cuò)的調(diào)度工具。
2.一般過(guò)程
進(jìn)行程序設(shè)計(jì)實(shí)際要做兩件事,一是對(duì)數(shù)據(jù)進(jìn)行描述,二是對(duì)操作進(jìn)行描述。
程序設(shè)計(jì)的過(guò)程應(yīng)嚴(yán)格遵循軟件工程的規(guī)范,匯編語(yǔ)言程序設(shè)計(jì)的一般過(guò)程可簡(jiǎn)化為分析問(wèn)題、設(shè)計(jì)算法、編制程序、分析結(jié)果四步,如下圖所示:
3.基本方法
程序設(shè)計(jì)的基本方法是結(jié)構(gòu)化程序設(shè)計(jì)方法。
結(jié)構(gòu)化程序由順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)三種基本結(jié)構(gòu)組成。
結(jié)構(gòu)化程序設(shè)計(jì)方法的基本思想是“自頂向下、逐步求精”。在設(shè)計(jì)階段,合理分解;在編碼階段,讀者至上。
結(jié)構(gòu)化程序設(shè)計(jì)方法就是模塊化程序設(shè)計(jì)。
第3節(jié)
指令格式1.機(jī)器語(yǔ)言指令格式
機(jī)器語(yǔ)言中使用二進(jìn)制代碼指令,為了滿足不同的功能要求,減少指令長(zhǎng)度,提高指令的使用效率,8086指令系統(tǒng)采用1~6個(gè)字節(jié)組成的變字長(zhǎng)指令格式,由操作碼、尋址方式、操作數(shù)三部分組成,如下圖所示:
通常指令的第1字節(jié)為操作碼,規(guī)定指令的操作類(lèi)型。第2字節(jié)為操作數(shù),規(guī)定操作數(shù)的尋址方式。第3~6字節(jié)是可變字節(jié),指出存儲(chǔ)器操作數(shù)地址的位移量或產(chǎn)即數(shù)。
W位,指示操作數(shù)的類(lèi)型。
D位,指示操作數(shù)的傳送方向。
REG字段,指定一個(gè)寄存器操作數(shù),見(jiàn)下表。它作為源操作數(shù)還是作為目的操作數(shù)同D位規(guī)定。
MOD字段,用來(lái)指定另一個(gè)操作數(shù)的尋址方式。
R/M字段,受MOD字段控制。
2.匯編語(yǔ)言指令格式
匯編語(yǔ)言以機(jī)器語(yǔ)言指令作為基礎(chǔ),使用與機(jī)器語(yǔ)言指令基本相對(duì)應(yīng)的符號(hào)助記指令。
符號(hào)助記指令由操作助記符和若干操作數(shù)組成。
操作數(shù)分為數(shù)據(jù)操作數(shù)與轉(zhuǎn)移地址操作數(shù)兩大類(lèi)。
數(shù)據(jù)操作數(shù)包括立即操作數(shù)、寄存器操作數(shù)、存儲(chǔ)器操作數(shù)、I/O操作數(shù)四種。數(shù)據(jù)操作數(shù)通常有兩個(gè),一個(gè)為源操作數(shù),一個(gè)為目的操作數(shù)。
匯編語(yǔ)言指令的基本格式:
a.操作助記符
b.目的操作數(shù),源操作數(shù)
第4節(jié)
尋址方式概念:尋址方式給出操作數(shù)或操作數(shù)地址的計(jì)算方法,對(duì)轉(zhuǎn)移指令形成程序的轉(zhuǎn)移地址。根據(jù)尋址方式計(jì)算出操作數(shù)地址存取操作數(shù)的過(guò)程稱(chēng)為尋址操作。
1.數(shù)據(jù)尋址方式
數(shù)據(jù)尋址包括立即尋址、寄存器尋址、直接尋址、寄存器間接尋址、寄存器相對(duì)尋址、基址變址尋址、基址變址相對(duì)尋址等方式。
(1)立即尋址
立即尋址指的是操作數(shù)直接包括在指令中。
這樣的操作數(shù)稱(chēng)為立即數(shù),可以是8位的,也可以是16位的。
(2)寄存器尋址
寄存器尋址指的是操作數(shù)放在指令指定的寄存中。
(3)直接尋址
直接尋址指的是操作數(shù)的偏移地址直接出現(xiàn)在指令中,書(shū)寫(xiě)時(shí)加上中括號(hào)以表示是偏移地址。默認(rèn)段寄存器DS,允許段超越。
(4)寄存器間接尋址
寄存器間接尋址指的是操作數(shù)的偏移地址在基址寄存器BX、BP,或變址寄存器SI、DI中。使用BX、SI、DI,默認(rèn)段寄存器DS;使用BP,默認(rèn)段寄存器SS。允許段超越。
(5)寄存器相對(duì)尋址
寄存器相對(duì)尋址指的是操作數(shù)的偏移地址是一個(gè)基址寄存器或變址寄存器的內(nèi)容加上指令中給出的8位或16位位移量。
(6)基址變址尋址
基址變址尋址指的是操作數(shù)的偏移地址是一個(gè)基址寄存器內(nèi)容加上一個(gè)變址寄存器的內(nèi)容。
(7)基址變址相對(duì)尋址
基址變址相對(duì)尋址指的是操作數(shù)的偏移
第5節(jié)
指令系統(tǒng)每臺(tái)計(jì)算機(jī)都擁用自己的指令系統(tǒng),指令系統(tǒng)是程序的底層支撐。不同類(lèi)型計(jì)算機(jī)提供的指令數(shù)量、格式、功能不盡相同。
大多數(shù)指令必須遵守以下基本規(guī)則:
(1)目的操作數(shù)與源操作數(shù)的類(lèi)型必須匹配,一般8位對(duì)8位,16位對(duì)16位。
(2)目的操作數(shù)不能立即操作數(shù)
(3)目的操作數(shù)與源操作數(shù)不能同時(shí)為存儲(chǔ)器操作數(shù)。串操作指令除外
(4)目的操作數(shù)與源操作數(shù)不能同時(shí)為段寄存器。
1.通用數(shù)據(jù)傳送指令
(1)數(shù)據(jù)傳送指令MOV
格式:MOVDOPD,SOPD
功能:將一個(gè)字節(jié)或字操作數(shù)從SOPD傳送至DOPD。
說(shuō)明:
a.CS不能作為目的的操作數(shù),立即數(shù)不能直接傳送到段寄存器中,SOPD、DOPD不能同時(shí)為存儲(chǔ)器操作數(shù),不能在段寄存器之間直接傳送。
b.不影響標(biāo)志寄存器。
(2)數(shù)據(jù)交換指令XCHG
格式:XCHGDOPD,SOPD
功能:交換DOPD與SOPD內(nèi)容
說(shuō)明:不影響標(biāo)志寄存器
(3)查表轉(zhuǎn)換指令XLAT
格式:XLAT[OPD]
功能:從BX作為表頭的表中找到序號(hào)為AL的字節(jié)數(shù)據(jù)送AL中,[BX+AL]--AL。
說(shuō)明:XLAT指令可以很方便地將一種代碼轉(zhuǎn)換成另一種代碼。
(4)堆棧操作指令PUSH和POP
格式:PUSHSOPD
POPDOPD
功能:對(duì)字?jǐn)?shù)據(jù)進(jìn)行操作,PUSH指令將數(shù)據(jù)壓入堆棧,POP指令將數(shù)據(jù)彈出堆棧。
說(shuō)明:
(1)操作數(shù)可以是立即數(shù)以外的尋址方式,POP指令不可以使用CS,不影響標(biāo)志位。
(2)壓入時(shí)SP-2-SP,彈出時(shí)SP+2--SP。
(3)PUSH指令和POP指令一般要成對(duì)使用,進(jìn)棧必須出棧,堆棧指針必須保持平衡與穩(wěn)定,這是使用堆棧的一個(gè)重要原則。
2.地址傳送指令
(1)傳送偏移地址指令LEA
格式:LEAREG16,MEM
功能:將MEM的偏移地址傳送至指定寄存器中。
說(shuō)明:該指令通常用來(lái)設(shè)置偏移地址初值,以便從此地址開(kāi)始存取多個(gè)數(shù)據(jù)。
(2)傳送偏移地址與數(shù)據(jù)段地址指令LDS
格式:LDSREG16,MEM32
功能:將MEM32中低字內(nèi)容送REG16,高字內(nèi)容送DS。
說(shuō)明:
a.MEM32存放的雙字一般是某個(gè)程序或變量的邏輯地址。
b.該指令為訪問(wèn)非當(dāng)前數(shù)據(jù)段作地址準(zhǔn)備,常指定SI寄存器。
(3)傳送偏移地址與數(shù)據(jù)段地址指令LES
格式:LESREG16,MEM32
功能:與LDS指令完全類(lèi)似,只是將高字內(nèi)容送ES。
說(shuō)明:該指令為訪問(wèn)附加數(shù)據(jù)段作地址并準(zhǔn)備。
3.標(biāo)志傳送指令
(1)取標(biāo)志指令LAHF
格式:LAHF
功能:將FLAGS的低字節(jié)送AH,即取SF、ZF、AF、PF及CF等5個(gè)狀態(tài)位送入AH對(duì)應(yīng)位中。
(2)置標(biāo)志指令SAHF
格式:SAHF
功能:將AH內(nèi)容送FLAGS的低字節(jié),即以AH對(duì)應(yīng)內(nèi)容修改SF、ZF、AF、PF及CF等5個(gè)狀態(tài)位。
(3)標(biāo)志壓入堆棧指令PUSHF
格式:PUSHF
功能:將FLAGS內(nèi)容壓入堆棧,該指令不影響狀態(tài)標(biāo)志位。
(4)標(biāo)志彈出堆棧指令POPF
格式:POPF
功
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 甲狀旁腺移植術(shù)后并發(fā)癥
- 黑龍江省綏化市2026年中考數(shù)學(xué)真題附同步解析
- 機(jī)電設(shè)備應(yīng)急搶修施工方案及技術(shù)措施
- 健康明白人演講
- 試用期員工安全事故案例培訓(xùn)管理辦法
- 2026年醫(yī)院感染控制常識(shí)測(cè)試題與解析
- 喝中藥的健康宣教
- 蘇教版小學(xué)一年級(jí)語(yǔ)文下冊(cè)《小松樹(shù)和大松樹(shù)》課文教案
- 小兔和蝴蝶健康
- 蘇教版小學(xué)一年級(jí)語(yǔ)文下冊(cè)單元基礎(chǔ)鞏固教案
- T∕CITS 172-2024 居家醫(yī)學(xué)檢驗(yàn)外送服務(wù)規(guī)范
- 2024年國(guó)家現(xiàn)行有關(guān)工程施工和驗(yàn)收的標(biāo)準(zhǔn)、規(guī)范、規(guī)程、圖集合集
- 分包合同范本(2篇)
- 2024九年級(jí)數(shù)學(xué)上學(xué)期期中測(cè)試題新版華東師大版
- GB/T 44148.2-2024承壓設(shè)備用鋼鍛件、軋制或鍛制鋼棒第2部分:規(guī)定高溫性能的低合金及合金(鉬、鉻和鉻鉬)鋼
- 辦理暫住證授權(quán)委托書(shū)格式
- 工業(yè)機(jī)器人培訓(xùn)計(jì)劃方案
- 英語(yǔ)48個(gè)國(guó)際音標(biāo)課件(單詞帶聲、附有聲國(guó)際音標(biāo)圖)
- 小升初六年級(jí) 小學(xué)英語(yǔ) 疑問(wèn)詞 特殊疑問(wèn)句
- GB/T 7373-2006工業(yè)用二氟一氯甲烷(HCFC-22)
- GB/T 6311-2004大量程百分表
評(píng)論
0/150
提交評(píng)論