




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、精選優質文檔-傾情為你奉上第1章 緒論1. 計算機分那幾類?各有什么特點?答:傳統上分為三類:大型主機、小型機、微型機。大型主機一般為高性能的并行處理系統, 存儲容量大,事物處理能力強,可為眾多用戶提供服務。小型機具有一定的數據處理能力,提供一定用戶規模的信息服務,作為部門的信息服務中心。微型機一般指在辦公室或家庭的桌面或可移動的計算系統,體積小、價格低、具有工業化標準體系結構,兼容性好。2. 簡述微處理器、微計算機及微計算機系統三個術語的內涵。答:微處理器是微計算機系統的核心硬件部件,對系統的性能起決定性的影響。微計算機包括微處理器、存儲器、I/O接口電路及系統總線。微計算機系統是在微計算機
2、的基礎上配上相應的外部設備和各種軟件,形成一個完整的、獨立的信息處理系統。3. 80X86微處理器有幾代?各代的名稱是什么?答:從體系結構上可分為3代: ¬ 8080/8085:8位機。 8086/8088/80286:16位機。® 80386/80486:32位機。第2章 微處理器結構及微計算機的組成1 8086是多少位的微處理器?為什么?答:8086是16位的微處理器,其內部數據通路為16位,對外的數據總線也是16位。2 EU與BIU各自的功能是什么?如何協同工作?答:EU是執行部件,主要的功能是執行指令。BIU是總線接口部件,與片外存儲器及I/O接口電路
3、傳輸數據。EU經過BIU進行片外操作數的訪問,BIU為EU提供將要執行的指令。EU與BIU可分別獨立工作,當EU不需BIU提供服務時,BIU可進行填充指令隊列的操作。3 8086/8088與其前一代微處理器8085相比,內部操作有什么改進?答:8085為8位機,在執行指令過程中,取指令與執行執令都是串行的。8086/8088由于內部有EU和BIU兩個功能部件,可重疊操作,提高了處理器的性能。4 8086/8088微處理器內部有那些寄存器,它們的主要作用是什么?答:執行部件有8個16位寄存器,AX、BX、CX、DX、SP、BP、DI、SI。AX、BX、CX、DX一般作為通用數據寄存器。SP為堆棧
4、指針存器,BP、DI、SI在間接尋址時作為地址寄存器或變址寄存器。總線接口部件設有段寄存器CS、DS、SS、ES和指令指針寄存器IP。段寄存器存放段地址,與偏移地址共同形成存儲器的物理地址。IP的內容為下一條將要執行指令的偏移地址,與CS共同形成下一條指令的物理地址。5 8086對存儲器的管理為什么采用分段的辦法?答:8086是一個16位的結構,采用分段管理辦法可形成超過16位的存儲器物理地址,擴大對存儲器的尋址范圍 (1MB,20位地址)。若不用分段方法,16位地址只能尋址64KB空間。6在8086中,邏輯地址、偏移地址、物理地址分別指的是什么?具體說明。答:邏輯地址是在程序中對存儲器地址的
5、一種表示方法,由段地址和段內偏移地址兩部分組成,如1234H:0088H。偏移地址是指段內某個存儲單元相對該段首地址的差值,是一個16位的二進制代碼。物理地址是8086芯片引線送出的20位地址碼,用來指出一個特定的存儲單元。7給定一個存放數據的內存單元的偏移地址是20C0H,(DS)=0C00EH,求出該內存單元的物理地址。答:物理地址:320F8H。88086/8088為什么采用地址/數據引線復用技術?答:考慮到芯片成本,8086/8088采用40條引線的封裝結構。40條引線引出8086/8088的所有信號是不夠用的,采用地址/數據線復用引線方法可以解決這一矛盾,從邏輯角度,地址與數據信號不
6、會同時出現,二者可以分時復用同一組引線。9 8086與8088的主要區別是什么?答:8086有16條數據信號引線,8088只有8條;8086片內指令預取緩沖器深度為6字節,8088只有4字節。10 怎樣確定8086的最大或最小工作模式?最大、最小模式產生控制信號的方法有何不同答:引線MN/MX#的邏輯狀態決定8086的工作模式,MN/MX#引線接高電平,8086被設定為最小模式,MN/MX#引線接低電平,8086被設定為最大模式。最小模式下的控制信號由相關引線直接提供;最大模式下控制信號由8288專用芯片譯碼后提供,8288的輸入為8086的S2#S0#三條狀態信號引線提供。11 8086被復
7、位以后,有關寄存器的狀態是什么?微處理器從何處開始執行程序?答:標志寄存器、IP、DS、SS、ES和指令隊列置0,CS置全1。處理器從FFFFOH存儲單元取指令并開始執行。12 8086基本總線周期是如何組成的?各狀態中完成什么基本操作?答:基本總線周期由4個時鐘(CLK)周期組成,按時間順序定義為T1、T2、T3、T4。在T1期間8086發出訪問目的地的地址信號和地址鎖存選通信號ALE;T2期間發出讀寫命令信號RD#、WR#及其它相關信號;T3期間完成數據的訪問;T4結束該總線周期。13 結合8086最小模式下總線操作時序圖,說明ALE、M/IO#、DT/R#、RD#、READY信號的功能。
8、答:ALE為外部地址鎖存器的選通脈沖,在T1期間輸出;M/IO#確定總線操作的對象是存儲器還是I/O接口電路,在T1輸出;DT/R#為數據總線緩沖器的方向控制信號,在T1輸出;RD#為讀命令信號;在T2輸出;READY信號為存儲器或I/O接口“準備好”信號,在T3期間給出,否則8086要在T3與T4間插入Tw等待狀態。14 8086中斷分哪兩類?8086可處理多少種中斷?答:8086中斷可分為硬件中斷和軟件中斷兩類。8086可處理256種類型的中斷。15 8086可屏蔽中斷請求輸入線是什么?“可屏蔽”的涵義是什么?答:可屏蔽中斷請求輸入線為INTR;“可屏蔽”是指該中斷請求可經軟件清除標志寄存
9、器中IF位而被禁止。16 8086的中斷向量表如何組成?作用是什么?答:把內存0段中03FFH區域作為中斷向量表的專用存儲區。該區域存放256種中斷的處理程序的入口地址,每個入口地址占用4個存儲單元,分別存放入口的段地址與偏移地址。178086如何響應一個可屏蔽中斷請求?簡述響應過程。答:當8086收到INTR的高電平信號時,在當前指令執行完且IF=1的條件下,8086在兩個總線周期中分別發出INTA#有效信號;在第二個INTA#期間,8086收到中斷源發來的一字節中斷類型碼;8086完成保護現場的操作,CS、IP內容進入堆棧,請除IF、TF;8086將類型碼乘4后得到中斷向量表的入口地址,從
10、此地址開始讀取4字節的中斷處理程序的入口地址,8086從此地址開始執行程序,完成了INTR中斷請求的響應過程。18 什么是總線請求?8086在最小工作模式下,有關總線請求的信號引腳是什么?答:系統中若存在多個可控制總線的主模塊時,其中之一若要使用總線進行數據傳輸時,需向系統請求總線的控制權,這就是一個總線請求的過程。8086在最小工作模式下有關總線請求的信號引腳是HOLD與HLDA。19 簡述在最小工作模式下,8086如何響應一個總線請求?答:外部總線主控模塊經HOLD引線向8086發出總線請求信號;8086在每個時鐘周期的上升沿采樣HOLD引線;若發現HOLD=1則在當前總線周期結束時(T4
11、結束)發出總線請求的響應信號HLDA;8086使地址、數據及控制總線進入高阻狀態,讓出總線控制權,完成響應過程。20在基于8086的微計算機系統中,存儲器是如何組織的?是如何與處理器總線連接的?BHE#信號起什么作用?答:8086為16位處理器,可訪問1M字節的存儲器空間;1M字節的存儲器分為兩個512K字節的存儲體,命名為偶字節體和奇字節體;偶體的數據線連接D7D0,“體選”信號接地址線A0;奇體的數據線連接D15D8,“體選”信號接BHE#信號;BHE#信號有效時允許訪問奇體中的高字節存儲單元,實現8086的低字節訪問、高字節訪問及字訪問。21“80386是一個32位微處理器”,這句話的涵
12、義主要指的是什么?答:指80386的數據總線為32位,片內寄存器和主要功能部件均為32位,片內數據通路為32位。2280X86系列微處理器采取與先前的微處理器兼容的技術路線,有什么好處?有什么不足?答:好處是先前開發的軟件可以在新處理器組成的系統中運行,保護了軟件投資。缺點是處理器的結構發展受到兼容的約束,為了保持兼容性增加了硅資源的開銷,增加了結構的復雜性。2380386內部結構由哪幾部分組成?簡述各部分的作用。答:80386內部結構由執行部件(EU)、存儲器管理部件(MMU)和總線接口部件(BIU)三部分組成。EU包括指令預取部件、指令譯碼部件、控制部件、運算部件及保護檢測部件,主要功能是
13、執行指令。存儲器管理部件包括分段部件、分頁部件,實現對存儲器的分段分頁式的管理,將邏輯地址轉換成物理地址。總線接口部件作用是進行片外訪問:對存儲器及I/O接口的訪問、預取指令;另外的作用是進行總線及中斷請求的控制2480386有幾種存儲器管理模式?都是什么?答:80386有三種存儲器管理模式,分別是實地址方式、保護方式和虛擬8086方式25在不同的存儲器管理模式下,80386的段寄存器的作用是什么?答:在實地址方式下,段寄存器與8086相同,存放段基地址。在保護方式下,每個段寄存器還有一個對應的64位段描述符寄存器,段寄存器作為選擇器存放選擇符。在虛擬8086方式下,段寄存器的作用與8086相
14、同。26試說明虛擬存儲器的涵義,它與物理存儲器有什么區別?80386虛擬地址空間有多大?答:虛擬存儲器是程序員面對的一個巨大的、可尋址的存儲空間,這個空間是內存與外存聯合形成的,在操作系統的管理下,程序可象訪問內存一樣去訪問外存而獲得所需數據。物理存儲器是指機器實際擁有的內存儲器,不包括外存。80386的虛擬地址空間為64TB大。27試說明描述符的分類及各描述符的作用。答:描述符分為三類:存儲器段描述符、系統段描述符、門描述符。存儲器段描述符由8字節組成,它用來說明一個段中保存信息的情況。32位段基地址和20位段界限值定位了該段在存儲空間中的位置,其它有關位決定訪問權限及段的長度單位。系統段描
15、述符與存儲器段描述符大多數字節段相同,有關訪問權及屬性字節段有些不同。門描述符用來改變程序的特權級別、切換任務的執行以及指出中斷服務程序的入口。28描述符表的作用是什么?有幾類描述符表?答:描述符表順序存放一系列描述符,描述符表定義了在80386系統中被使用的全部存儲器段。有3類描述符表,即全局描述符表、局部描述符表及中斷描述符表。29 80386的分段部件是如何將邏輯地址變為線性地址的?答:分段部件根據段選擇符從全局描述符表或局部描述符表中取出對應的段描述符。把段描述符32位段基地址與邏輯地址中的32位偏移量相加就形成了線性地址。30 80386中如何把線性地址變為物理地址?答:分段部件形成
16、的32位線性地址中高10位作為尋址頁目錄表的偏移量,與控制寄存器CR3中頁目錄表基地址共同形成一個32位的地址指向頁表中的一個頁項,即為一個頁面描述符。該頁面項中高20位作為頁面基地址,線性地址的低12位為偏移量,相加后形成指向某一存儲單元的32位物理地址。若禁止分頁功能,線性地址就是物理地址。31 80386對中斷如何分類?答:80386把中斷分為外部中斷和內部中斷兩大類,外部中斷經NMI和INTR引線輸入請求信號。內部中斷也叫內部異常中斷,分為陷阱中斷、內部故障異常中斷、異常終止中斷。32 80386在保護方式下中斷描述符表與8086的中斷向量表有什么不同?答:8086工作在實地址方式,向
17、量表是在存儲器的0段中最低1024字節內存中。80386在保護方式下要通過中斷描述符表中的描述符訪問虛擬空間的中斷向量,中斷描述符表的位置不是固定的,要由IDTR寄存器實現在虛擬空間的定位。33 簡述80386在保護方式下的中斷處理過程。答:80386響應中斷后,接收由中斷源提供的類型碼并將其乘8,與IDTR寄存器中基地址相加,指出中斷描述符的位置,讀出中斷描述符,依其中的段選擇符及條件決定從兩個描述符表LDT或GDT中的一個得到段描述符,形成中斷服務程序入口所在存儲器單元的線性地址。第3章 8086指令系統及尋址方式1. 根據下列要求編寫一個匯編語言程序::(1) 代碼段的段名為COD_SG
18、(2) 數據段的段名為DAT_SG(3) 堆棧段的段名為STK_SG(4) 變量HIGH_DAT所包含的數據為95(5) 將變量HIGH_DAT裝入寄存器AH,BH和DL(6) 程序運行的入口地址為START答案:DAT_SG SEGEMNTHIGH_DATDB 95DAT_SG ENDS;STK_SG SEGMENT DW64 DUP(?)STK_SG ENDS;COD_SG SEGMENTMAINPROCFARASSUMECS: COD_SG, DS: DAT_SG, SS: STK_SGSTART:MOVAX, DAT-SGMOVDS, AXMOVAH, HIGH_DATMOVBH, A
19、HMOVDL, AHMOVAH, 4CHINT21HMAIN ENDPCOD_SG ENDS END START2. 指出下列程序中的錯誤:STAKSGSEGMENTDB100 DUP(?)STA_SGENDSDTSEGSEGMENTDATA1DB?DTSEGENDCDSEGSEGMENTMAINPROCFARSTART:MOVDS,DATSEGMOVAL,34HADDAL,4FHMOVDATA,ALSTARTENDPCDSEGENDSEND答案: 改正后:STAKSGSEGMENTDB100 DUP(?)STAKSGENDSDTSEGSEGMENTDATA1DB?DTSEGENDSCDSEG
20、 SEGMENTMAINPROCFARASSUME CS: CDSEG, DS: DTSEG, SS: STAKSGSTART:MOVAX, DTSEGMOVDS, AXMOVAL, 34HADDAL, 4FHMOVDATA1, ALMOVAH, 4CHINT21HMAINENDPCDSEGENDSEND S3. 將下列文件類型填入空格:(1) .obj (2) .exe (3) .crf (4) .asm (5) .lst (6) .map 編輯程序輸出的文件有_; 匯編程序輸出的文件有_; 連接程序輸出的文件有_。答案:編輯程序輸出文件: (4)匯編程序輸出文件: (1), (3), (5
21、) 連接程序輸出文件: (2), (6)4. 下列標號為什么是非法的?(1) GET.DATA (2) 1_NUM (3) TEST-DATA(4) RET(5) NEW ITEM答案:非法標號: (1)因為.只允許是標號的第一個字符(2)第一個字符不能為數字 (3)不允許出現-(4)不能是保留字,如助記符 (5)不能有空格5. 下面的數據項定義了多少個字節?DATA_1DB6 DUP(4 DUP(0FFH)答案:24字節6. 對于下面兩個數據段,偏移地址為10H和11H的兩個字節中的數據是一樣的嗎?為什么?DTSEGSEGMENT |DTSEGSEGMENTORG10H |ORG10HDAT
22、A1DB72H |DATA1DW7204HDB04H |DTSEGENDSDTSEGENDS |答案:不一樣. 分別是72H, 04H和04H, 72H. 存儲字時低8位存在低字節,高8位存在高字節.7. 下面的數據項設置了多少個字節?(1) ASC_DATADB1234(2) HEX_DATA DB1234H答案 (1) 設置了4個字節 (2) 設置了2個字節8. 執行下列指令后, AX寄存器中的內容是什么?TABLEDW10,20,30,40,50ENTRYDW3MOVBX,OFFSET TABLEADDBX,ENTRYMOVAX,BX答案: (AX)=409. 指出下列指令的錯誤:(1)
23、 MOVAH,BX(2) MOVSI,BX(3) MOVAX,SIDI(4) MOVAX,BXBP(5) MOVBX,ES:AX(6) MOVBYTE PTRBX,1000(7) MOVAX,OFFSET SI(8) MOVCS,AX(9) MOVDS,BP答案:(1) 源、目的字長不一致 (2) 源、目的不能同時為存貯器尋址方式 (3) 基址變址方式不能有 SI和DI的組合 (4) 基址變址方式不能有 BX和BP的組合 (5) 在8086尋址方式中,AX不能作為基址寄存器使用,而且源、目的不能同時為存貯器尋址方式 (6) 1000超出一個字節的表數范圍 (7) OFFSET只用于簡單變量,應
24、去掉 (8) CS不能作為目的寄存器 (9) 段地址不能直接送入數據段寄存器10. DATASEGMENTTABLE_ADDRDW1234HDATAENDSMOVBX, TABLE_ADDRLEABX, TABLE_ADDR 請寫出上述兩條指令執行后, BX寄存器中的內容。答案:MOVBX,TABLE_ADDR; 執行后(BX)=1234H LEABX,TABLE_ADDR; 執行后(BX)=OFFSET TABLE_ADDR11. 設(DS)=1B00H, (ES)=2B00H, 有關存儲器地址及其內容如右圖所示,請用兩條指令把X裝入AX寄存器。 1B00:2000H8000H 1B00:2
25、002H2B00H . . 2B00:8000HX 答案:LES BX, 2000HMOV AX, ES: BX12. 變量DATAX和DATAY定義如下: DATAXDW 0148H DW 2316H DATAYDW 0237H DW 4052H按下述要求寫出指令序列:(1) DATAX和DATAY中的兩個字數據相加, 和存放在DATAY和DATAY+2中。(2) DATAX和DATAY中的兩個雙字數據相加, 和存放在DATAY開始的字單元中。(3) DATAX和DATAY兩個字數據相乘(用MUL)。(4) DATAX和DATAY兩個雙字數據相乘(用MUL)。(5) DATAX除以23(用D
26、IV)。(6) DATAX雙字除以字DATAY(用DIV)。答案:(1)MOVAX, DATAXADDAX, DATAYMOVBX, DATAX+2ADDBX, DATAY+2MOVDATAY, AXMOVDATAY+2, BX(2)MOVAX, DATAXADDDATAY, AXMOVAX, DATAX+2ADCDATAY+2, AX(3)MOVAX, DATAXMULDATAYMOVDATAY,AXMOVDATAY+2,DX(4)MOVAX,WORD PTR DATAXMOVBX,WORD PTR DATAYMULBXMOVRESULT,AXMOVRESULT+2,DXMOVAX,WORD
27、 PTR DATAXMOVAX,WORD PTR DATAY+2MULBXADDRESULT+2,AXADCRESULT+4,DXMOVAX,WORD PTR DATAX+2MOVBX,WORD PTR DATAYMULBXADDRESULT+2,AXADCRESULT+4,DXMOVAX,WORD PTR DATAX+2MOVBX,WORD PTR DATAY+2MULBXADDRESULT+4,AXADCRESULT+6,DX (5)MOVAX, DATAXMOVBL, 23DIVBLMOVBL,AHMOVAH, 0MOVDATAY, AX;存放商MOVAL,BLMOVDATAY+2, A
28、X;存放余數(6)MOVAX, DATAXMOVDX, DATAX+2DIVDATAY MOVDATAY, AXMOVDATAY+2, DX13. 試分析下面的程序段完成什么操作?MOVCL,04SHLDX,CLMOVBL,AHSHLAX,CLSHRBL,CLORDL,BL答案: 將DX: AX中的雙字左移4位(乘16)14. 用其他指令完成和下列指令一樣的功能:(1) REP MOVSB(2) REP LODSB(3) REP STOSB(4) REP SCASB答案:(1) LOOP1:MOVAL,BYTE PTR SIMOVES:BYTE PTR DI, ALINCSI或:DECSIIN
29、CDI或:DECDILOOPLOOP1(2) LOOP1:MOVAL, BYTE PTR SIINCSI或:DECSILOOPLOOP1(3) LOOP1:MOVES:BYTE PTR DI, ALINCDI或:DECDILOOPLOOP1(4) LOOP1:CMPAL,ES:BYTE PTR DIJEEXITINCDI或:DECDILOOPLOOP1EXIT:15. 編寫程序段, 比較兩個5字節的字符串OLDS和NEWS, 如果OLDS字符串與NEWS不同, 則執行NEW_LESS, 否則順序執行程序。答案:LEASI, OLDSLEADI, NEWSMOVCX, 5CLDREPZCMPSB
30、JNZNEW_LESS16. 假定AX和BX中的內容為帶符號數, CX和DX中的內容為無符號數, 請用比較指令和條件轉移指令實現以下判斷:(1) 若DX的值超過CX的值,則轉去執行EXCEED(2) 若BX的值大于AX的值,則轉去執行EXCEED(3) CX中的值為0嗎? 若是則轉去執行ZERO(4) BX的值與AX的值相減, 會產生溢出嗎? 若溢出則轉OVERFLOW(5) 若BX的值小于AX的值,則轉去執行EQ_SMA(6) 若DX的值低于CX的值,則轉去執行EQ_SMA 答案:(1) CMPDX, CX JAEXCEED(2) CMPBX, AX JGEXCEED(3) CMPCX, 0
31、 JEZERO(4) SUBBX, AX JOOVERFLOW(5) CMPBX, AX JLEQ_SMA(6) CMPDX, CX JBEQ_SMA17. 假如在程序的括號中分別填入指令:(1) LOOP L20(2) LOOPNE L20(3) LOOPE L20試說明在三種情況下, 當程序執行完后, AX、BX、CX、DX四個寄存器的內容分別是什么?TITLEEXLOOP.COMCODESGSEGMENTASSUMECS:CODESG, DS:CODESG. SS:CODESGORG100HBEGIN:MOVAX,01MOVBX,02MOVDX,03MOVCX,04L20:INCAXAD
32、DBX,AXSHRDX,1( )RETCODESGENDSENDBEGIN答案: (1)(AX)= 5 (BX)= 16 (CX)= 0 (DX)= 0 (2)(AX)= 2 (BX)= 4 (CX)= 3 (DX)= 1 (3)(AX)= 3 (BX)= 7 (CX)= 2 (DX)= 018. 變量N1和N2均為2字節的非壓縮BCD數碼,請寫出計算N1與N2之差的指令序列。答案:MOVAX, 0MOVAL, N1+1SUBAL, N2+1AASMOVDL, ALMOVAL, N1SBBAL, N2AASMOVDH, AL19. 有兩個3位的ASCII數串ASC1和ASC2定義如下:ASC1
33、DB578ASC2DB694ASC3DB0000請編寫程序計算ASC3ASC1+ASC2。答案:CLCMOVCX, 3MOVBX, 2BACK:MOVAL, ASC1BXADCAL, ASC2BXAAAORASC3BX+1, ALDECBXLOOPBACKRCLCX, 1ORASC3BX, CL20. 假設(CS)=3000H, (DS)=4000H, (ES)=2000H, (SS)=5000H, (AX)=2060H, (BX)=3000H, (CX)=5, (DX)=0, (SI)=2060H, (DI)=3000H, (43000H)=0A006H, (23000H)=0B116H,
34、(33000H)=0F802H, (25060)=00B0H,.(SP)=0FFFEH, (CF)=1, (DF)=1, 請寫出下列各條指令單獨執行完后, 有關寄存器及存儲單元的內容, 若影響條件碼請給出條件碼SF、ZF、OF、CF的值。(1) SBBAX,BX(2) CMPAX,WORD PTRSI+0FA0H(3) MULBYTE PTRBX(4) AAM(5) DIVBH(6) SARAX,CL(7) XORAX,0FFE7H(8) REPSTOSB(9) JMPWORD PYRBX(10) XCHGAX,ES:BX+SI 答案:(1) (AX)=0F05FH, (SF)=1, (ZF)
35、=0, (OF)=0, (CF)=1(2) (SF)=1, (ZF)=0, (OF)=1, (CF)=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, 不影響標志位(9) (IP)=0A006H, 不影響標志位(10) (AX)=00B0H, (25060)=2060H, 不影響標志位第4章 匯編語言程序設計
36、基礎1. 試編寫一個匯編語言程序,要求對鍵盤輸入的小寫字母用大寫字母顯示出來。答案:abc:movah,1int21hcmpal,ajbstopcmpal,zjastopsubal,20hmovdl,almovah,2int21hjmpabcstop: ret2. 編寫程序,比較兩個字符串STRING1和STRING2所含字符是否完全相同,若相同則顯示“MATCH”,若不同則顯示“NO MATCH”。答案:datareasegmentstring1dbasfioastring2dbxcviyoafmess1dbMATCH,$mess2dbNO MATCH,$datarea endsprogna
37、m segmentmain proc farassume cs:prognam,ds:datareastart:pushdssubax,axpushaxmovax,datareamovds,axmoves,axbegin:movcx, string2-string1movbx, mess1-string2cmpbx,cxjnzdispnoleadx,addrleasi,string1leadi,string2repecmpsbjnedispnomovah,9leadx,mess1int21hretdispno:movah, 9leadx, mess2int21hretmainendpprogn
38、amendsendstart3. 試編寫程序,要求從鍵盤輸入3個16進制數,并根據對3個數的比較顯示如下信息: (1)如果3個數都不相等則顯示0; (2)如果3個數中有2個數相等則顯示2; (3)如果3個數都相等則顯示3。答案:data segmentarraydw3 dup(?)dataendscode segmentmain proc farassume cs:code,ds:datastart:pushdssubax,axpushaxmovax,datamovds,axmovcx,3leasi,arraybegin:pushcxmovcl,4movdi,4movdl, movah,02i
39、nt21hmovdx,0input:movah,01int21handal,0fhshldx,clordl,aldecdijneinputmovsi,dxaddsi,2popcxloopbegincomp:leasi,arraymovdl,0movax,simovbx,si+2cmpax,bxjnenext1adddl,2next1:cmpsi+4,axjnenext2adddx,2next2:cmpsi+4,bxjnenumadddl,2num:cmpdx,3jldispmovdl,3disp:movah,2adddl,30hint21hretmain endpcodeendsendstar
40、t4. 已知整數變量A和B,試編寫完成下述操作的程序: (1)若兩個數中有一個是奇數,則將該奇數存入A中,偶數存入B中; (2)若兩個數均為奇數,則兩數分別加1,并存回原變量; (3)若兩個數均為偶數,則兩變量不變。答案:dsegsegmentadw?bdw?dsegendscsegsegmentmainproc farassumecs:cseg,ds:dsegstart:pushdssubax,axpushaxmovax,dsegmovds,axbegin:movax,amovbx,bxorax,bxtestax,0001jzclasstestbx,0001jzexitxchgbx,amov
41、b,bxjmpexitclass:testbx,0001jzexitincbincaexit:retmainendpcsegendsendstart5. 把010010之間的30個數,存入首地址為GRAD的字數組中,GRAD+i表示學號為i+1的學生成績。另一個數組RANK是30個學生的名次表,其中RANK+I的內容是學號為i+1的學生的名次。試編寫程序,根據GRAD中的學生成績,將排列的名次填入RANK數組中(提示:一個學生的名次等于成績高于這個學生的人數加1)。答案:dsegsegmentgradedw30 dup(?)rankdw30 dup(?)dsegendscsegsegmentm
42、ainprocfarassumecs:cseg, ds:dseg, es:dsegstart:pushdssubax,axpushaxmovax,dsegmovds,axmoves,axbegin:movdi,0movcx,30loop1:pushcxmovcx,30movsi,0movax,gradedimovdx,0loop2:cmpgradesi,axjbego_onincdxgo_on:addsi,2looploop2popcxincdxmovrankdi,dxsdddi,2looploop1retmainendpcsegendsendstart6. 分析下列程序的功能,寫出堆棧最滿時
43、各單元的地址及內容。SSEGSEGMENT STACKAT1000H; 堆棧的段地址為1000HDW128 DUP(?) TOSLABELWORDSSEGENDS; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -DSEGSEGMENTDW32 DUP(?)DSEGENDS; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CSEGSEGME
44、NTMAINPROCFARASSUMECS:CSEG, DS:DSEG,SS:SSEGSTART:MOVAX,SSEGMOVSS,AXMOVAX,DSEGMOVDS,AXMOVAX,4321HCALLHTOARETN:MOVAH,4CHINT21HMAINENDP; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -HTOAPROCNEARCMPAX,15JLEB1PUSHAXPUSHBPMOVBP,SPMOVBX,BP+2ANDBX,0FHMOVBP+2,BXPOP
45、BPMOVCL,4SHRAX,CLCALLHTOAB1:POPAXB2:ADDAL,30HJLPRTADDAL,07PRT:MOVDL,ALMOVAH,2INT21HRETHTOAENDPCSEGENDS; ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -ENDSTART答案:1000:0F2HB11000:0F4H31000:0F6HB11000:0F8H21000:0FAHB11000:0FCH11000:0FEHRETN1000:100H7. 寫出分配給下
46、列中斷類型號在中斷向量表中的物理地址。 (1) INT 12H(2) INT 8答案:(1) 00048h (2) 00020h8. 試編寫程序,它輪流測試兩個設備的狀態寄存器,只要一個狀態寄存器的第0位為1,則與其相應的設備就輸入一個字符;如果其中任一狀態寄存器的第3位為1,則整個輸入過程結束。兩個狀態寄存器的端口地址分別是0024和0036,與其相應的數據輸入寄存器的端口則為0026和0038,輸入字符分別存入首地址為BUFF1和BUFF2的存儲區中。答案 mov si, 0mov di, 0test12:in al, 0024htest al, 08jnz exitin al,0036h
47、 test al, 08jnz exitdev1:in al, 0024h test al, 01jz dev2in al, 0026hmov buffersi, alinc sidev2:in al, 0036h test al, 01jz test12in al, 0038h mov buff2di,alinc dijmp test12exit:ret9. 給定(SP)=0100,(SS)=0300,(FLAGS)=0240,存儲單元的內容為(00020)=0040,(00022)=0100,在段地址為0900及偏移地址為00A0的單元中有一條中斷指令INT 8,試問執行INT 8指令后,
48、SP,SS,IP,FLAGS的內容是什么?棧頂的三個字是什么?答案:(SP) = 00FA(SS) = 0300(IP) = 0040(FLAGS) = 0040堆棧內容:00A1H0900H0240H10. 編寫一個程序,接收從鍵盤輸入的10個十進制數字,輸入回車符則停止輸入,然后將這些數字加密后(用XLAT指令變換)存入內存緩沖區BUFFER。加密表為; 輸入數字: 0,1,2,3,4,5,6,7,8,9 密碼數字: 7,5,9,1,3,6,8,0,2,4答案:scodedb7,5,9,1,3,6,8,0,2,4bufferdb10 dup(?); movsi,0movcx,10leabx
49、,scodeinput:movah,01int21hcmpal,0ahjzexitandal,0fhxlatmovbuffersi,alincsiloopinputexit:ret第5章 微計算機中處理器與I/O設備間數據傳輸控制方法1 試說明一般中斷系統的組成和功能。答:處理器內部應有中斷請求信號的檢測電路,輸出中斷響應信號,保存斷點的邏輯,轉向中斷處理程序的邏輯,中斷返回邏輯。系統中要有一中斷控制器,管理多個中斷源,提供處理機所需的中斷處理信息。系統中請求中斷處理的I/O接口電路要有提供中斷請求信號及接收中斷響應信號的邏輯。2 什么是中斷類型碼、中斷向量、中斷向量表?在基于8086/8088的微機系統中,中斷類型碼和中斷向量之間有什么關系?答:處理機可處理的每種中斷的編號為中斷類型碼。中斷向量是指中斷處理程序的入口地址,由處理機自動尋址。中斷向量表是存放所有類型中斷處理程序入口地址的一個默認的內存區域。在8086系統中,中斷類型碼乘4得到向量表的入口,從此處讀出4字節內容即為中斷向量。3 什么是硬件中斷和軟件中斷?在PC機中兩者的處理過程有什么不同?答:硬件中斷是通過中斷請求線輸入電信號來請求處理機進行中斷服務;軟件中斷
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 空分設備企業ESG實踐與創新戰略研究報告
- 碳碳復合材料企業縣域市場拓展與下沉戰略研究報告
- 力矩微電機企業數字化轉型與智慧升級戰略研究報告
- 廢煙支、煙絲回收機械企業縣域市場拓展與下沉戰略研究報告
- 礦產陽極銅企業數字化轉型與智慧升級戰略研究報告
- 電影放映機企業縣域市場拓展與下沉戰略研究報告
- 磷酸鐵鋰企業數字化轉型與智慧升級戰略研究報告
- 普通罐型發酵設備企業數字化轉型與智慧升級戰略研究報告
- 人美版一年級下冊《一起玩泥巴》教學設計
- 項目管理三種組織結構
- 食品供應鏈售后服務保障方案
- 《真希望你也喜歡自己》房琪-讀書分享
- GB/T 16895.24-2024低壓電氣裝置第7-710部分:特殊裝置或場所的要求醫療場所
- 低空經濟在環境保護領域的應用分析
- 三年級下第五單元課件
- 富血小板血漿(PRP)臨床實踐與病例分享課件
- 光伏工程施工組織設計
- 2024秋期國家開放大學《鋼結構(本)》一平臺在線形考(階段性學習測驗1至4)試題及答案
- 2024-2025學年全國中學生天文知識競賽考試題庫(含答案)
- 激光雕刻切割軟件LaserSoft操作說明書(多文檔版)
- 建筑幕墻安裝工程安全施工施工工藝技術
評論
0/150
提交評論