微機原理及應用習題庫與答案--參考_第1頁
微機原理及應用習題庫與答案--參考_第2頁
微機原理及應用習題庫與答案--參考_第3頁
微機原理及應用習題庫與答案--參考_第4頁
微機原理及應用習題庫與答案--參考_第5頁
已閱讀5頁,還剩29頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、第 1 章 緒論1. 運算機分那幾類?各有什么特點?答:傳統上分為三類:大型主機、小型機、微型機;大型主機一般為高性能的并行處理系統,儲備容量大, 事物處理才能強, 可為眾多用戶供應服務; 小型機具有肯定的數據處理才能,供應肯定用戶規(guī)模的信息服務, 作為部門的信息服務中心; 微型機一般指在辦公室或家庭的桌面或可移動的運算系統,體積小、價格低、具有工業(yè)化標準體系結構,兼容性好;2. 簡述微處理器、微運算機及微運算機系統三個術語的內涵;答:微處理器是微運算機系統的核心硬件部件,對系統的性能起打算性的影響;微運算機包括微處理器、儲備器、 i/o 接口電路及系統總線;微運算機系統是在微運算機的基礎上配

2、上相應的外部設備和各種軟件,形成一個完整的、獨立的信息處理系統;3. 80x86 微處理器有幾代?各代的名稱是什么?答:從體系結構上可分為3 代:8080/8085:8 位機;8086/8088/80286:16 位機;80386/80486:32 位機;第 2 章 微處理器結構及微運算機的組成18086 是多少位的微處理器?為什么?答: 8086 是 16 位的微處理器,其內部數據通路為16 位,對外的數據總線也是16 位;2eu 與 biu 各自的功能是什么?如何協同工作?答: eu 是執(zhí)行部件,主要的功能是執(zhí)行指令; biu 是總線接口部件,與片外儲備器及 i/o 接口電路傳輸數據; e

3、u 經過 biu 進行片外操作數的拜訪, biu 為 eu 供應將要執(zhí)行的指令; eu 與 biu 可分別獨立工作,當 eu 不需 biu 供應服務時, biu 可進行填充指令隊列的操作;38086/8088 與其前一代微處理器8085 相比,內部操作有什么改進?答:8085 為 8 位機,在執(zhí)行指令過程中 ,取指令與執(zhí)行執(zhí)令都是串行的;8086/8088 由于內部有 eu 和biu 兩個功能部件,可重疊操作,提高了處理器的性能;48086/8088 微處理器內部有那些寄存器,它們的主要作用是什么?答:執(zhí)行部件有8 個 16 位寄存器, ax 、bx 、cx 、dx 、sp、bp、di 、si

4、;ax 、bx 、cx、dx 一般作為通用數據寄存器;sp為堆棧指針存器, bp、di 、si 在間接尋址時作為地址寄存器或變址寄存 器;總線接口部件設有段寄存器cs、ds、ss、es 和指令指針寄存器ip;段寄存器存放段地址,與偏移地址共同形成儲備器的物理地址;ip 的內容為下一條將要執(zhí)行指令的偏移地址,與 cs 共同形成下一條指令的物理地址;58086 對儲備器的治理為什么采納分段的方法?答: 8086 是一個 16 位的結構,采納分段治理方法可形成超過16 位的儲備器物理地址,擴大對儲備器的尋址范疇1mb ,20 位地址 ;如不用分段方法, 16 位地址只能尋址64kb 空間;6在 80

5、86 中,規(guī)律地址、偏移地址、物理地址分別指的是什么?詳細說明;答:規(guī)律地址是在程序中對儲備器地址的一種表示方法,由段地址和段內偏移地址兩部分組成,如1234h:0088h;偏移地址是指段內某個儲備單元相對該段首地址的差值,是一個 16 位的二進制代碼;物理地址是 8086 芯片引線送出的20 位地址碼,用來指出一個特定的儲備單元; 7給定一個存放數據的內存單元的偏移地址是20c0h,(ds)=0c00eh,求出該內存單元的物理地址;答:物理地址: 320f8h;88086/8088 為什么采納地址 /數據引線復用技術?答:考慮到芯片成本, 8086/8088 采納 40 條引線的封裝結構;

6、40 條引線引出 8086/8088 的全部信號是不夠用的,采納地址/數據線復用引線方法可以解決這一沖突,從規(guī)律角度,地址與數據信號不會同時顯現,二者可以分時復用同一組引線;98086 與 8088 的主要區(qū)分是什么?答: 8086 有 16 條數據信號引線, 8088 只有 8 條; 8086 片內指令預取緩沖器深度為6 字節(jié), 8088 只1有 4 字節(jié);10怎樣確定 8086 的最大或最小工作模式?最大、最小模式產生掌握信號的方法有何不同答:引線 mn/mx# 的規(guī)律狀態(tài)打算8086 的工作模式, mn/mx# 引線接高電平, 8086 被設定為最小模式, mn/mx# 引線接低電平,

7、8086 被設定為最大模式;最小模式下的掌握信號由相關引線直接供應;最大模式下掌握信號由8288 專用芯片譯碼后供應, 8288的輸入為 8086 的 s2#s0#三條狀態(tài)信號引線供應;118086 被復位以后,有關寄存器的狀態(tài)是什么?微處理器從何處開頭執(zhí)行程序?答:標志寄存器、 ip、ds、ss、es 和指令隊列置 0,cs 置全 1;處理器從 ffffoh 儲備單元取指令并開頭執(zhí)行;128086 基本總線周期是如何組成的?各狀態(tài)中完成什么基本操作?答:基本總線周期由 4 個時鐘 clk 周期組成, 按時間次序定義為 t1、t2、t3、t4;在 t1 期間 8086 發(fā)出拜訪目的地的地址信號

8、和地址鎖存選通信號 ale ;t2 期間發(fā)出讀寫命令信號 rd#、wr#及其它相關信號; t3 期間完成數據的拜訪; t4 終止該總線周期;13結合 8086 最小模式下總線操作時序圖,說明ale 、m/io# 、dt/r#、rd#、ready 信號的功能;答: ale 為外部地址鎖存器的選通脈沖,在t1 期間輸出; m/io# 確定總線操作的對象是儲備器仍是i/o 接口電路,在 t1 輸出; dt/r# 為數據總線緩沖器的方向掌握信號,在 t1 輸出; rd#為讀命令信號;在 t2 輸出; ready 信號為儲備器或 i/o 接口“預備好”信號,在 t3 期間給出,否就 8086 要在 t3

9、 與 t4 間插入 tw 等待狀態(tài);148086 中斷分哪兩類? 8086 可處理多少種中斷?答: 8086 中斷可分為硬件中斷和軟件中斷兩類;8086 可處理 256 種類型的中斷; 158086 可屏蔽中斷懇求輸入線是什么?“可屏蔽”的涵義是什么?答:可屏蔽中斷懇求輸入線為intr ;“可屏蔽”是指該中斷懇求可經軟件清除標志寄存器中if 位而被禁止;168086 的中斷向量表如何組成?作用是什么?答:把內存 0 段中 03ffh 區(qū)域作為中斷向量表的專用儲備區(qū);該區(qū)域存放 256 種中斷的處理程序的入口地址,每個入口地址占用4 個儲備單元,分別存放入口的段地址與偏移地址;178086 如何

10、響應一個可屏蔽中斷懇求?簡述響應過程;答:當 8086 收到 intr 的高電平信號時,在當前指令執(zhí)行完且if=1 的條件下, 8086 在兩個總線周期中分別發(fā)出inta# 有效信號;在其次個inta# 期間, 8086 收到中斷源發(fā)來的一字節(jié)中斷類型碼;8086 完成愛護現場的操作, cs、ip 內容進入堆棧,請除 if、tf;8086 將類型碼乘 4 后得到中斷向量表的入口地址,從今地址開頭讀取 4 字節(jié)的中斷處理程序的入口地址, 8086 從今地址開頭執(zhí)行程序,完成了 intr 中斷懇求的響應過程;18什么是總線懇求? 8086 在最小工作模式下,有關總線懇求的信號引腳是什么?答:系統中

11、如存在多個可掌握總線的主模塊時,其中之一如要使用總線進行數據傳輸時,需向系統懇求總線的掌握權,這就是一個總線懇求的過程;8086 在最小工作模式下有關總線懇求的信號引腳是hold 與 hlda ;19簡述在最小工作模式下,8086 如何響應一個總線懇求?答:外部總線主控模塊經hold 引線向 8086 發(fā)出總線懇求信號; 8086 在每個時鐘周期的上升沿采 樣 hold 引線;如發(fā)覺 hold=1 就在當前總線周期終止時t4 終止發(fā)出總線懇求的響應信號hlda ;8086 使地址、數據及掌握總線進入高阻狀態(tài),讓出總線掌握權,完成響應過程;20在基于 8086 的微運算機系統中,儲備器是如何組織

12、的?是如何與處理器總線連接的?bhe# 信號起什么作用?答:8086 為 16 位處理器, 可拜訪 1m 字節(jié)的儲備器空間; 1m 字節(jié)的儲備器分為兩個512k 字節(jié)的儲備體,命名為偶字節(jié)體和奇字節(jié)體;偶體的數據線連接d7d0,“體選”信號接地址線a0;奇體的2數據線連接 d15d8,“體選”信號接bhe#信號; bhe#信號有效時答應拜訪奇體中的高字節(jié)儲備單元,實現 8086 的低字節(jié)拜訪、高字節(jié)拜訪及字拜訪;21“ 80386 是一個 32 位微處理器”,這句話的涵義主要指的是什么?答:指 80386 的數據總線為 32 位,片內寄存器和主要功能部件均為32 位,片內數據通路為32 位;2

13、280x86 系列微處理器實行與從前的微處理器兼容的技術路線,有什么好處?有什么不足?答:好處是從前開發(fā)的軟件可以在新處理器組成的系統中運行,愛護了軟件投資; 缺點是處理器的結構進展受到兼容的約束,為了保持兼容性增加了硅資源的開銷,增加了結構的復雜性;2380386 內部結構由哪幾部分組成?簡述各部分的作用;答: 80386 內部結構由執(zhí)行部件 eu 、儲備器治理部件 mmu 和總線接口部件 biu 三部分組成; eu包括指令預取部件、指令譯碼部件、掌握部件、運算部件及愛護檢測部件,主要功能是執(zhí)行指令;存 儲器治理部件包括分段部件、分頁部件, 實現對儲備器的分段分頁式的治理,將規(guī)律地址轉換成物

14、理地址;總線接口部件作用是進行片外拜訪:對儲備器及i/o 接口的拜訪、預取指令;另外的作用是進行總線及中斷懇求的掌握2480386 有幾種儲備器治理模式?都是什么?答: 80386 有三種儲備器治理模式,分別是實地址方式、愛護方式和虛擬8086 方式 25在不同的儲備器治理模式下,80386 的段寄存器的作用是什么?答:在實地址方式下,段寄存器與8086 相同,存放段基地址;在愛護方式下,每個段寄存器仍有一個對應的 64 位段描述符寄存器, 段寄存器作為挑選器存放挑選符;在虛擬 8086 方式下, 段寄存器的作用與 8086 相同;26試說明虛擬儲備器的涵義,它與物理儲備器有什么區(qū)分?8038

15、6 虛擬地址空間有多大?答:虛擬儲備器是程序員面對的一個龐大的、可尋址的儲備空間, 這個空間是內存與外存聯合形成的,在操作系統的治理下, 程序可象拜訪內存一樣去拜訪外存而獲得所需數據;物理儲備器是指機器實際擁有的內儲備器,不包括外存;80386 的虛擬地址空間為64tb 大; 27試說明描述符的分類及各描述符的作用;答:描述符分為三類:儲備器段描述符、系統段描述符、門描述符;儲備器段描述符由8 字節(jié)組成,它用來說明一個段中儲存信息的情形;32 位段基地址和 20 位段界限值定位了該段在儲備空間中的位置,其它有關位打算拜訪權限及段的長度單位;系統段描述符與儲備器段描述符大多數字節(jié)段相同, 有關拜

16、訪權及屬性字節(jié)段有些不同;門描述符用來轉變程序的特權級別、切換任務的執(zhí)行以及指出中斷服務程序的入口;28描述符表的作用是什么?有幾類描述符表?答:描述符表次序存放一系列描述符,描述符表定義了在80386 系統中被使用的全部儲備器段;有3類描述符表,即全局描述符表、局部描述符表及中斷描述符表;2980386 的分段部件是如何將規(guī)律地址變?yōu)榫€性地址的?答:分段部件依據段挑選符從全局描述符表或局部描述符表中取出對應的段描述符;把段描述符32位段基地址與規(guī)律地址中的32 位偏移量相加就形成了線性地址; 3080386 中如何把線性地址變?yōu)槲锢淼刂??答:分段部件形成?2 位線性地址中高10 位作為尋址

17、頁目錄表的偏移量,與掌握寄存器cr3 中頁目錄表基地址共同形成一個32 位的地址指向頁表中的一個頁項,即為一個頁面描述符;該頁面項中 高 20 位作為頁面基地址,線性地址的低12 位為偏移量,相加后形成指向某一儲備單元的32 位物理地址;如禁止分頁功能,線性地址就是物理地址;3180386 對中斷如何分類?答: 80386 把中斷分為外部中斷和內部中斷兩大類,外部中斷經nmi和 intr 引線輸入懇求信號;內部中斷也叫內部反常中斷,分為陷阱中斷、內部故障反常中斷、反常終止中斷;3280386 在愛護方式下中斷描述符表與8086 的中斷向量表有什么不同?答: 8086 工作在實地址方式,向量表是

18、在儲備器的0 段中最低 1024 字節(jié)內存中; 80386 在愛護方式3下要通過中斷描述符表中的描述符拜訪虛擬空間的中斷向量,中斷描述符表的位置不是固定的,要由idtr 寄存器實現在虛擬空間的定位;33簡述 80386 在愛護方式下的中斷處理過程;答: 80386 響應中斷后,接收由中斷源供應的類型碼并將其乘8,與 idtr 寄存器中基地址相加,指出中斷描述符的位置,讀出中斷描述符,依其中的段挑選符及條件打算從兩個描述符表ldt 或 gdt中的一個得到段描述符,形成中斷服務程序入口所在儲備器單元的線性地址;第 3 章 8086 指令系統及尋址方式1. 依據以下要求編寫一個匯編語言程序::(1)

19、 ) 代碼段的段名為cod_sg(2) ) 數據段的段名為dat_sg(3) ) 堆棧段的段名為stk_sg(4) ) 變量 high_dat 所包含的數據為95(5) ) 將變量 high_dat 裝入寄存器 ah ,bh 和 dl(6) ) 程序運行的入口地址為start答案:dat_sgsegemnt high_datdb95dat_sgends;stk_sgsegment dw64 dup.stk_sgends;cod_sgsegment mainprocfarassumecs: cod_sg, ds: dat_sg, ss: stk_sg start: movax, dat-sgmo

20、vds, axmovah, high_dat movbh, ahmovdl, ah movah, 4ch int21hmainendp cod_sg endsendstart2. 指出以下程序中的錯誤:staksgsegmentdb 100 dup.sta_sg ends dtseg segment data1 db .dtseg end cdseg segment mainprocfarstart: movds,datseg moval,34haddal,4fh4movdata,al start endpcdseg endsend答案:改正后 :staksgsegment db100 dup

21、.staksgends dtsegsegmentdata1db .dtsegendscdsegsegmentmainprocfarassume cs: cdseg, ds: dtseg, ss: staksg start:movax, dtsegmovds, axmoval, 34haddal, 4fh movdata1, al movah, 4ch int21hmainendp cdseg endsends3. 將以下文件類型填入空格:1 .obj2 .exe3 .crf4 .asm5 .lst6 .map編輯程序輸出的文件有 ;_匯編程序輸出的文件有 ;_連接程序輸出的文件有 ;_答案:編

22、輯程序輸出文件 : 4匯編程序輸出文件 : 1, 3, 5連接程序輸出文件 : 2, 64. 以下標號為什么是非法的 .(1) get.data 2 1_num 3 test-data 4 ret 5 new item答案:非法標號 :1由于 .只答應是標號的第一個字符2第一個字符不能為數字3不答應顯現 - 4不能是保留字 ,如助記符5不能有空格5. 下面的數據項定義了多少個字節(jié)?data_1db 6 dup4 dup0ffh答案:24 字節(jié)6. 對于下面兩個數據段,偏移地址為10h 和 11h 的兩個字節(jié)中的數據是一樣的嗎?為什么? dtseg segment|dtseg segmentor

23、g10h|org10hdata1db 72h|data1dw 7204h db 04h|dtseg ends5dtseg ends|答案:不一樣 . 分別是 72h, 04h 和 04h, 72h. 儲備字時低 8 位存在低字節(jié) ,高 8 位存在高字節(jié) .7. 下面的數據項設置了多少個字節(jié).(1) asc_datadb 12342 hex_datadb1234h答案 1 設置了 4 個字節(jié)2 設置了 2 個字節(jié)8. 執(zhí)行以下指令后 , ax 寄存器中的內容是什么 . tabledw 10,20,30,40,50entry dw 3movbx,offset tableaddbx,entrymov

24、ax,bx答案: ax=409. 指出以下指令的錯誤 :1 movah,bx2 movsi,bx3 movax,sidi4 movax,bxbp5 movbx,es:ax6 movbyte ptrbx,10007 movax,offset si8 movcs,ax9 movds,bp答案:1源、目的字長不一樣(2) 源、目的不能同時為存貯器尋址方式(3) 基址變址方式不能有si 和 di 的組合(4) 基址變址方式不能有bx 和 bp 的組合(5) 在 8086 尋址方式中, ax不能作為基址寄存器使用,而且源、目的不能同時為存貯器尋址方式(6) 1000 超出一個字節(jié)的表數范疇(7) off

25、set 只用于簡潔變量,應去掉(8) cs 不能作為目的寄存器(9) 段地址不能直接送入數據段寄存器10. datasegment table_addrdw 1234h dataendsmovbx, table_addrleabx, table_addr請寫出上述兩條指令執(zhí)行后, bx 寄存器中的內容; 答案:movbx,table_addr; 執(zhí)行后 bx=1234hleabx,table_addr; 執(zhí)行后 bx=offset table_addr11. 設ds=1b00h,es=2b00h,有關儲備器地址及其內容如右圖所示,請用兩條指令把x 裝入 ax 寄存器;1b00:2000h1b0

26、0:2002h8000h2b00h.x2b00:8000h6答案:lesbx, 2000h movax, es: bx12. 變量 datax 和 datay 定義如下 :dataxdw0148hdw2316h dataydw0237hdw4052h按下述要求寫出指令序列:1datax和 datay 中的兩個字數據相加 , 和存放在 datay 和 datay+2 中;2datax和 datay 中的兩個雙字數據相加, 和存放在 datay 開頭的字單元中;3datax和 datay 兩個字數據相乘(用mul ) ;4datax和 datay 兩個雙字數據相乘(用mul ) ;5datax除以

27、 23(用 div );6datax雙字除以字 datay (用 div );答案:1 movax, datax addax, dataymovbx, datax+2addbx, datay+2 movdatay, ax movdatay+2, bx(2) movax, datax adddatay, ax movax, datax+2 adcdatay+2, ax(3) movax, datax muldataymovdatay,ax movdatay+2,dx 4mov ax,word ptr datax mov bx,word ptr datay mul bxmovresult,ax m

28、ovresult+2,dxmovax,word ptr datax movax,word ptr datay+2 mulbxaddresult+2,ax adcresult+4,dxmovax,word ptr datax+2 movbx,word ptr datay mulbxaddresult+2,ax adcresult+4,dxmovax,word ptr datax+2 movbx,word ptr datay+27mulbxaddresult+4,ax adcresult+6,dx(5) movax, datax movbl, 23divblmovbl,ahmovah, 0movd

29、atay, ax;存放商 moval,blmovdatay+2, ax;存放余數(6) movax, datax movdx, datax+2 divdataymovdatay, ax movdatay+2, dx13. 試分析下面的程序段完成什么操作?movcl,04shldx,clmovbl,ahshlax,clshrbl,cl ordl,bl答案:將 dx: ax 中的雙字左移 4 位(乘 16)14. 用其他指令完成和以下指令一樣的功能:(1) rep movsb2 rep lodsb3 rep stosb4 rep scasb答案:(1) loop1:moval,byte ptr s

30、imoves:byte ptr di, alincsi或: decsiincloopdiloop1或: decdi(2) loop1:moval, byte ptr siincloopsi或: decloop1si(3) loop1:moves:byte ptr di, al incdi或: decdilooploop1(4) loop1:cmpal,es:byte ptr di jeexitincdi或: decdi looploop1exit:815. 編寫程序段 , 比較兩個 5 字節(jié)的字符串 olds 和 news,假如 olds 字符串與 news 不同, 就執(zhí)行 new_less,

31、否就次序執(zhí)行程序;答案:leasi, olds leadi, newsmovcx, 5cldrepzcmpsb jnznew_less16. 假定 ax 和 bx 中的內容為帶符號數 , cx 和 dx 中的內容為無符號數 , 請用比較指令和條件轉移指令實現以下判定 :(1) 如 dx 的值超過 cx 的值,就轉去執(zhí)行 exceed(2) 如 bx 的值大于 ax 的值,就轉去執(zhí)行 exceed(3) cx 中的值為 0 嗎. 如是就轉去執(zhí)行 zero(4) bx 的值與 ax 的值相減 , 會產生溢出嗎 . 如溢出就轉 overflow(5) 如 bx 的值小于 ax 的值,就轉去執(zhí)行 eq

32、_sma(6) 如 dx 的值低于 cx 的值,就轉去執(zhí)行 eq_sma答案:1 cmpdx, cx jaexceed(2) cmp bx, axjgexceed(3) cmp cx, 0 jezero(4) sub bx, axjooverflow(5) cmp bx, ax jleq_sma(6) cmp dx, cxjbeq_sma17. 假如在程序的括號中分別填入指令:(1) loopl202 loopnel203 loopel20試說明在三種情形下 , 當程序執(zhí)行完后 , ax 、bx 、cx、dx 四個寄存器的內容分別是什么.titleexloop.com codesgsegmen

33、tassumecs:codesg, ds:codesg. ss:codesgorg100hbegin: movax,01movbx,02movdx,03movcx,04l20:incaxaddbx,axshrdx,1retcodesgends答案:endbegin9(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 字節(jié)的非壓縮 bcd 數碼,請寫出運算n1 與 n2 之差的指

34、令序列;答案:movax, 0 moval, n1+1 subal, n2+1 aasmovdl, almoval, n1sbbal, n2 aasmovdh, al19. 有兩個 3 位的 ascii 數串 asc1 和 asc2 定義如下 : asc1db 578asc2db 694 asc3db 0000請編寫程序運算 asc3 asc1+asc2;答案:clcmovcx, 3movbx, 2 back:mov al, asc1bx adc al, asc2bx aaaorasc3bx+1, aldecbx loopback rclcx, 1orasc3bx, cl20.假設cs=300

35、0h, ds=4000h, es=2000h, ss=5000h, ax=2060h,bx=3000h,cx=5, dx=0,si=2060h,di=3000h,43000h=0a006h,23000h=0b116h,33000h=0f802h,25060=00b0h,.sp=0fffeh, cf=1, df=1,請寫出以下各條指令單獨執(zhí)行完后, 有關寄存器及儲備單元的內容 , 如影響條件碼請給出條件碼sf、zf、of、cf 的值;(1) sbb ax,bx2 cmp a x,word ptrsi+0fa0h3 mulbyte ptrbx4 aam5 div bh6 sar ax,cl107

36、xor a x,0ffe7h8 rep stosb9 jmp word pyrbx10 xchgax,es:bx+si答案:1 ax=0f05fh, sf=1, zf=0, of=0, cf=12 sf=1, zf=0, of=1, cf=13 ax=0240h, of=1, cf=14 ax=0906h, sf=0, zf=05 ax=20ach6 ax=0103h, cf=07 ax=0df87h, cf=0, of=0, sf=1, zf=0 8 23000h23004h=60h,不影響標志位(9) ip=0a006h,不影響標志位10 ax=00b0h, 25060=2060h,不影響

37、標志位第 4 章 匯編語言程序設計基礎1. 試編寫一個匯編語言程序,要求對鍵盤輸入的小寫字母用大寫字母顯示出來;答案:abc:movah,1 int21hcmpal, ajbstopcmpal, zjastopsubal,20h movdl,almovah,2int21hjmpabc stop: ret2. 編寫程序,比較兩個字符串string1和 string2所含字符是否完全相同,如相同就顯示 “ match ”,如不同就顯示“ no match ”;答案:datarea segmentstring1string2dbdbasfioaxcviyoaf mess1db match , $me

38、ss2dbno match $, datarea ends prognamsegment mainprocfarassume cs:prognam,ds:datarea start:pushds11subax,axpushaxmovax,datareamovds,axmoves,ax begin:movcx, string2-string1movbx, mess1-string2 cmpbx,cxjnzdispnoleadx,addrleasi,string1leadi,string2repecmpsbjnedispnomovah,9 leadx,mess1int21hret dispno:m

39、ovah, 9 leadx, mess2int21hretmainendp prognamendsend start3. 試編寫程序,要求從鍵盤輸入3 個 16 進制數,并依據對3 個數的比較顯示如下信息:(1)假如 3 個數都不相等就顯示0;(2)假如 3 個數中有 2 個數相等就顯示2;(3)假如 3 個數都相等就顯示3;答案:datasegment arraydw3 dup. dataendscodesegmentmainproc farassume cs:code,ds:data start:pushdssubax,axpushaxmovax,datamovds,axmovcx,3le

40、asi,array begin:12pushcxmovcl,4movdi,4movdl, movah,02 int21hmovdx,0 input:movah,01 int21handal,0fhshldx,clordl,aldecdijneinputmovsi,dx addsi,2popcxloopbegin comp:leasi,array movdl,0movax,simovbx,si+2 cmpax,bxjnenext1adddl,2 next1:cmpsi+4,axjnenext2adddx,2 next2:cmpsi+4,bxjnenumadddl,2 num:cmpdx,3jld

41、ispmovdl,3disp:movah,2 adddl,30hint21h retmainendpcodeendsendstart4. 已知整數變量 a 和 b,試編寫完成下述操作的程序:( 1)如兩個數中有一個是奇數,就將該奇數存入a 中,偶數存入 b 中;( 2)如兩個數均為奇數,就兩數分別加1,并存回原變量;13( 3)如兩個數均為偶數,就兩變量不變;答案:dsegsegment adw.bdw.dsegendscsegsegment mainprocfar assume cs:cseg,ds:dseg start:pushdssubax,axpushaxmovax,dsegmovds

42、,axbegin:movax,amovbx,b xorax,bxtestax,0001jzclasstestbx,0001jzexitxchgbx,a movb,bx jmpexitclass:testbx,0001jzexitincbincaexit:retmainendp csegendsendstart5. 把 010010 之間的 30 個數,存入首地址為 grad 的字數組中, grad+i 表示學號為 i+1 的同學成果;另一個數組 rank 是 30 個同學的名次表, 其中 rank+i的內容是學號為i+1 的同學的名次; 試編寫程序,依據grad 中的同學成果,將排列的名次填入

43、rank 數組中(提示:一個同學的名次等于成果高于這個同學的人數加1);答案:dsegsegment gradedw30 dup.rankdw30 dup. dsegendscsegsegment mainprocfarassume cs:cseg, ds:dseg, es:dsegstart:pushdssub pushax,ax axmovax,dseg14movds,axmoves,ax begin:movdi,0movcx,30 loop1:pushcxmovcx,30movsi,0movax,gradedimovdx,0 loop2:cmpgradesi,axjbego_onincd

44、xgo_on:addsi,2looploop2 popcxincdxmovrankdi,dx sdddi,2looploop1 retmainendp csegendsendstart6. 分析以下程序的功能,寫出堆棧最滿時各單元的地址及內容;ssegsegmentstack at1000h; 堆棧的段地址為1000h dw128 dup.toslabel wordssegends; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - dsegsegmentdw 32 d

45、up. dsegends; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -csegsegment mainprocfarassumecs:cseg, ds:dseg,ss:ssegstart: movax,sseg movss,axmovax,dsegmovds,axmovax,4321h callhtoaretn:movah,4ch int21hmainendp; - - - - - - - - - - - - - - - - - - - - - - - - -

46、 - - - - - - - - - - - - - - - - - - - - htoaprocnearjleb1pushaxpushbpmovbp,spmovbx,bp+2andbx,0fhmovbp+2,bx15cmpax,15popbpmovcl,4shrax,cl callhtoab1:popaxb2:addal,30h jlprtaddal,07prt:movdl,al movah,2int21h rethtoaendpcsegends; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

47、- - - - - - - - - endstart答案:1000:0f2hb11000:0f4h31000:0f6hb11000:0f8h21000:0fahb11000:0fch11000:0fehretn1000:100h7. 寫出安排給以下中斷類型號在中斷向量表中的物理地址;(1) int12h2int8答案:1 00048h2 00020h8. 試編寫程序,它輪番測試兩個設備的狀態(tài)寄存器,只要一個狀態(tài)寄存器的第0 位為 1,就與其相應的設備就輸入一個字符;假如其中任一狀態(tài)寄存器的第3 位為 1,就整個輸入過程終止;兩個狀態(tài)寄存器的端口地址分別是0024 和 0036,與其相應的數據輸

48、入寄存器的端口就為0026 和 0038,輸入字符分別存入首地址為buff1 和 buff2 的儲備區(qū)中;答案movsi, 0movdi, 0test12:inal, 0024htestal, 08jnzexitinal,0036htestal, 08jnzexitdev1:inal, 0024htestal, 01jzdev2inal, 0026hmovbuffersi, al16incsidev2:inal, 0036h testal, 01jztest12inal, 0038hmovbuff2di,al incdijmptest12 exit:ret9.給定( sp) =0100,ss=

49、0300,(flags )=0240,儲備單元的內容為( 00020)=0040,(00022)=0100,在段地址為 0900 及偏移地址為 00a0 的單元中有一條中斷指令int 8 ,試問執(zhí)行 int 8 指令后, sp, ss,ip,flags 的內容是什么?棧頂的三個字是什么?答案:sp = 00fa ss = 0300ip = 0040flags = 0040堆棧內容 :00a1h0900h0240h10. 編寫一個程序,接收從鍵盤輸入的10 個十進制數字,輸入回車符就停止輸入,然后將這些數字加密后(用 xlat 指令變換)存入內存緩沖區(qū)buffer;加密表為 ;輸入數字 :0,

50、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,10 leabx,scodeinput:movah,01int21hcmpal,0ahjzexitandal,0fh xlatmovbuffersi,alincsi17loopinputexit:ret第 5 章 微運算機中處理器與i/o 設備間數據傳輸掌握方法1 試說明一般中斷系統的組成和功能;答:處理器內部應有中斷懇求信號的檢測電路,輸出中斷響應信號,儲存斷點的規(guī)律,轉向中斷處理程序的規(guī)律, 中斷返回規(guī)律; 系統中要有一中斷掌握器,治理多個中斷源, 供應處理機所需的中斷處理信息;系統中懇求中斷處理的i/o 接口電路要有供應中斷懇求信號及接收中斷響應信號的規(guī)律; 2 什么是中斷類型碼、中斷向量、中斷向量表?在基于8086/8088 的微機系統中,中斷類型碼和中斷向量之

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論