




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、微機(jī)原理復(fù)習(xí)題 微機(jī)原理及應(yīng)用習(xí)題庫與答案習(xí)題與練習(xí)題1第1章 緒論計(jì)算機(jī)分那幾類?各有什么特點(diǎn)?答:傳統(tǒng)上分為三類:大型主機(jī)、小型機(jī)、微型機(jī)。大型主機(jī)一般為高性能的并行處理系統(tǒng), 存儲(chǔ)容量大,事物處理能力強(qiáng),可為眾多用戶提供服務(wù)。小型機(jī)具有一定的數(shù)據(jù)處理能力,提供一定用戶規(guī)模的信息服務(wù),作為部門的信息服務(wù)中心。微型機(jī)一般指在辦公室或家庭的桌面或可移動(dòng)的計(jì)算系統(tǒng),體積小、價(jià)格低、具有工業(yè)化標(biāo)準(zhǔn)體系結(jié)構(gòu),兼容性好。簡(jiǎn)述微處理器、微計(jì)算機(jī)及微計(jì)算機(jī)系統(tǒng)三個(gè)術(shù)語的內(nèi)涵。答:微處理器是微計(jì)算機(jī)系統(tǒng)的核心硬件部件,對(duì)系統(tǒng)的性能起決定性的影響。微計(jì)算機(jī)包括微處理器、存儲(chǔ)器、I/O接口電路及系統(tǒng)總
2、線。微計(jì)算機(jī)系統(tǒng)是在微計(jì)算機(jī)的基礎(chǔ)上配上相應(yīng)的外部設(shè)備和各種軟件,形成一個(gè)完整的、獨(dú)立的信息處理系統(tǒng)。80X86微處理器有幾代?各代的名稱是什么?答:從體系結(jié)構(gòu)上可分為3代: 8080/8085:8位機(jī)。 8086/8088/80286:16位機(jī)。® 80386/80486:32位機(jī)。第2章 微處理器結(jié)構(gòu)及微計(jì)算機(jī)的組成8086是多少位的微處理器?為什么?答:8086是16位的微處理器,其內(nèi)部數(shù)據(jù)通路為16位,對(duì)外的數(shù)據(jù)總線也是16位。EU與BIU各自的功能是什么?如何協(xié)同工作?答:EU是執(zhí)行部件,主要的功能是執(zhí)行指令。BIU是總線接口部件,與片外存儲(chǔ)器及I/O接口電路傳輸數(shù)據(jù)。EU
3、經(jīng)過BIU進(jìn)行片外操作數(shù)的訪問,BIU為EU提供將要執(zhí)行的指令。EU與BIU可分別獨(dú)立工作,當(dāng)EU不需BIU提供服務(wù)時(shí),BIU可進(jìn)行填充指令隊(duì)列的操作。8086/8088與其前一代微處理器8085相比,內(nèi)部操作有什么改進(jìn)?答:8085為8位機(jī),在執(zhí)行指令過程中,取指令與執(zhí)行執(zhí)令都是串行的。8086/8088由于內(nèi)部有EU和BIU兩個(gè)功能部件,可重疊操作,提高了處理器的性能。8086/8088微處理器內(nèi)部有那些寄存器,它們的主要作用是什么?答:執(zhí)行部件有8個(gè)16位寄存器,AX、BX、CX、DX、SP、BP、DI、SI。AX、BX、CX、DX一般作為通用數(shù)據(jù)寄存器。SP為堆棧指針存器,BP、DI、
4、SI在間接尋址時(shí)作為地址寄存器或變址寄存器??偩€接口部件設(shè)有段寄存器CS、DS、SS、ES和指令指針寄存器IP。段寄存器存放段地址,與偏移地址共同形成存儲(chǔ)器的物理地址。IP的內(nèi)容為下一條將要執(zhí)行指令的偏移地址,與CS共同形成下一條指令的物理地址。8086對(duì)存儲(chǔ)器的管理為什么采用分段的辦法?答:8086是一個(gè)16位的結(jié)構(gòu),采用分段管理辦法可形成超過16位的存儲(chǔ)器物理地址,擴(kuò)大對(duì)存儲(chǔ)器的尋址范圍 (1MB,20位地址)。若不用分段方法,16位地址只能尋址64KB空間。6在8086中,邏輯地址、偏移地址、物理地址分別指的是什么?具體說明。答:邏輯地址是在程序中對(duì)存儲(chǔ)器地址的一種表示方法,由段地址和段
5、內(nèi)偏移地址兩部分組成,如1234H:0088H。偏移地址是指段內(nèi)某個(gè)存儲(chǔ)單元相對(duì)該段首地址的差值,是一個(gè)16位的二進(jìn)制代碼。物理地址是8086芯片引線送出的20位地址碼,用來指出一個(gè)特定的存儲(chǔ)單元。7給定一個(gè)存放數(shù)據(jù)的內(nèi)存單元的偏移地址是20C0H,(DS)=0C00EH,求出該內(nèi)存單元的物理地址。答:物理地址:320F8H。88086/8088為什么采用地址/數(shù)據(jù)引線復(fù)用技術(shù)?答:考慮到芯片成本,8086/8088采用40條引線的封裝結(jié)構(gòu)。40條引線引出8086/8088的所有信號(hào)是不夠用的,采用地址/數(shù)據(jù)線復(fù)用引線方法可以解決這一矛盾,從邏輯角度,地址與數(shù)據(jù)信號(hào)不會(huì)同時(shí)出現(xiàn),二者可以分時(shí)復(fù)
6、用同一組引線。8086與8088的主要區(qū)別是什么?答:8086有16條數(shù)據(jù)信號(hào)引線,8088只有8條;8086片內(nèi)指令預(yù)取緩沖器深度為6字節(jié),8088只有4字節(jié)。怎樣確定8086的最大或最小工作模式?最大、最小模式產(chǎn)生控制信號(hào)的方法有何不同答:引線MN/MX#的邏輯狀態(tài)決定8086的工作模式,MN/MX#引線接高電平,8086被設(shè)定為最小模式,MN/MX#引線接低電平,8086被設(shè)定為最大模式。最小模式下的控制信號(hào)由相關(guān)引線直接提供;最大模式下控制信號(hào)由8288專用芯片譯碼后提供,8288的輸入為8086的S2#S0#三條狀態(tài)信號(hào)引線提供。8086被復(fù)位以后,有關(guān)寄存器的狀態(tài)是什么?微處理器從
7、何處開始執(zhí)行程序?答:標(biāo)志寄存器、IP、DS、SS、ES和指令隊(duì)列置0,CS置全1。處理器從FFFFOH存儲(chǔ)單元取指令并開始執(zhí)行。8086基本總線周期是如何組成的?各狀態(tài)中完成什么基本操作?答:基本總線周期由4個(gè)時(shí)鐘(CLK)周期組成,按時(shí)間順序定義為T1、T2、T3、T4。在T1期間8086發(fā)出訪問目的地的地址信號(hào)和地址鎖存選通信號(hào)ALE;T2期間發(fā)出讀寫命令信號(hào)RD#、WR#及其它相關(guān)信號(hào);T3期間完成數(shù)據(jù)的訪問;T4結(jié)束該總線周期。結(jié)合8086最小模式下總線操作時(shí)序圖,說明ALE、M/IO#、DT/R#、RD#、READY信號(hào)的功能。答:ALE為外部地址鎖存器的選通脈沖,在T1期間輸出;
8、M/IO#確定總線操作的對(duì)象是存儲(chǔ)器還是I/O接口電路,在T1輸出;DT/R#為數(shù)據(jù)總線緩沖器的方向控制信號(hào),在T1輸出;RD#為讀命令信號(hào);在T2輸出;READY信號(hào)為存儲(chǔ)器或I/O接口“準(zhǔn)備好”信號(hào),在T3期間給出,否則8086要在T3與T4間插入Tw等待狀態(tài)。8086中斷分哪兩類?8086可處理多少種中斷?答:8086中斷可分為硬件中斷和軟件中斷兩類。8086可處理256種類型的中斷。8086可屏蔽中斷請(qǐng)求輸入線是什么?“可屏蔽”的涵義是什么?答:可屏蔽中斷請(qǐng)求輸入線為INTR;“可屏蔽”是指該中斷請(qǐng)求可經(jīng)軟件清除標(biāo)志寄存器中IF位而被禁止。8086的中斷向量表如何組成?作用是什么?答:
9、把內(nèi)存0段中03FFH區(qū)域作為中斷向量表的專用存儲(chǔ)區(qū)。該區(qū)域存放256種中斷的處理程序的入口地址,每個(gè)入口地址占用4個(gè)存儲(chǔ)單元,分別存放入口的段地址與偏移地址。178086如何響應(yīng)一個(gè)可屏蔽中斷請(qǐng)求?簡(jiǎn)述響應(yīng)過程。答:當(dāng)8086收到INTR的高電平信號(hào)時(shí),在當(dāng)前指令執(zhí)行完且IF=1的條件下,8086在兩個(gè)總線周期中分別發(fā)出INTA#有效信號(hào);在第二個(gè)INTA#期間,8086收到中斷源發(fā)來的一字節(jié)中斷類型碼;8086完成保護(hù)現(xiàn)場(chǎng)的操作,CS、IP內(nèi)容進(jìn)入堆棧,請(qǐng)除IF、TF;8086將類型碼乘4后得到中斷向量表的入口地址,從此地址開始讀取4字節(jié)的中斷處理程序的入口地址,8086從此地址開始執(zhí)行程
10、序,完成了INTR中斷請(qǐng)求的響應(yīng)過程。什么是總線請(qǐng)求?8086在最小工作模式下,有關(guān)總線請(qǐng)求的信號(hào)引腳是什么?答:系統(tǒng)中若存在多個(gè)可控制總線的主模塊時(shí),其中之一若要使用總線進(jìn)行數(shù)據(jù)傳輸時(shí),需向系統(tǒng)請(qǐng)求總線的控制權(quán),這就是一個(gè)總線請(qǐng)求的過程。8086在最小工作模式下有關(guān)總線請(qǐng)求的信號(hào)引腳是HOLD與HLDA。簡(jiǎn)述在最小工作模式下,8086如何響應(yīng)一個(gè)總線請(qǐng)求?答:外部總線主控模塊經(jīng)HOLD引線向8086發(fā)出總線請(qǐng)求信號(hào);8086在每個(gè)時(shí)鐘周期的上升沿采樣HOLD引線;若發(fā)現(xiàn)HOLD=1則在當(dāng)前總線周期結(jié)束時(shí)(T4結(jié)束)發(fā)出總線請(qǐng)求的響應(yīng)信號(hào)HLDA;8086使地址、數(shù)據(jù)及控制總線進(jìn)入高阻狀態(tài),讓
11、出總線控制權(quán),完成響應(yīng)過程。20在基于8086的微計(jì)算機(jī)系統(tǒng)中,存儲(chǔ)器是如何組織的?是如何與處理器總線連接的?BHE#信號(hào)起什么作用?答:8086為16位處理器,可訪問1M字節(jié)的存儲(chǔ)器空間;1M字節(jié)的存儲(chǔ)器分為兩個(gè)512K字節(jié)的存儲(chǔ)體,命名為偶字節(jié)體和奇字節(jié)體;偶體的數(shù)據(jù)線連接D7D0,“體選”信號(hào)接地址線A0;奇體的數(shù)據(jù)線連接D15D8,“體選”信號(hào)接BHE#信號(hào);BHE#信號(hào)有效時(shí)允許訪問奇體中的高字節(jié)存儲(chǔ)單元,實(shí)現(xiàn)8086的低字節(jié)訪問、高字節(jié)訪問及字訪問。21“80386是一個(gè)32位微處理器”,這句話的涵義主要指的是什么?答:指80386的數(shù)據(jù)總線為32位,片內(nèi)寄存器和主要功能部件均為3
12、2位,片內(nèi)數(shù)據(jù)通路為32位。2280X86系列微處理器采取與先前的微處理器兼容的技術(shù)路線,有什么好處?有什么不足?答:好處是先前開發(fā)的軟件可以在新處理器組成的系統(tǒng)中運(yùn)行,保護(hù)了軟件投資。缺點(diǎn)是處理器的結(jié)構(gòu)發(fā)展受到兼容的約束,為了保持兼容性增加了硅資源的開銷,增加了結(jié)構(gòu)的復(fù)雜性。2380386內(nèi)部結(jié)構(gòu)由哪幾部分組成?簡(jiǎn)述各部分的作用。答:80386內(nèi)部結(jié)構(gòu)由執(zhí)行部件(EU)、存儲(chǔ)器管理部件(MMU)和總線接口部件(BIU)三部分組成。EU包括指令預(yù)取部件、指令譯碼部件、控制部件、運(yùn)算部件及保護(hù)檢測(cè)部件,主要功能是執(zhí)行指令。存儲(chǔ)器管理部件包括分段部件、分頁部件,實(shí)現(xiàn)對(duì)存儲(chǔ)器的分段分頁式的管理,將邏
13、輯地址轉(zhuǎn)換成物理地址??偩€接口部件作用是進(jìn)行片外訪問:對(duì)存儲(chǔ)器及I/O接口的訪問、預(yù)取指令;另外的作用是進(jìn)行總線及中斷請(qǐng)求的控制2480386有幾種存儲(chǔ)器管理模式?都是什么?答:80386有三種存儲(chǔ)器管理模式,分別是實(shí)地址方式、保護(hù)方式和虛擬8086方式25在不同的存儲(chǔ)器管理模式下,80386的段寄存器的作用是什么?答:在實(shí)地址方式下,段寄存器與8086相同,存放段基地址。在保護(hù)方式下,每個(gè)段寄存器還有一個(gè)對(duì)應(yīng)的64位段描述符寄存器,段寄存器作為選擇器存放選擇符。在虛擬8086方式下,段寄存器的作用與8086相同。26試說明虛擬存儲(chǔ)器的涵義,它與物理存儲(chǔ)器有什么區(qū)別?80386虛擬地址空間有多
14、大?答:虛擬存儲(chǔ)器是程序員面對(duì)的一個(gè)巨大的、可尋址的存儲(chǔ)空間,這個(gè)空間是內(nèi)存與外存聯(lián)合形成的,在操作系統(tǒng)的管理下,程序可象訪問內(nèi)存一樣去訪問外存而獲得所需數(shù)據(jù)。物理存儲(chǔ)器是指機(jī)器實(shí)際擁有的內(nèi)存儲(chǔ)器,不包括外存。80386的虛擬地址空間為64TB大。27試說明描述符的分類及各描述符的作用。答:描述符分為三類:存儲(chǔ)器段描述符、系統(tǒng)段描述符、門描述符。存儲(chǔ)器段描述符由8字節(jié)組成,它用來說明一個(gè)段中保存信息的情況。32位段基地址和20位段界限值定位了該段在存儲(chǔ)空間中的位置,其它有關(guān)位決定訪問權(quán)限及段的長(zhǎng)度單位。系統(tǒng)段描述符與存儲(chǔ)器段描述符大多數(shù)字節(jié)段相同,有關(guān)訪問權(quán)及屬性字節(jié)段有些不同。門描述符用來改
15、變程序的特權(quán)級(jí)別、切換任務(wù)的執(zhí)行以及指出中斷服務(wù)程序的入口。28描述符表的作用是什么?有幾類描述符表?答:描述符表順序存放一系列描述符,描述符表定義了在80386系統(tǒng)中被使用的全部存儲(chǔ)器段。有3類描述符表,即全局描述符表、局部描述符表及中斷描述符表。80386的分段部件是如何將邏輯地址變?yōu)榫€性地址的?答:分段部件根據(jù)段選擇符從全局描述符表或局部描述符表中取出對(duì)應(yīng)的段描述符。把段描述符32位段基地址與邏輯地址中的32位偏移量相加就形成了線性地址。80386中如何把線性地址變?yōu)槲锢淼刂??答:分段部件形成?2位線性地址中高10位作為尋址頁目錄表的偏移量,與控制寄存器CR3中頁目錄表基地址共同形成一
16、個(gè)32位的地址指向頁表中的一個(gè)頁項(xiàng),即為一個(gè)頁面描述符。該頁面項(xiàng)中高20位作為頁面基地址,線性地址的低12位為偏移量,相加后形成指向某一存儲(chǔ)單元的32位物理地址。若禁止分頁功能,線性地址就是物理地址。80386對(duì)中斷如何分類?答:80386把中斷分為外部中斷和內(nèi)部中斷兩大類,外部中斷經(jīng)NMI和INTR引線輸入請(qǐng)求信號(hào)。內(nèi)部中斷也叫內(nèi)部異常中斷,分為陷阱中斷、內(nèi)部故障異常中斷、異常終止中斷。80386在保護(hù)方式下中斷描述符表與8086的中斷向量表有什么不同?答:8086工作在實(shí)地址方式,向量表是在存儲(chǔ)器的0段中最低1024字節(jié)內(nèi)存中。80386在保護(hù)方式下要通過中斷描述符表中的描述符訪問虛擬空間
17、的中斷向量,中斷描述符表的位置不是固定的,要由IDTR寄存器實(shí)現(xiàn)在虛擬空間的定位。簡(jiǎn)述80386在保護(hù)方式下的中斷處理過程。答:80386響應(yīng)中斷后,接收由中斷源提供的類型碼并將其乘8,與IDTR寄存器中基地址相加,指出中斷描述符的位置,讀出中斷描述符,依其中的段選擇符及條件決定從兩個(gè)描述符表LDT或GDT中的一個(gè)得到段描述符,形成中斷服務(wù)程序入口所在存儲(chǔ)器單元的線性地址。習(xí)題與練習(xí)題2第3章 8086指令系統(tǒng)及尋址方式1. 根據(jù)下列要求編寫一個(gè)匯編語言程序::代碼段的段名為COD_SG數(shù)據(jù)段的段名為DAT_SG堆棧段的段名為STK_SG變量HIGH_DAT所包含的數(shù)據(jù)為95將變量
18、HIGH_DAT裝入寄存器AH,BH和DL程序運(yùn)行的入口地址為START答案:DAT_SG SEGEMNT HIGH_DAT DB 95DAT_SG ENDS;STK_SG SEGMENT DW 64 DUP(?)STK_SG ENDS;COD_SG SEGMENTMAIN PROC FARASSUME CS: COD_SG, DS: DAT_SG, SS: STK_SGSTART: MOV AX, DAT-SG
19、0; MOV DS, AX MOV AH, HIGH_DAT MOV BH, AHMOV DL, AHMOV AH, 4CHINT 21HMAIN ENDPCOD_SG ENDS END START2. 指出下列程序中的錯(cuò)誤: STAKSG SEGMENT DB 100 DUP(?) STA_SG ENDS DTSEG
20、 SEGMENT DATA1 DB ? DTSEG END CDSEG SEGMENT MAIN PROC FAR START: MOV DS,DATSEG MOV AL,34H ADD AL,4FH MOV DATA,AL START ENDP C
21、DSEG ENDS END答案: 改正后:STAKSG SEGMENT DB 100 DUP(?)STAKSG ENDSDTSEG SEGMENTDATA1 DB ?DTSEG ENDSCDSEG SEGMENTMAIN PROC FAR ASSUME CS: CDSEG, DS: DTSEG, SS: STAKSGSTART: MOV
22、160;AX, DTSEGMOV DS, AXMOV AL, 34HADD AL, 4FHMOV DATA1, ALMOV AH, 4CHINT 21HMAIN ENDPCDSEG ENDS END S3. 將下列文件類型填入空格:(1) .obj (2) .exe (3) .crf (4) .asm (5) .lst (6) .map 編輯程序輸出的文件有_;
23、160; 匯編程序輸出的文件有_; 連接程序輸出的文件有_。答案:編輯程序輸出文件: (4)匯編程序輸出文件: (1), (3), (5) 連接程序輸出文件: (2), (6)4. 下列標(biāo)號(hào)為什么是非法的? (1) GET.DATA (2) 1_NUM (3) TEST-DATA (4) RET (5) NEW ITEM答案:非法標(biāo)號(hào): (1)因?yàn)?只允許是標(biāo)號(hào)的第一個(gè)字符(2)第一個(gè)字符不能為數(shù)字 (3)不允許
24、出現(xiàn)-(4)不能是保留字,如助記符 (5)不能有空格5. 下面的數(shù)據(jù)項(xiàng)定義了多少個(gè)字節(jié)? DATA_1 DB 6 DUP(4 DUP(0FFH)答案: 24字節(jié) 6. 對(duì)于下面兩個(gè)數(shù)據(jù)段,偏移地址為10H和11H的兩個(gè)字節(jié)中的數(shù)據(jù)是一樣的嗎?為什么? DTSEG SEGMENT | DTSEG SEGMENT ORG
25、10H | ORG 10H DATA1 DB 72H | DATA1 DW 7204H DB 04H | DTSEG ENDS DTSEG ENDS
26、 |答案:不一樣. 分別是72H, 04H和04H, 72H. 存儲(chǔ)字時(shí)低8位存在低字節(jié),高8位存在高字節(jié).7. 下面的數(shù)據(jù)項(xiàng)設(shè)置了多少個(gè)字節(jié)? (1) ASC_DATA DB 1234 (2) HEX_DATA DB 1234H答案: (1) 設(shè)置了4個(gè)字節(jié) (2) 設(shè)置了2個(gè)字節(jié)8. 執(zhí)行下列指令后, A
27、X寄存器中的內(nèi)容是什么? TABLE DW 10,20,30,40,50 ENTRY DW 3 . . .MOV BX,OFFSET TABLEADD
28、0;BX,ENTRYMOV AX,BX答案: (AX)=409. 指出下列指令的錯(cuò)誤:(1) MOV AH,BX (2) MOV SI,BX (3) MOV AX,SIDI(4) MOV AX,BXBP (5) MOV BX,ES:AX (6) MOV BYTE PTRBX,1000 (7) MOV
29、 AX,OFFSET SI (8) MOV CS,AX (9) MOV DS,BP答案: (1) 源、目的字長(zhǎng)不一致 (2) 源、目的不能同時(shí)為存貯器尋址方式 (3) 基址變址方式不能有 SI和DI的組合 (4) 基址變址方式不能有 BX和BP的組合 (5) 在8086尋址方式中,AX不能作為基址寄存器使用,而且源、目的不能同時(shí)為存
30、貯器尋址方式 (6) 1000超出一個(gè)字節(jié)的表數(shù)范圍 (7) OFFSET只用于簡(jiǎn)單變量,應(yīng)去掉 (8) CS不能作為目的寄存器 (9) 段地址不能直接送入數(shù)據(jù)段寄存器10. DATA SEGMENT TABLE_ADDR DW 1234H DATA ENDS .
31、 . . MOV BX, TABLE_ADDR LEA BX, TABLE_ADDR 請(qǐng)寫出上述兩條指令執(zhí)行后, BX寄存器中的內(nèi)容。答案:MOV BX,TABLE_ADDR 執(zhí)行后(BX)=1234H LEA BX,TABLE_ADDR &
32、#160; 執(zhí)行后(BX)=OFFSET TABLE_ADDR 11. 設(shè)(DS)=1B00H, (ES)=2B00H, 有關(guān)存儲(chǔ)器地址及其內(nèi)容如右圖 所示,請(qǐng)用兩條指令把X裝入AX寄存器。 1B00:2000H 8000H 1B00:2002H 2B00H . &
33、#160; . 2B00:8000H X 答案:LES BX, 2000HMOV AX, ES: BX12. 變量DATAX和DATAY定義如下: DATAX DW 0148H
34、; DW 2316H DATAY DW 0237H DW 4052H按下述要求寫出指令序列:DATAX和DATAY中的兩個(gè)字?jǐn)?shù)據(jù)相加, 和存放在DATAY和DATAY+2中。DATAX和DATAY中的兩個(gè)雙字?jǐn)?shù)據(jù)相加,
35、 和存放在DATAY開始的字單元中。DATAX和DATAY兩個(gè)字?jǐn)?shù)據(jù)相乘(用MUL)。DATAX和DATAY兩個(gè)雙字?jǐn)?shù)據(jù)相乘(用MUL)。DATAX除以23(用DIV)。DATAX雙字除以字DATAY(用DIV)。答案:(1) MOV AX, DATAXADD AX, DATAYMOV BX, DATAX+2ADD BX, DATAY+2MOV DATAY, AXMOV DATAY+2, BX(2) MOV AX, DATAXADD DATAY, AXMOV AX, DATAX+2AD
36、C DATAY+2, AX(3) MOV AX, DATAXMUL DATAYMOV DATAY,AXMOV DATAY+2,DX(4) MOV AX,WORD PTR DATAX MOV BX,WORD PTR DATAY MUL BX MOV RESULT,AX MOV RESU
37、LT+2,DX MOV AX,WORD PTR DATAX MOV AX,WORD PTR DATAY+2 MUL BX ADD RESULT+2,AX ADC RESULT+4,DX MOV AX,WORD PTR DATAX+2 MOV BX,WORD PTR DATAY MUL BX ADD RESULT
38、+2,AX ADC RESULT+4,DX MOV AX,WORD PTR DATAX+2 MOV BX,WORD PTR DATAY+2 MUL BX ADD RESULT+4,AX ADC RESULT+6,DX (5) MOV AX, DATAX MOV BL, 23DIV BLMOV BL,AHMOV AH, 0MOV DATAY, AX 存放商
39、MOV AL,BLMOV DATAY+2, AX 存放余數(shù)(6) MOV AX, DATAXMOV DX, DATAX+2DIV DATAY MOV DATAY, AX MOV DATAY+2, DX13. 試分析下面的程序段完成什么操作? MOV CL,04 SHL DX,CL MOV BL,AH SHL &
40、#160;AX,CL SHR BL,CL OR DL,BL答案: 將DX: AX中的雙字左移4位(乘16)14. 用其他指令完成和下列指令一樣的功能: (1) REP MOVSB (2) REP LODSB (3) REP STOSB (4) REP SCASB答案:(1) LOOP1:MOV AL,BYTE PTR SI MOV E
41、S:BYTE PTR DI, AL INC SI 或: DEC SI INC DI 或: DEC DI LOOP LOOP1(2) LOOP1: MOV AL, BYTE PTR SI INC SI 或: DEC SI LOOP LOOP1(3) LOOP1: MOV ES:BYTE PTR DI
42、, AL INC DI 或: DEC DILOOP LOOP1(4) LOOP1: CMP AL,ES:BYTE PTR DI JE EXIT INC DI 或: DEC DILOOP LOOP1EXIT:編寫程序段, 比較兩個(gè)5字節(jié)的字符串OLDS和NEWS, 如果OLDS字符串與NEWS不同, 則執(zhí)行NEW_LESS, 否則順序執(zhí)行程序。答案:LEA SI, OL
43、DSLEA DI, NEWSMOV CX, 5CLDREPZ CMPSBJNZ NEW_LESS16. 假定AX和BX中的內(nèi)容為帶符號(hào)數(shù), CX和DX中的內(nèi)容為無符號(hào)數(shù), 請(qǐng)用比較指令和條件轉(zhuǎn)移指令實(shí)現(xiàn)以下判斷:若DX的值超過CX的值,則轉(zhuǎn)去執(zhí)行EXCEED若BX的值大于AX的值,則轉(zhuǎn)去執(zhí)行EXCEEDCX中的值為0嗎? 若是則轉(zhuǎn)去執(zhí)行ZEROBX的值與AX的值相減, 會(huì)產(chǎn)生溢出嗎? 若溢出則轉(zhuǎn)OVERFLOW若BX的值小于AX的值,則轉(zhuǎn)去執(zhí)行EQ_SMA若DX的值低于CX的值,則轉(zhuǎn)去執(zhí)行EQ_SMA 答案:(1) CMP
44、0;DX, CX JA EXCEED(2) CMP BX, AX JG EXCEED(3) CMP CX, 0 JE ZERO(4) SUB BX, AX JO OVERFLOW(5) CMP BX, AX JL EQ_SMA(6) CMP DX, CX JB EQ_SMA17. 假如在程序的括號(hào)中分別填入指令:
45、0;(1) LOOP L20 (2) LOOPNE L20 (3) LOOPE L20 試說明在三種情況下, 當(dāng)程序執(zhí)行完后, AX、BX、CX、DX四個(gè)寄存器的內(nèi)容分別是什么? TITLE EXLOOP.COM CODESG SEGMENT ASSUME CS:CODESG, DS:CODESG. SS:CODESG
46、;ORG 100H BEGIN: MOV AX,01 MOV BX,02 MOV DX,03 MOV CX,04 L20: INC AX ADD BX,AX
47、60; SHR DX,1 ( ) RET CODESG ENDS END BEGIN答案: (1)(AX)= 5 (BX)= 16 (CX)= 0
48、(DX)= 0 (2)(AX)= 2 (BX)= 4 (CX)= 3 (DX)= 1 (3)(AX)= 3 (BX)= 7 (CX)= 2 (DX)= 0 18. 變量N1和N2均為2字節(jié)的非壓縮BCD數(shù)碼,請(qǐng)寫出計(jì)算N1與N2之差的指令序列。答案:MOV AX, 0MOV AL, N1+1S
49、UB AL, N2+1AASMOV DL, ALMOV AL, N1SBB AL, N2AASMOV DH, AL19. 有兩個(gè)3位的ASCII數(shù)串ASC1和ASC2定義如下: ASC1 DB 578 ASC2 DB 694 ASC3 DB 0000 請(qǐng)編寫程序計(jì)算ASC3ASC1+ASC2。答案: CLC MOV CX, 3 MOV BX, 2BA
50、CK: MOV AL, ASC1BX ADC AL, ASC2BX AAAOR ASC3BX+1, AL DEC BX LOOP BACK RCL CX, 1 OR ASC3BX, CL20. 假設(shè)(CS)=3000H, (DS)=4000H, (ES)=2000H, (SS)=5000H, (AX)=2060H, (BX)=3000H, (CX)=5, (DX)=0, (SI)=2060H, (DI)=3000H, (
51、43000H)=0A006H, (23000H)=0B116H, (33000H)=0F802H, (25060)=00B0H,.(SP)=0FFFEH, (CF)=1, (DF)=1, 請(qǐng)寫出下列各條指令單獨(dú)執(zhí)行完后, 有關(guān)寄存器及存儲(chǔ)單元的內(nèi)容, 若影響條件碼請(qǐng)給出條件碼SF、ZF、OF、CF的值。 (1) SBB AX,BX (2) CMP AX,WORD PTRSI+0FA0H (3) MUL BYTE PTRBX (4) AAM (5
52、) DIV BH (6) SAR AX,CL (7) XOR AX,0FFE7H (8) REP STOSB (9) JMP WORD PYRBX (10) XCHG AX,ES:BX+SI 答案:(1) (AX)=0F05FH, (SF)=1, (ZF)=0, (OF)=0, (CF)=1(2) (SF)=1, (ZF)=0, (OF)=1, (CF)=
53、1(3) (AX)=0240H, (OF)=1, (CF)=1(4) (AX)=0906H, (SF)=0, (ZF)=0(5) (AX)=20ACH(6) (AX)=0103H, (CF)=0(7) (AX)=0DF87H, (CF)=0, (OF)=0, (SF)=1, (ZF)=0(8) (23000H)(23004H)=60H, 不影響標(biāo)志位(9) (IP)=0A006H, 不影響標(biāo)志位(10) (AX)=00B0H, (25060)=2060H, 不影響標(biāo)志位習(xí)題與練習(xí)題3第4章 匯編語言程序設(shè)計(jì)基礎(chǔ)1. 試編寫一個(gè)匯編語言程序,要求對(duì)鍵盤輸入的小寫字母用大寫字母顯示出來
54、。答案:abc: mov ah,1 int 21h cmp al,a jb stop cmp al,z ja stop sub al,20h mov dl,al mov ah,2 int 21h jmp abcstop: ret2. 編
55、寫程序,比較兩個(gè)字符串STRING1和STRING2所含字符是否完全相同,若相同則顯示“MATCH”,若不同則顯示“NO MATCH”。答案:datarea segment string1 db asfioa string2 db xcviyoaf mess1 db MATCH,$ mess2 db NO MATCH,$datarea endsprognam segmentmain proc far assu
56、me cs:prognam,ds:datareastart:push dssub ax,axpush axmov ax,datareamov ds,axmov es,axbegin: mov cx, string2-string1 mov bx, mess1-string2 cmp bx,cx jnz dispnolea dx,addrle
57、a si,string1lea di,string2repe cmpsbjne dispno mov ah,9 lea dx,mess1int 21h retdispno: mov ah, 9 lea dx, mess2 int 21hretmain endpprognam
58、ends end start3. 試編寫程序,要求從鍵盤輸入3個(gè)16進(jìn)制數(shù),并根據(jù)對(duì)3個(gè)數(shù)的比較顯示如下信息: (1)如果3個(gè)數(shù)都不相等則顯示0; (2)如果3個(gè)數(shù)中有2個(gè)數(shù)相等則顯示2; (3)如果3個(gè)數(shù)都相等則顯示3。答案:data segmentarray dw 3 dup(?)data endscode segmentmain proc far
59、160;assume cs:code,ds:datastart:push dssub ax,axpush axmov ax,datamov ds,axmov cx,3lea si,arraybegin: push cx mov cl,4 mov di,4 mov dl, mov ah,02 int
60、 21h mov dx,0input: mov ah,01int 21hand al,0fhshl dx,clor dl,aldec dijne inputmov si,dxadd si,2pop cxloop begincomp: lea si,array mo
61、v dl,0 mov ax,si mov bx,si+2 cmp ax,bx jne next1 add dl,2next1: cmp si+4,ax jne next2 add dx,2next2: cmp si+4,bx jne num add
62、 dl,2num: cmp dx,3 jl disp mov dl,3disp: mov ah,2 add dl,30h int 21h retmain endpcode ends end start4. 已知整數(shù)變量A和B,試編寫完成下述操作的程序: (1)若兩個(gè)數(shù)中有一個(gè)是奇數(shù),則
63、將該奇數(shù)存入A中,偶數(shù)存入B中; (2)若兩個(gè)數(shù)均為奇數(shù),則兩數(shù)分別加1,并存回原變量; (3)若兩個(gè)數(shù)均為偶數(shù),則兩變量不變。答案:dseg segment a dw ? b dw ?dseg endscseg segmentmain proc farassume cs:cseg,ds:dsegstart: push ds sub ax,
64、ax push ax mov ax,dseg mov ds,axbegin: mov ax,a mov bx,b xor ax,bx test ax,0001 jz class test bx,0001 j
65、z exit xchg bx,a mov b,bx jmp exitclass: test bx,0001 jz exit inc b inc aexit: retmain endpcseg ends end
66、;start5. 把010010之間的30個(gè)數(shù),存入首地址為GRAD的字?jǐn)?shù)組中,GRAD+i表示學(xué)號(hào)為i+1的學(xué)生成績(jī)。另一個(gè)數(shù)組RANK是30個(gè)學(xué)生的名次表,其中RANK+I的內(nèi)容是學(xué)號(hào)為i+1的學(xué)生的名次。試編寫程序,根據(jù)GRAD中的學(xué)生成績(jī),將排列的名次填入RANK數(shù)組中(提示:一個(gè)學(xué)生的名次等于成績(jī)高于這個(gè)學(xué)生的人數(shù)加1)。答案:dseg segmentgrade dw 30 dup(?)rank dw 30 dup(?)dseg endscseg segmentmain
67、;proc farassume cs:cseg, ds:dseg, es:dsegstart: push ds sub ax,ax push ax mov ax,dseg mov ds,ax mov es,axbegin: mov di,0 mov cx,30lo
68、op1: push cx mov cx,30 mov si,0 mov ax,gradedi mov dx,0loop2: cmp gradesi,ax jbe go_on inc dxgo_on: add si,2 loop
69、160; loop2 pop cx inc dx mov rankdi,dx sdd di,2 loop loop1 retmain endpcseg ends end start6. 分析下列程序的功能,寫出堆棧最滿時(shí)各單元的地址及內(nèi)容。 SSEG
70、 SEGMENT STACK AT 1000H 堆棧的段地址為1000H DW 128 DUP(?) TOS LABEL WORD SSEG ENDS; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - DSEG SEGMENT DW
71、 32 DUP(?) DSEG ENDS; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - CSEG SEGMENT MAIN PROC FAR ASSUME CS:CSEG, DS:DSEG,SS:SSEG START: MOV AX,SSEG MOV &
72、#160;SS,AX MOV AX,DSEG MOV DS,AX MOV AX,4321H CALL HTOA RETN: MOV AH,4CH INT 21H MAIN ENDP - - - - - - - - - - - - - - - - - - -
73、- - - - - - - - - - - - - - - - - - - - - - - - - - HTOA PROC NEAR CMP AX,15 JLE B1 PUSH AX PUSH BP MOV BP,SP MOV BX,BP+2
74、160; AND BX,0FH MOV BP+2,BX POP BP MOV CL,4 SHR AX,CL CALL HTOA B1: POP AX B2: ADD AL,30H &
75、#160; JL PRT ADD AL,07 PRT: MOV DL,AL MOV AH,2 INT 21H RET HTOA ENDP CSEG ENDS - - - - - - - - - - - - - - - - - - - - - -
76、- - - - - - - - - - - - - - - - - - - - - - - END START答案: 1000:0F2H B1 1000:0F4H 3 1000:0F6H B1 1000:0F8H 2 1000:0FAH B1 1000:
77、0FCH 1 1000:0FEH RETN 1000:100H 7. 寫出分配給下列中斷類型號(hào)在中斷向量表中的物理地址。 (1) INT 12H (2) INT 8答案:(1) 00048h (2) 00020h8. 試編寫程序,它輪流測(cè)試兩個(gè)設(shè)備的狀態(tài)寄存器,只要一個(gè)狀態(tài)寄存器的第0位為1,
78、則與其相應(yīng)的設(shè)備就輸入一個(gè)字符;如果其中任一狀態(tài)寄存器的第3位為1,則整個(gè)輸入過程結(jié)束。兩個(gè)狀態(tài)寄存器的端口地址分別是0024和0036,與其相應(yīng)的數(shù)據(jù)輸入寄存器的端口則為0026和0038,輸入字符分別存入首地址為BUFF1和BUFF2的存儲(chǔ)區(qū)中。答案: mov si, 0 mov di, 0test12: in al, 0024h test al, 08 jnz
79、exit in al,0036h test al, 08 jnz exitdev1: in al, 0024h test al, 01 jz dev2 in al, 0026h mov buffersi, al
80、60; inc sidev2: in al, 0036h test al, 01jz test12in al, 0038h mov buff2di,alinc dijmp test12exit: ret 給定(SP)=0100,(SS)=0300,(FLAGS)=0240,存儲(chǔ)單元的內(nèi)容為(00020)=0040,(00022)=0100,在段地址為0900及偏移地址為00A0的單元中有一條中斷指令I(lǐng)NT 8,試問執(zhí)行INT 8指令后,SP,SS,IP,F(xiàn)LAGS的內(nèi)容是什么?棧頂?shù)娜齻€(gè)字是什么? 答案: (SP) = 00FA(SS) = 0300(IP) = 0040(FLAGS) = 0040堆棧內(nèi)容: 00A1H 0900H 0240H 10. 編寫一個(gè)程序,接收從鍵盤輸入的10個(gè)十進(jìn)
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 轉(zhuǎn)讓旅館協(xié)議合同模板
- 夫妻房產(chǎn)份額約定協(xié)議書
- 油脂中轉(zhuǎn)協(xié)議書
- 車輛買賣鞋子合同協(xié)議
- 道路改造采購合同協(xié)議
- 轉(zhuǎn)讓水泥球磨機(jī)合同協(xié)議
- 專業(yè)咨詢與服務(wù)外包合同協(xié)議
- 退股違約金合同協(xié)議
- 行政制度新人培訓(xùn)大綱
- 安全技術(shù)服務(wù)合同書
- 2025年四川省成都市青羊區(qū)中考二診化學(xué)試題(原卷版+解析版)
- 浙江省寧波市2024學(xué)年第二學(xué)期高考與選考模擬考試化學(xué)試卷及答案(寧波二模)
- 【MOOC】大學(xué)英語聽說譯-河南理工大學(xué) 中國(guó)大學(xué)慕課MOOC答案
- 幼兒園班級(jí)幼兒圖書目錄清單(大中小班)
- (高清版)JGT 225-2020 預(yù)應(yīng)力混凝土用金屬波紋管
- 中外政治思想史-形成性測(cè)試四-國(guó)開(HB)-參考資料
- 15MW雙饋風(fēng)力發(fā)電機(jī)電氣原理圖
- 三軸水泥攪拌樁施工記錄表
- 《真的愛你》諧音歌詞
- 《視野大學(xué)英語U》PPT課件.ppt
- 三年級(jí)信息技術(shù)教案.第一單元doc
評(píng)論
0/150
提交評(píng)論