




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、微機原理復(fù)習(xí)題 微機原理及應(yīng)用習(xí)題庫與答案習(xí)題與練習(xí)題1第1章 緒論計算機分那幾類?各有什么特點?答:傳統(tǒng)上分為三類:大型主機、小型機、微型機。大型主機一般為高性能的并行處理系統(tǒng), 存儲容量大,事物處理能力強,可為眾多用戶提供服務(wù)。小型機具有一定的數(shù)據(jù)處理能力,提供一定用戶規(guī)模的信息服務(wù),作為部門的信息服務(wù)中心。微型機一般指在辦公室或家庭的桌面或可移動的計算系統(tǒng),體積小、價格低、具有工業(yè)化標(biāo)準(zhǔn)體系結(jié)構(gòu),兼容性好。簡述微處理器、微計算機及微計算機系統(tǒng)三個術(shù)語的內(nèi)涵。答:微處理器是微計算機系統(tǒng)的核心硬件部件,對系統(tǒng)的性能起決定性的影響。微計算機包括微處理器、存儲器、I/O接口電路及系統(tǒng)總
2、線。微計算機系統(tǒng)是在微計算機的基礎(chǔ)上配上相應(yīng)的外部設(shè)備和各種軟件,形成一個完整的、獨立的信息處理系統(tǒng)。80X86微處理器有幾代?各代的名稱是什么?答:從體系結(jié)構(gòu)上可分為3代: 8080/8085:8位機。 8086/8088/80286:16位機。® 80386/80486:32位機。第2章 微處理器結(jié)構(gòu)及微計算機的組成8086是多少位的微處理器?為什么?答:8086是16位的微處理器,其內(nèi)部數(shù)據(jù)通路為16位,對外的數(shù)據(jù)總線也是16位。EU與BIU各自的功能是什么?如何協(xié)同工作?答:EU是執(zhí)行部件,主要的功能是執(zhí)行指令。BIU是總線接口部件,與片外存儲器及I/O接口電路傳輸數(shù)據(jù)。EU
3、經(jīng)過BIU進行片外操作數(shù)的訪問,BIU為EU提供將要執(zhí)行的指令。EU與BIU可分別獨立工作,當(dāng)EU不需BIU提供服務(wù)時,BIU可進行填充指令隊列的操作。8086/8088與其前一代微處理器8085相比,內(nèi)部操作有什么改進?答:8085為8位機,在執(zhí)行指令過程中,取指令與執(zhí)行執(zhí)令都是串行的。8086/8088由于內(nèi)部有EU和BIU兩個功能部件,可重疊操作,提高了處理器的性能。8086/8088微處理器內(nèi)部有那些寄存器,它們的主要作用是什么?答:執(zhí)行部件有8個16位寄存器,AX、BX、CX、DX、SP、BP、DI、SI。AX、BX、CX、DX一般作為通用數(shù)據(jù)寄存器。SP為堆棧指針存器,BP、DI、
4、SI在間接尋址時作為地址寄存器或變址寄存器。總線接口部件設(shè)有段寄存器CS、DS、SS、ES和指令指針寄存器IP。段寄存器存放段地址,與偏移地址共同形成存儲器的物理地址。IP的內(nèi)容為下一條將要執(zhí)行指令的偏移地址,與CS共同形成下一條指令的物理地址。8086對存儲器的管理為什么采用分段的辦法?答:8086是一個16位的結(jié)構(gòu),采用分段管理辦法可形成超過16位的存儲器物理地址,擴大對存儲器的尋址范圍 (1MB,20位地址)。若不用分段方法,16位地址只能尋址64KB空間。6在8086中,邏輯地址、偏移地址、物理地址分別指的是什么?具體說明。答:邏輯地址是在程序中對存儲器地址的一種表示方法,由段地址和段
5、內(nèi)偏移地址兩部分組成,如1234H:0088H。偏移地址是指段內(nèi)某個存儲單元相對該段首地址的差值,是一個16位的二進制代碼。物理地址是8086芯片引線送出的20位地址碼,用來指出一個特定的存儲單元。7給定一個存放數(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的所有信號是不夠用的,采用地址/數(shù)據(jù)線復(fù)用引線方法可以解決這一矛盾,從邏輯角度,地址與數(shù)據(jù)信號不會同時出現(xiàn),二者可以分時復(fù)
6、用同一組引線。8086與8088的主要區(qū)別是什么?答:8086有16條數(shù)據(jù)信號引線,8088只有8條;8086片內(nèi)指令預(yù)取緩沖器深度為6字節(jié),8088只有4字節(jié)。怎樣確定8086的最大或最小工作模式?最大、最小模式產(chǎn)生控制信號的方法有何不同答:引線MN/MX#的邏輯狀態(tài)決定8086的工作模式,MN/MX#引線接高電平,8086被設(shè)定為最小模式,MN/MX#引線接低電平,8086被設(shè)定為最大模式。最小模式下的控制信號由相關(guān)引線直接提供;最大模式下控制信號由8288專用芯片譯碼后提供,8288的輸入為8086的S2#S0#三條狀態(tài)信號引線提供。8086被復(fù)位以后,有關(guān)寄存器的狀態(tài)是什么?微處理器從
7、何處開始執(zhí)行程序?答:標(biāo)志寄存器、IP、DS、SS、ES和指令隊列置0,CS置全1。處理器從FFFFOH存儲單元取指令并開始執(zhí)行。8086基本總線周期是如何組成的?各狀態(tài)中完成什么基本操作?答:基本總線周期由4個時鐘(CLK)周期組成,按時間順序定義為T1、T2、T3、T4。在T1期間8086發(fā)出訪問目的地的地址信號和地址鎖存選通信號ALE;T2期間發(fā)出讀寫命令信號RD#、WR#及其它相關(guān)信號;T3期間完成數(shù)據(jù)的訪問;T4結(jié)束該總線周期。結(jié)合8086最小模式下總線操作時序圖,說明ALE、M/IO#、DT/R#、RD#、READY信號的功能。答:ALE為外部地址鎖存器的選通脈沖,在T1期間輸出;
8、M/IO#確定總線操作的對象是存儲器還是I/O接口電路,在T1輸出;DT/R#為數(shù)據(jù)總線緩沖器的方向控制信號,在T1輸出;RD#為讀命令信號;在T2輸出;READY信號為存儲器或I/O接口“準(zhǔn)備好”信號,在T3期間給出,否則8086要在T3與T4間插入Tw等待狀態(tài)。8086中斷分哪兩類?8086可處理多少種中斷?答:8086中斷可分為硬件中斷和軟件中斷兩類。8086可處理256種類型的中斷。8086可屏蔽中斷請求輸入線是什么?“可屏蔽”的涵義是什么?答:可屏蔽中斷請求輸入線為INTR;“可屏蔽”是指該中斷請求可經(jīng)軟件清除標(biāo)志寄存器中IF位而被禁止。8086的中斷向量表如何組成?作用是什么?答:
9、把內(nèi)存0段中03FFH區(qū)域作為中斷向量表的專用存儲區(qū)。該區(qū)域存放256種中斷的處理程序的入口地址,每個入口地址占用4個存儲單元,分別存放入口的段地址與偏移地址。178086如何響應(yīng)一個可屏蔽中斷請求?簡述響應(yīng)過程。答:當(dāng)8086收到INTR的高電平信號時,在當(dāng)前指令執(zhí)行完且IF=1的條件下,8086在兩個總線周期中分別發(fā)出INTA#有效信號;在第二個INTA#期間,8086收到中斷源發(fā)來的一字節(jié)中斷類型碼;8086完成保護現(xiàn)場的操作,CS、IP內(nèi)容進入堆棧,請除IF、TF;8086將類型碼乘4后得到中斷向量表的入口地址,從此地址開始讀取4字節(jié)的中斷處理程序的入口地址,8086從此地址開始執(zhí)行程
10、序,完成了INTR中斷請求的響應(yīng)過程。什么是總線請求?8086在最小工作模式下,有關(guān)總線請求的信號引腳是什么?答:系統(tǒng)中若存在多個可控制總線的主模塊時,其中之一若要使用總線進行數(shù)據(jù)傳輸時,需向系統(tǒng)請求總線的控制權(quán),這就是一個總線請求的過程。8086在最小工作模式下有關(guān)總線請求的信號引腳是HOLD與HLDA。簡述在最小工作模式下,8086如何響應(yīng)一個總線請求?答:外部總線主控模塊經(jīng)HOLD引線向8086發(fā)出總線請求信號;8086在每個時鐘周期的上升沿采樣HOLD引線;若發(fā)現(xiàn)HOLD=1則在當(dāng)前總線周期結(jié)束時(T4結(jié)束)發(fā)出總線請求的響應(yīng)信號HLDA;8086使地址、數(shù)據(jù)及控制總線進入高阻狀態(tài),讓
11、出總線控制權(quán),完成響應(yīng)過程。20在基于8086的微計算機系統(tǒng)中,存儲器是如何組織的?是如何與處理器總線連接的?BHE#信號起什么作用?答:8086為16位處理器,可訪問1M字節(jié)的存儲器空間;1M字節(jié)的存儲器分為兩個512K字節(jié)的存儲體,命名為偶字節(jié)體和奇字節(jié)體;偶體的數(shù)據(jù)線連接D7D0,“體選”信號接地址線A0;奇體的數(shù)據(jù)線連接D15D8,“體選”信號接BHE#信號;BHE#信號有效時允許訪問奇體中的高字節(jié)存儲單元,實現(xiàn)8086的低字節(jié)訪問、高字節(jié)訪問及字訪問。21“80386是一個32位微處理器”,這句話的涵義主要指的是什么?答:指80386的數(shù)據(jù)總線為32位,片內(nèi)寄存器和主要功能部件均為3
12、2位,片內(nèi)數(shù)據(jù)通路為32位。2280X86系列微處理器采取與先前的微處理器兼容的技術(shù)路線,有什么好處?有什么不足?答:好處是先前開發(fā)的軟件可以在新處理器組成的系統(tǒng)中運行,保護了軟件投資。缺點是處理器的結(jié)構(gòu)發(fā)展受到兼容的約束,為了保持兼容性增加了硅資源的開銷,增加了結(jié)構(gòu)的復(fù)雜性。2380386內(nèi)部結(jié)構(gòu)由哪幾部分組成?簡述各部分的作用。答:80386內(nèi)部結(jié)構(gòu)由執(zhí)行部件(EU)、存儲器管理部件(MMU)和總線接口部件(BIU)三部分組成。EU包括指令預(yù)取部件、指令譯碼部件、控制部件、運算部件及保護檢測部件,主要功能是執(zhí)行指令。存儲器管理部件包括分段部件、分頁部件,實現(xiàn)對存儲器的分段分頁式的管理,將邏
13、輯地址轉(zhuǎn)換成物理地址。總線接口部件作用是進行片外訪問:對存儲器及I/O接口的訪問、預(yù)取指令;另外的作用是進行總線及中斷請求的控制2480386有幾種存儲器管理模式?都是什么?答:80386有三種存儲器管理模式,分別是實地址方式、保護方式和虛擬8086方式25在不同的存儲器管理模式下,80386的段寄存器的作用是什么?答:在實地址方式下,段寄存器與8086相同,存放段基地址。在保護方式下,每個段寄存器還有一個對應(yīng)的64位段描述符寄存器,段寄存器作為選擇器存放選擇符。在虛擬8086方式下,段寄存器的作用與8086相同。26試說明虛擬存儲器的涵義,它與物理存儲器有什么區(qū)別?80386虛擬地址空間有多
14、大?答:虛擬存儲器是程序員面對的一個巨大的、可尋址的存儲空間,這個空間是內(nèi)存與外存聯(lián)合形成的,在操作系統(tǒng)的管理下,程序可象訪問內(nèi)存一樣去訪問外存而獲得所需數(shù)據(jù)。物理存儲器是指機器實際擁有的內(nèi)存儲器,不包括外存。80386的虛擬地址空間為64TB大。27試說明描述符的分類及各描述符的作用。答:描述符分為三類:存儲器段描述符、系統(tǒng)段描述符、門描述符。存儲器段描述符由8字節(jié)組成,它用來說明一個段中保存信息的情況。32位段基地址和20位段界限值定位了該段在存儲空間中的位置,其它有關(guān)位決定訪問權(quán)限及段的長度單位。系統(tǒng)段描述符與存儲器段描述符大多數(shù)字節(jié)段相同,有關(guān)訪問權(quán)及屬性字節(jié)段有些不同。門描述符用來改
15、變程序的特權(quán)級別、切換任務(wù)的執(zhí)行以及指出中斷服務(wù)程序的入口。28描述符表的作用是什么?有幾類描述符表?答:描述符表順序存放一系列描述符,描述符表定義了在80386系統(tǒng)中被使用的全部存儲器段。有3類描述符表,即全局描述符表、局部描述符表及中斷描述符表。80386的分段部件是如何將邏輯地址變?yōu)榫€性地址的?答:分段部件根據(jù)段選擇符從全局描述符表或局部描述符表中取出對應(yīng)的段描述符。把段描述符32位段基地址與邏輯地址中的32位偏移量相加就形成了線性地址。80386中如何把線性地址變?yōu)槲锢淼刂罚看穑悍侄尾考纬傻?2位線性地址中高10位作為尋址頁目錄表的偏移量,與控制寄存器CR3中頁目錄表基地址共同形成一
16、個32位的地址指向頁表中的一個頁項,即為一個頁面描述符。該頁面項中高20位作為頁面基地址,線性地址的低12位為偏移量,相加后形成指向某一存儲單元的32位物理地址。若禁止分頁功能,線性地址就是物理地址。80386對中斷如何分類?答:80386把中斷分為外部中斷和內(nèi)部中斷兩大類,外部中斷經(jīng)NMI和INTR引線輸入請求信號。內(nèi)部中斷也叫內(nèi)部異常中斷,分為陷阱中斷、內(nèi)部故障異常中斷、異常終止中斷。80386在保護方式下中斷描述符表與8086的中斷向量表有什么不同?答:8086工作在實地址方式,向量表是在存儲器的0段中最低1024字節(jié)內(nèi)存中。80386在保護方式下要通過中斷描述符表中的描述符訪問虛擬空間
17、的中斷向量,中斷描述符表的位置不是固定的,要由IDTR寄存器實現(xiàn)在虛擬空間的定位。簡述80386在保護方式下的中斷處理過程。答:80386響應(yīng)中斷后,接收由中斷源提供的類型碼并將其乘8,與IDTR寄存器中基地址相加,指出中斷描述符的位置,讀出中斷描述符,依其中的段選擇符及條件決定從兩個描述符表LDT或GDT中的一個得到段描述符,形成中斷服務(wù)程序入口所在存儲器單元的線性地址。習(xí)題與練習(xí)題2第3章 8086指令系統(tǒng)及尋址方式1. 根據(jù)下列要求編寫一個匯編語言程序::代碼段的段名為COD_SG數(shù)據(jù)段的段名為DAT_SG堆棧段的段名為STK_SG變量HIGH_DAT所包含的數(shù)據(jù)為95將變量
18、HIGH_DAT裝入寄存器AH,BH和DL程序運行的入口地址為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. 指出下列程序中的錯誤: 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)號為什么是非法的? (1) GET.DATA (2) 1_NUM (3) TEST-DATA (4) RET (5) NEW ITEM答案:非法標(biāo)號: (1)因為.只允許是標(biāo)號的第一個字符(2)第一個字符不能為數(shù)字 (3)不允許
24、出現(xiàn)-(4)不能是保留字,如助記符 (5)不能有空格5. 下面的數(shù)據(jù)項定義了多少個字節(jié)? DATA_1 DB 6 DUP(4 DUP(0FFH)答案: 24字節(jié) 6. 對于下面兩個數(shù)據(jù)段,偏移地址為10H和11H的兩個字節(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. 存儲字時低8位存在低字節(jié),高8位存在高字節(jié).7. 下面的數(shù)據(jù)項設(shè)置了多少個字節(jié)? (1) ASC_DATA DB 1234 (2) HEX_DATA DB 1234H答案: (1) 設(shè)置了4個字節(jié) (2) 設(shè)置了2個字節(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. 指出下列指令的錯誤:(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) 源、目的字長不一致 (2) 源、目的不能同時為存貯器尋址方式 (3) 基址變址方式不能有 SI和DI的組合 (4) 基址變址方式不能有 BX和BP的組合 (5) 在8086尋址方式中,AX不能作為基址寄存器使用,而且源、目的不能同時為存
30、貯器尋址方式 (6) 1000超出一個字節(jié)的表數(shù)范圍 (7) OFFSET只用于簡單變量,應(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 請寫出上述兩條指令執(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)存儲器地址及其內(nèi)容如右圖 所示,請用兩條指令把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中的兩個字?jǐn)?shù)據(jù)相加, 和存放在DATAY和DATAY+2中。DATAX和DATAY中的兩個雙字?jǐn)?shù)據(jù)相加,
35、 和存放在DATAY開始的字單元中。DATAX和DATAY兩個字?jǐn)?shù)據(jù)相乘(用MUL)。DATAX和DATAY兩個雙字?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:編寫程序段, 比較兩個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)容為帶符號數(shù), CX和DX中的內(nèi)容為無符號數(shù), 請用比較指令和條件轉(zhuǎn)移指令實現(xiàn)以下判斷:若DX的值超過CX的值,則轉(zhuǎn)去執(zhí)行EXCEED若BX的值大于AX的值,則轉(zhuǎn)去執(zhí)行EXCEEDCX中的值為0嗎? 若是則轉(zhuǎn)去執(zhí)行ZEROBX的值與AX的值相減, 會產(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. 假如在程序的括號中分別填入指令:
45、0;(1) LOOP L20 (2) LOOPNE L20 (3) LOOPE L20 試說明在三種情況下, 當(dāng)程序執(zhí)行完后, AX、BX、CX、DX四個寄存器的內(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ù)碼,請寫出計算N1與N2之差的指令序列。答案:MOV AX, 0MOV AL, N1+1S
49、UB AL, N2+1AASMOV DL, ALMOV AL, N1SBB AL, N2AASMOV DH, AL19. 有兩個3位的ASCII數(shù)串ASC1和ASC2定義如下: ASC1 DB 578 ASC2 DB 694 ASC3 DB 0000 請編寫程序計算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, 請寫出下列各條指令單獨執(zhí)行完后, 有關(guān)寄存器及存儲單元的內(nèi)容, 若影響條件碼請給出條件碼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è)計基礎(chǔ)1. 試編寫一個匯編語言程序,要求對鍵盤輸入的小寫字母用大寫字母顯示出來
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、寫程序,比較兩個字符串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個16進制數(shù),并根據(jù)對3個數(shù)的比較顯示如下信息: (1)如果3個數(shù)都不相等則顯示0; (2)如果3個數(shù)中有2個數(shù)相等則顯示2; (3)如果3個數(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)若兩個數(shù)中有一個是奇數(shù),則
63、將該奇數(shù)存入A中,偶數(shù)存入B中; (2)若兩個數(shù)均為奇數(shù),則兩數(shù)分別加1,并存回原變量; (3)若兩個數(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個數(shù),存入首地址為GRAD的字?jǐn)?shù)組中,GRAD+i表示學(xué)號為i+1的學(xué)生成績。另一個數(shù)組RANK是30個學(xué)生的名次表,其中RANK+I的內(nèi)容是學(xué)號為i+1的學(xué)生的名次。試編寫程序,根據(jù)GRAD中的學(xué)生成績,將排列的名次填入RANK數(shù)組中(提示:一個學(xué)生的名次等于成績高于這個學(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. 分析下列程序的功能,寫出堆棧最滿時各單元的地址及內(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. 寫出分配給下列中斷類型號在中斷向量表中的物理地址。 (1) INT 12H (2) INT 8答案:(1) 00048h (2) 00020h8. 試編寫程序,它輪流測試兩個設(shè)備的狀態(tài)寄存器,只要一個狀態(tài)寄存器的第0位為1,
78、則與其相應(yīng)的設(shè)備就輸入一個字符;如果其中任一狀態(tài)寄存器的第3位為1,則整個輸入過程結(jié)束。兩個狀態(tài)寄存器的端口地址分別是0024和0036,與其相應(yīng)的數(shù)據(jù)輸入寄存器的端口則為0026和0038,輸入字符分別存入首地址為BUFF1和BUFF2的存儲區(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,存儲單元的內(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ù)娜齻€字是什么? 答案: (SP) = 00FA(SS) = 0300(IP) = 0040(FLAGS) = 0040堆棧內(nèi)容: 00A1H 0900H 0240H 10. 編寫一個程序,接收從鍵盤輸入的10個十進
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 客服話務(wù)知識培訓(xùn)課件
- 供貨合同補充協(xié)議
- 交通運輸行業(yè)智能化交通規(guī)劃與建設(shè)方案
- 湖北省武漢市2024-2025學(xué)年高一上學(xué)期1月期末地理試題 含解析
- 云南省昭通市昭通一中教研聯(lián)盟2024-2025學(xué)年高一上學(xué)期期中質(zhì)量檢測生物學(xué)B試題(含答案)
- 吉林省長春市榆樹市2024-2025學(xué)年七年級上學(xué)期期末生物學(xué)試題(含答案)
- 小學(xué)低年級數(shù)學(xué)故事讀后感
- 會議記錄表格:會議記錄臺賬分類
- 季度采購管理計劃與工作推進安排
- 辦公用品采購與供應(yīng)鏈管理協(xié)議
- 化學(xué)化工專業(yè)英語1課件
- 裝配式建筑裝配率計算評分表
- 1.1北京市基本概況與主要文旅資源《地方導(dǎo)游基礎(chǔ)知識》(第四版)PPT
- 綜述的寫作方法與技巧課件
- 零售藥店實施GSP情況的內(nèi)審報告
- 機械設(shè)計基礎(chǔ)網(wǎng)考題庫答案 吉林大學(xué)
- 新蘇教版科學(xué)六年級下冊全冊教案(含反思)
- 觸電事故應(yīng)急處置卡
- 國際貿(mào)易運輸方式課件
- 南陽理工學(xué)院畢業(yè)論文格式規(guī)范
- SolidWorks入門教程(很全面)PPT課件
評論
0/150
提交評論