微機(jī)原理復(fù)習(xí)題_第1頁
微機(jī)原理復(fù)習(xí)題_第2頁
微機(jī)原理復(fù)習(xí)題_第3頁
微機(jī)原理復(fù)習(xí)題_第4頁
微機(jī)原理復(fù)習(xí)題_第5頁
已閱讀5頁,還剩46頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論