《微計(jì)算機(jī)技術(shù)》作業(yè)冊答案_第1頁
《微計(jì)算機(jī)技術(shù)》作業(yè)冊答案_第2頁
《微計(jì)算機(jī)技術(shù)》作業(yè)冊答案_第3頁
《微計(jì)算機(jī)技術(shù)》作業(yè)冊答案_第4頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

《微計(jì)算機(jī)技術(shù)》作業(yè)冊答案第1章緒論.計(jì)算機(jī)分那幾類?各有什么特點(diǎn)?答:傳統(tǒng)上分為三類:大型主機(jī)、小型機(jī)、微型機(jī)。大型主機(jī)一般為高性能的并行處理系統(tǒng),存儲容量大,事物處理能力強(qiáng),可為眾多用戶提供服務(wù)。小型機(jī)具有一定的數(shù)據(jù)處理能力,提供一定用戶規(guī)模的信息服務(wù),作為部門的信息服務(wù)中心。微型機(jī)一般指在辦公室或家庭的桌面或可移動的計(jì)算系統(tǒng),體積小、價格低、具有工業(yè)化標(biāo)準(zhǔn)體系結(jié)構(gòu),兼容性好。.簡述微處理器、微計(jì)算機(jī)及微計(jì)算機(jī)系統(tǒng)三個術(shù)語的內(nèi)涵。答:微處理器是微計(jì)算機(jī)系統(tǒng)的核心硬件部件,對系統(tǒng)的性能起決定性的影響。微計(jì)算機(jī)包括微處理器、存儲器、I/O接口電路及系統(tǒng)總線。微計(jì)算機(jī)系統(tǒng)是在微計(jì)算機(jī)的基礎(chǔ)上配上相應(yīng)的外部設(shè)備和各種軟件,形成一個完整的、獨(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位,對外的數(shù)據(jù)總線也是16位。EU與BIU各自的功能是什么?如何協(xié)同工作?答:EU是執(zhí)行部件,主要的功能是執(zhí)行指令。BIU是總線接口部件,與片外存儲器及I/O接口電路傳輸數(shù)據(jù)。EU經(jīng)過BIU進(jìn)行片外操作數(shù)的訪問,BIU為EU提供將要執(zhí)行的指令。EU與BIU可分別獨(dú)立工作,當(dāng)EU不需BIU提供服務(wù)時,BIU可進(jìn)行填充指令隊(duì)列的操作。8086/8088與其前一代微處理器8085相比,內(nèi)部操作有什么改進(jìn)?答:8085為8位機(jī),在執(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、SI在間接尋址時作為地址寄存器或變址寄存器。總線接口部件設(shè)有段寄存器CS、DS、SS、ES和指令指針寄存器IP。段寄存器存放段地址,與偏移地址共同形成存儲器的物理地址。1P的內(nèi)容為下?條將要執(zhí)行指令的偏移地址,與CS共同形成下一條指令的物理地址。8086對存儲器的管理為什么采用分段的辦法?答:8086是ー個16位的結(jié)構(gòu),采用分段管理辦法可形成超過16位的存儲器物理地址,擴(kuò)大對存儲器的尋址范圍(1MB,20位地址)。若不用分段方法,16位地址只能尋址64KB空間。6.在8086中,邏輯地址、偏移地址、物理地址分別指的是什么?具體說明。答:邏輯地址是在程序中對存儲器地址的一種表示方法,由段地址和段內(nèi)偏移地址兩部分組成,如!234H:0088Ho偏移地址是指段內(nèi)某個存儲單元相對該段首地址的差值,是ー個16位的二進(jìn)制代碼。物理地址是8086芯片引線送出的20位地址碼,用來指出ー個特定的存儲單元。給定一個存放數(shù)據(jù)的內(nèi)存單元的偏移地址是20C0H,(DS)=0C00EH,求出該內(nèi)存單元的物理地址。答:物理地址:320F8H。8086/8088為什么采用地址/數(shù)據(jù)引線復(fù)用技術(shù)?答:考慮到芯片成本,8086/8088采用40條引線的封裝結(jié)構(gòu)。40條引線引出8086/8088的所有信號是不夠用的,采用地址/數(shù)據(jù)線復(fù)用引線方法可以解決這ー矛盾,從邏輯角度,地址與數(shù)據(jù)信號不會同時出現(xiàn),二者可以分時復(fù)用同一組引線。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)是什么?微處理器從何處開始執(zhí)行程序?答:標(biāo)志寄存器、IP、DS、SS、ES和指令隊(duì)列置〇,CS置全1。處理器從FFFFOH存儲單元取指令并開始執(zhí)行。8086基本總線周期是如何組成的?各狀態(tài)中完成什么基本操作?答:基本總線周期由4個時鐘(CLK)周期組成,按時間順序定義為Tl、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期間輸出;M/I0#確定總線操作的對象是存儲器還是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的中斷向量表如何組成?作用是什么?答:把內(nèi)存〇段中〇~3FFH區(qū)域作為中斷向量表的專用存儲區(qū)。該區(qū)域存放256種中斷的處理程序的入口地址,每個入口地址占用4個存儲單元,分別存放入口的段地址與偏移地址。17.8086如何響應(yīng)ー個可屏蔽中斷請求?簡述響應(yīng)過程。答:當(dāng)8086收到INTR的高電平信號時,在當(dāng)前指令執(zhí)行完且IF=1的條件下,8086在兩個總線周期中分別發(fā)出INTA#有效信號;在第二個INTA#期間,8086收到中斷源發(fā)來的一字節(jié)中斷類型碼;8086完成保護(hù)現(xiàn)場的操作,CS、IP內(nèi)容進(jìn)入堆棧,請除IF、TF;8086將類型碼乘4后得到中斷向量表的入口地址,從此地址開始讀取4字節(jié)的中斷處理程序的入口地址,8086從此地址開始執(zhí)行程序,完成了INTR中斷請求的響應(yīng)過程。.什么是總線請求?8086在最小工作模式下,有關(guān)總線請求的信號引腳是什么?答:系統(tǒng)中若存在多個可控制總線的主模塊時,其中之一若要使用總線進(jìn)行數(shù)據(jù)傳輸時,需向系統(tǒng)請求總線的控制權(quán),這就是?個總線請求的過程。8086在最小工作模式下有關(guān)總線請求的信號引腳是HOLD與HLDAo.簡述在最小工作模式下,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ù)及控制總線進(jìn)入高阻狀態(tài),讓出總線控制權(quán),完成響應(yīng)過程。.在基于8086的微計(jì)算機(jī)系統(tǒng)中,存儲器是如何組織的?是如何與處理器總線連接的?BHE#信號起什么作用?答:8086為16位處理器,可訪問1.M字節(jié)的存儲器空間:1M字節(jié)的存儲器分為兩個512K字節(jié)的存儲體,命名為偶字節(jié)體和奇字節(jié)體:偶體的數(shù)據(jù)線連接D7、D0,“體選”信號接地址線A0;奇體的數(shù)據(jù)線連接D15'D8,“體選”信號接BHE#信號;BHE#信號有效時允許訪問奇體中的高字節(jié)存儲單元,實(shí)現(xiàn)8086的低字節(jié)訪問、高字節(jié)訪問及字訪問。.“80386是ー個32位微處理器”,這句話的涵義主要指的是什么?答:指80386的數(shù)據(jù)總線為32位,片內(nèi)寄存器和主要功能部件均為32位,片內(nèi)數(shù)據(jù)通路為32位。.80X86系列微處理器采取與先前的微處理器兼容的技術(shù)路線,有什么好處?有什么不足?答:好處是先前開發(fā)的軟件可以在新處理器組成的系統(tǒng)中運(yùn)行,保護(hù)了軟件投資。缺點(diǎn)是處理器的結(jié)構(gòu)發(fā)展受到兼容的約束,為了保持兼容性增加了硅資源的開銷,增加了結(jié)構(gòu)的復(fù)雜性。.80386內(nèi)部結(jié)構(gòu)由哪幾部分組成?簡述各部分的作用。答:80386內(nèi)部結(jié)構(gòu)由執(zhí)行部件(EU)、存儲器管理部件(MMU)和總線接口部件(BIU)三部分組成。EU包括指令預(yù)取部件、指令譯碼部件、控制部件、運(yùn)算部件及保護(hù)檢測部件,主要功能是執(zhí)行指令。存儲器管理部件包括分段部件、分頁部件,實(shí)現(xiàn)對存儲器的分段分頁式的管理,將邏輯地址轉(zhuǎn)換成物理地址??偩€接口部件作用是進(jìn)行片外訪問:對存儲器及レ。接口的訪問、預(yù)取指令;另外的作用是進(jìn)行總線及中斷請求的控制.80386有幾種存儲器管理模式?都是什么?答:80386有三種存儲器管理模式,分別是實(shí)地址方式、保護(hù)方式和虛擬8086方式.在不同的存儲器管理模式下,80386的段寄存器的作用是什么?答:在實(shí)地址方式下,段寄存器與8086相同,存放段基地址。在保護(hù)方式下,每個段寄存器還有一個對應(yīng)的64位段描述符寄存器,段寄存器作為選擇器存放選擇符。在虛擬8086方式下,段寄存器的作用與8086相同。.試說明虛擬存儲器的涵義,它。物理存儲器有什么區(qū)別?80386虛擬地址空間有多大?答:虛擬存儲器是程序員面對的ー個巨大的、可尋址的存儲空間,這個空間是內(nèi)存與外存聯(lián)合形成的,在操作系統(tǒng)的管理下,程序可象訪問內(nèi)存ー樣去訪問外存而獲得所需數(shù)據(jù)。物理存儲器是指機(jī)器實(shí)際擁有的內(nèi)存儲器,不包括外存。80386的虛擬地址空間為64TB大。.試說明描述符的分類及各描述符的作用。答:描述符分為三類:存儲器段描述符、系統(tǒng)段描述符、門描述符。存儲器段描述符由8字節(jié)組成,它用來說明一個段中保存信息的情況。32位段基地址和20位段界限值定位了該段在存儲空間中的位置,其它有關(guān)位決定訪問權(quán)限及段的長度單位。系統(tǒng)段描述符與存儲器段描述符大多數(shù)字節(jié)段相同,有關(guān)訪問權(quán)及屬性字節(jié)段有些不同。門描述符用來改變程序的特權(quán)級別、切換任務(wù)的執(zhí)行以及指出中斷服務(wù)程序的入口。.描述符表的作用是什么?有幾類描述符表?答:描述符表順序存放ー系列描述符,描述符表定義了在80386系統(tǒng)中被使用的全部存儲器段。有3類描述符表,即全局描述符表、局部描述符表及中斷描述符表。80386的分段部件是如何將邏輯地址變?yōu)榫€性地址的?答:分段部件根據(jù)段選擇符從全局描述符表或局部描述符表中取出對應(yīng)的段描述符。把段描述符32位段基地址與邏輯地址中的32位偏移量相加就形成了線性地址。80386中如何把線性地址變?yōu)槲锢淼刂?答:分段部件形成的32位線性地址中高10位作為尋址頁目錄表的偏移量,與控制寄存器CR3中頁目錄表基地址共同形成一個32位的地址指向頁表中的ー個頁項(xiàng),即為ー個頁面描述符。該頁面項(xiàng)中高20位作為頁面基地址,線性地址的低12位為偏移量,相加后形成指向某一存儲單元的32位物理地址。若禁止分頁功能,線性地址就是物理地址。80386對中斷如何分類?答:80386把中斷分為外部中斷和內(nèi)部中斷兩大類,外部中斷經(jīng)NMI和!NTR引線輸入請求信號。內(nèi)部中斷也叫內(nèi)部異常中斷,分為陷阱中斷、內(nèi)部故障異常中斷、異常終止中斷。80386在保護(hù)方式下中斷描述符表與8086的中斷向量表有什么不同?答:8086工作在實(shí)地址方式,向量表是在存儲器的〇段中最低1024字節(jié)內(nèi)存中。80386在保護(hù)方式下要通過中斷描述符表中的描述符訪問虛擬空間的中斷向量,中斷描述符表的位置不是固定的,要由IDTR寄存器實(shí)現(xiàn)在虛擬空間的定位。簡述80386在保護(hù)方式下的中斷處理過程。答:80386響應(yīng)中斷后,接收由中斷源提供的類型碼并將其乘8,與IDTR寄存器中基地址相加,指出中斷描述符的位置,讀出中斷描述符,依其中的段選擇符及條件決定從兩個描述符表しDT或GDT中的ー個得到段描述符,形成中斷服務(wù)程序入口所在存儲器單元的線性地址第3章8086指令系統(tǒng)及尋址方式(第一部分)1.根據(jù)下列要求編寫一個匯編語言程序::(1)代碼段的段名為COD.SG(2)數(shù)據(jù)段的段名為DAT_SG(3)堆棧段的段名為STK-SG(4)變量HIGH一DAT所包含的數(shù)據(jù)為95(5)將變量HIGH_DAT裝入寄存器AH,BH和DL(6)程序運(yùn)行的入口地址為START答案: DAT_SGSEGEMNTHIGH_DAT DB95DAT_SG ENDS;STK_SG SEGMENTDW 64DUP(?)STK_SGENDS;COD_SGSEGMENTMAINPROCFARASSUMECS:COD_SG,DS:DAT_SG,SS:STK_SGSTART:MOVAX,DAT-SGMOVDS,AXMOVAH,HIGH_DATMOVBH,AHMOVDL,AHMOVAH,4CHINT21HMAINENDPCOD_SGENDSENDSTART.指出下列程序中的錯誤:STAKSGSEGMENTDB100DUP(?)STA_SG ENDSDTSEG SEGMENTDATA1DB?DTSEG ENDCDSEGSEGMENTMAIN PROC FARSTART:MOV DS,DATSEGMOV AL,34HADD AL,4FHMOV DATA,ALSTARTENDPCDSEGENDSEND答案:改正后:STAKSGSEGMENTDB100DUP(?)STAKSGENDSDTSEG SEGMENTDATA1 DB?DTSEG ENDSCDSEGSEGMENTMAIN PROC FARASSUMECS:CDSEG,DS:DTSEG,SS:STAKSGSTART:MOVAX,DTSEGMOVDS,AXMOVAL,34HADDAL,4FHMOVDATA1,ALMOVAH,4cHINT21HMAINENDPCDSEGENDSENDSTART.將下列文件類型填入空格:.obj(2).exe(3).erf(4).asm(5).1st(6).map編輯程序輸出的文件有;匯編程序輸出的文件有;連接程序輸出的文件有.答案:編輯程序輸出文件:(4)匯編程序輸出文件:(1),(3),(5)連接程序輸出文件:(2),(6).下列標(biāo)號為什么是非法的?GET.DATA(2)1_NUM(3)TEST-DATA(4)RET(5)NEWITEM答案:非法標(biāo)號: (1)因?yàn)椤?’只允許是標(biāo)號的第一個字符(2)第一個字符不能為數(shù)字(3)不允許出現(xiàn)(4)不能是保留字,如助記符(5)不能有空格.下面的數(shù)據(jù)項(xiàng)定義了多少個字節(jié)?DATA_1DB6DUP(4DUP(OFFH))答案:24字節(jié).對于下面兩個數(shù)據(jù)段,偏移地址為!0H和11H的兩個字節(jié)中的數(shù)據(jù)是一樣的嗎?為什么?DTSEGSEGMENTDTSEGSEGMENTORG10H| ORG 10HDATA1DB72HDATA1DW7204HDB04H| DTSEGENDSDTSEGENDS1答案:不一樣,分別是72H,04H和04H,72H,存儲字時低8位存在低字節(jié),高8位存在高字節(jié).7,下面的數(shù)據(jù)項(xiàng)設(shè)置了多少個字節(jié)?(1)ASC_DATADB'1234’ (2)HEX_DATADB1234H答案: (1)設(shè)置了4個字節(jié)(2)設(shè)置了2個字節(jié)執(zhí)行下列指令后,AX寄存器中的內(nèi)容是什么?TABLEDW10,20,30,40,50ENTRYDW3MOV BX,OFFSETTABLEADD BX,ENTRYMOV AX,[BX]答案: (AX)=409,指出下列指令的錯誤:MOVAH,BX (2)MOV[SI],[BX] (3)MOVAX,[SI][DI]MOVAX,[BX][BP](5)MOV[BX],ES:AX(6)MOVBYTEPTR[BX],1000MOVAX,OFFSET[SI](8)MOVCS,AX (9)MOVDS,BP答案:(1)源、目的字長不一致(2)源、目的不能同時為存貯器尋址方式(3)基址變址方式不能有SI和DI的組合(4)基址變址方式不能有BX和BP的組合(5)在8086尋址方式中,AX不能作為基址寄存器使用,而且源、目的不能同時為存貯器尋址方式1000超出一個字節(jié)的表數(shù)范圍OFFSET只用于簡單變量,應(yīng)去掉CS不能作為目的寄存器(9)段地址不能直接送入數(shù)據(jù)段寄存器. DATASEGMENTTABLE_ADDRDW1234HDATA ENDSMOVBX,TABLE_ADDRLEA BX,TABLE_ADDR請寫出上述兩條指令執(zhí)行后,BX寄存器中的內(nèi)容。答案:MOV BX,TABLE_ADDR :執(zhí)行后(BX)=1234HLEA BX,TABLEADDR :執(zhí)行后(BX)=OFFSETTABLE_ADDR11.設(shè)(DS)=1BOOH,(ES)=2B00H,有關(guān)存儲器地址及其內(nèi)容如右圖所示,請用兩條指令把X裝入AX寄存器。8000H1800:2000H2B00H1BOO:2OO2HX2B00:8000H; 答案:LESBX,[2000H]MOVAX,ES:[BX]第3章8086指令系統(tǒng)及尋址方式(第二部分).變量DATAX和DATAY定義如下:DATAX DW 0148HDW2316HDATAYDW 0237H

DW4052H按ド述要求寫出指令序列:(1)DATAX和DATAY中的兩個字?jǐn)?shù)據(jù)相加,和存放在DATAY和DATAY+2中。(2)DATAX和DATAY中的兩個雙字?jǐn)?shù)據(jù)相加,和存放在DATAY開始的字單元中。(3)DATAX和DATAY兩個字?jǐn)?shù)據(jù)相乘(用MUL)。(4)DATAX和DATAY兩個雙字?jǐn)?shù)據(jù)相乘(用MUL)〇(5)DATAX除以23(用DIV)〇(6)DATAX雙字除以字DATAY(用DIV)〇答案:⑴ADDMOVADDMOVMOV⑵ADDMOVADC⑶MULMOVMOV(4)MOVAX,DATAXAX,DATAYBX,DATAX+2BX,DATAY+2DATAY,AXDATAY+2,BXMOVAX,DATAXDATAY,AXAX,DATAX+2DATAY+2,AXMOVAX,DATAXDATAYDATAY,AXDATAY+2,DXMOVAX,WORDPTRDATAXMOVBX,WORDPTRDATAYMULBXMOVRESULT,AXMOVRESULT+2,DXMOVAX,WORDPTRDATAXMOVAX,WORDPTRDATAY+2MULBXADDRESULT+2,AXADCRESULT+4,DXMOVAX,WORDPTRDATAX+2MOVBX,WORDPTRDATAYMULBXADDRESULT+2,AXADCRESULT+4,DXMOVAX,WORDPTRDATAX+2MOVBX,WORDPTRDATAY+2MULBXADDRESULT+4,AXADCRESULT+6,DXMOVAX,DATAXMOVBL,23DIVBLMOVBL,AHMOVAH,0MOVDATAY,AX ;存放商MOVAL,BLMOVDATAY+2,AX;存放余數(shù)MOVAX,DATAXMOVDX,DATAX+2DIVDATAYMOVDATAY,AXMOVDATAY+2,DX.試分析下面的程序段完成什么操作?MOV CL,04SHLDX,CLMOV BL,AHSHLAX,CLSHRBL,CLORDL,BL答案:將DX:AX中的雙字左移4位(乘16).用其他指令完成和下列指令一樣的功能:REPMOVSB(2)REPLODSBSCASB答案:L00P1:MOVAL,BYTEPTR[SI]MOVES:BYTEPTR[DI],ALINCS!或:DECSIINCD!或:DECDILOOPL00P1L00P1:MOVAL,BYTEPTR[SI]INCS!或:DECSILOOPL00P1L00P1:MOVES:BYTEPTR[DI],ALINCD!或:DECDILOOPL00P1L00P1:CMPAL,ES:BYTEPTR[DI]JEEXITINCD!或:DECDI(3)REPSTOSB(4)REPLOOPLOOP1EXIT:15. 編寫程序段,比較兩個5字節(jié)的字符串OLDS和NEWS,如果OLDS字符串與NEWS不同,則執(zhí)行NEWNESS,否則順序執(zhí)行程序。答案:LEASI,OLDSLEADI,NEWSMOVCX,5CLDREPZCMPSBJNZNEW_LESS16.假定AX和BX中的內(nèi)容為帶符號數(shù),CX和DX中的內(nèi)容為無符號數(shù),請用比較指令和條件轉(zhuǎn)移指令實(shí)現(xiàn)以下判斷:(1)若DX的值超過CX的值,則轉(zhuǎn)去執(zhí)行EXCEED(2)若BX的值大于AX的值,則轉(zhuǎn)去執(zhí)行EXCEEDCX中的值為〇嗎?若是則轉(zhuǎn)去執(zhí)行ZEROBX的值與AX的值相減,會產(chǎn)生溢出嗎?若溢出則轉(zhuǎn)OVERFLOW(5)若BX的值小于AX的值,則轉(zhuǎn)去執(zhí)行EQ_SMA(6)若DX的值低于CX的值,則轉(zhuǎn)去執(zhí)行EQ_SMA答案:CMPDX,CXJAEXCEEDCMPBX,AXJGEXCEEDCMPCX,0JEZEROSUBBX,AXJOOVERFLOWCMPBX,AXJLEQ_SMACMPDX,CXJBEQ_SMA17.假如在程序的括號中分別填入指令:(1)LOOPL20 (2)LOOPNEL20 (3)LOOPEL20試說明在三種情況下,當(dāng)程序執(zhí)行完后,AX、BX、CX、DX四個寄存器的內(nèi)容分別是什么?TITLEEXLOOP.COMCODESGSEGMENTASSUMECS:CODESG,DS:CODESG.SS:CODESGORG100HBEGIN:MOVAX,01MOVBX,02MOVDX,03MOVCX,04L20: INCAXADDBX,AXSHRDX,1()RETCODESGENDSENDBEGIN答案:(AX)=5(BX)=16(CX)=0(DX)=0(AX)=2 (BX)=4 (CX)=3 (DX)=1(AX)=3 (BX)=7 (CX)=2 (DX)=018.變量N!和N2均為2字節(jié)的非壓縮BCD數(shù)碼,請寫出計(jì)算N!與N2之差的指令序列。答案:MOVAX,0MOVAL,Nl+1SUBAL,N2+1AASMOVDL,ALMOVAL,N1SBBAL,N2AASMOVDH,AL19.有兩個3位的ASCI!數(shù)串ASC!和ASC2定義如下:ASCI DB '578'ASC2 DB '694'ASC3 DB '0000'請編寫程序計(jì)算ASC3-ASC1+ASC2。答案:CLCMOVCX,3MOVBX,2BACK:MOVAL,ASCltBX]ADCAL,ASC2[BX]AAAORASC3[BX+1],ALDECBXLOOPBACKRCLCX,1ORASC3[BX],CL20.假設(shè)(CS)=3000H,(DS)=4000H,(ES)二2000H,(SS)二5000H,(AX)=2060H,(BX)=3000H,(CX)=5, (DX)=O, (SI)=2060H, (DI)=3000H, (43000H)=0A006H, (23000H)=0B116H,(33000H)=0F802H,(25060)=OOBOH,.(SP)=OFFFEH,(CF)=1,(DF)=1,請寫出下列各條指令單獨(dú)執(zhí)行完后,有關(guān)寄存器及存儲單元的內(nèi)容,若影響條件碼請給出條件碼SF、ZF、OF、CF的值。(1)SBBAX,BX(2)CMPAX,WORDPTR[SI+OFAOH](3)MULBYTEPTR[BX](4)AAM(5)DIVBH(6)SARAX,CL(7)XORAX,0FFE7H(8)REPSTOSB(9)JMPWORDPYR[BX](10)XCHGAX,ES:[BX+SI]答案:(AX)=0F05FH,(SF)=1,(ZF)=O,(0F)=0,(CF)=1(SF)=1,(ZF)=O,(OF)=1,(CF)=1(AX)=0240H,(OF)=1,(CF)=1(4)(AX)=0906H,(SF)=O,(ZF)=O(5)(AX)=20ACH(AX)=0103H,(CF)=O(AX)=0DF87H,(CF)=O,(0F)=0,(SF)=1,(ZF)=O(2300011)"(23004H)=6011I不影響標(biāo)志位(IP)=0A006H,不影響標(biāo)志位(AX)=00B0H,(25060)=2060H,不影響標(biāo)志位第4章匯編語言程序設(shè)計(jì)基礎(chǔ)(第一部分).試編寫ー個匯編語言程序,要求對鍵盤輸入的小寫字母用大寫字母顯示出來。答案:abc: movah,1int21hcmpal,'a)jbstopcmpal,'z'jastopsubal,20hmovdl,almovah,2int21hjmpabcstop:ret.編寫程序,比較兩個字符串STRING1和STRING2所含字符是否完全相同,若相同則顯示“MATCH”,若不同則顯示“NOMATCH".答案:datareasegmentstringldb 'asfioa'string2db 'xcviyoaf'messldb 'MATCH',' $'mess2db 'NOMATCH' ,' $'datareaendsprognamsegmentmainprocfarassumecs:prognam,ds:datareastart:pushdssubax,axpushaxmovax,datareamovds,axmoves,axbegin:movex,string2-stringlmovbx,messl-string2empbx,exjnzdispnoleadx,addrleasi,stringlleadi,string2repeempsbjnedispnomovah,9leadx,messlint21hretdispno:movah,9leadx,mess2int21hretmainendpprognamendsendstart.試編寫程序,要求從鍵盤輸入3個16進(jìn)制數(shù),并根據(jù)對3個數(shù)的比較顯示如下信息:(1)如果3個數(shù)都不相等則顯示。;(2)如果3個數(shù)中有2個數(shù)相等則顯示2;(3)如果3個數(shù)都相等則顯示3。答案:datasegmentarraydw3dup(?)dataendscodesegmentmainprocfarassumecs:code,ds:datastart:pushdssubax,axpushaxmovax,datamovds,axmovex,3leasi,arraybegin:pushexmovcl,4movdi,4movdl,movah,02int21hmovdx,0input:movah,01int21handal,Ofhshldx,clordl,aldecdijneinputmov[si],dxaddsi,2popexloopbegincomp:leasi,arraymovdl,0movax,[si]movbx,[si+2]empax,bxjnenextladddl,2nextl:emp[si+4],axjnenext2adddx,2next2:emp[si+4],bxjnenumadddl,2num:empdx,3jldispmovdl,3disp:movah,2adddl,3Ohint21hretmainendpcodeendsendstart.已知整數(shù)變量A和B,試編寫完成下述操作的程序:(1)若兩個數(shù)中有一個是奇數(shù),則將該奇數(shù)存入A中,偶數(shù)存入B中;(2)若兩個數(shù)均為奇數(shù),則兩數(shù)分別加1,并存回原變量;(3)若兩個數(shù)均為偶數(shù),則兩變量不變。答案:dsegsegmentadw?bdw?dsegendscsegsegmentmainprocfarassumecs:cseg,ds:dsegstart:pushdssubax,axpushaxmovax,dsegmovds,axbegin:movax,amovbx,bxorax,bxtest ax,0001jzclasstest bx,0001jzexitxchgbx,amovb,bxjmpexitclass:testbx,0001jzexitincbincaexit:retmainendpendscseg

endsendstart第4章匯編語言程序設(shè)計(jì)基礎(chǔ)(第二部分)5.把O'lOOi。之間的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)。答案:dseggraderankdsegcsegmainassumestart:segmentdw30dup(?)dw30dup(?)endssegmentprocfarcs:cseg,ds:dseg,es:dsegpush dssubax,axpush axmovax,dsegmovds,axmoves,axbegin:movdi,0movex,30loopl:pushexmovex,30movsi,0movax,grade[di]movdx,0loop2:empgrade[si],axjbego_onincdxgo_on:addsi,2looploop2popexincdxmovrank[di],dxsdddi,2looplooplretmaincsegendpendsendstart6.分析下列程序的功能,寫出堆棧最滿時各単元的地址及內(nèi)容。SSEGSEGMENT*STACK*AT100011 ;堆棧的段地址為100011DW128DUP(?)TOS LABEL WORDSSEG ENDSDSEG SEGMENTDW32DUP(?)DSEG ENDSCSEG SEGMENTMAIN PROC FARASSUMECS:CSEG,DS:DSEG,SS:SSEGSTART:MOVAX,SSEGMOVSS,AXMOVAX,DSEGMOVDS,AXMOVAX,4321HCALLHTOARETN:MOVAH,4CHINT21HMAINENDPHTOAPROCNEARCMPAX,15JLEBlPUSH AXPUSH BPMOVBP,SPMOVBX,[BP+2]ANDBX,OFHMOV[BP+2],BXPOPBPMOVCL,4SHRAX,CLCALLHTOAPOPAXADDAL,30HJLPRTADDAL,07PRT: MOVDL,ALMOVAH,2

INT21HRETHTOA ENDPCSEG ENDSENDSTART答案:1000:0F2HBl1000:0F4H31000:0F6HBl1000:0F8H21000:0FAIIBl1000:0FCH11000:0FEHRETN1000:100H7.寫出分配給下列中斷類型號在中斷向量表中的物理地址。(1)INT12H (2)INT8答案:(l)00048h(2)00020h8.試編寫程序,它輪流測試兩個設(shè)備的狀態(tài)寄存器,只要一個狀態(tài)寄存器的第。位為1,則與其相應(yīng)的設(shè)備就輸入一個字符;如果其中任一狀態(tài)寄存器的第3位為1,則整個輸入過程結(jié)朿。兩個狀態(tài)寄存器的端口地址分別是0024和0036,與其相應(yīng)的數(shù)據(jù)輸入寄存器的端ロ則為0026和0038,輸入字符分別存入首地址為BUFF1和BUFF2的存儲區(qū)中。答案:si,0si,0di,0al,0024hal,08exital,0036hal,08exital,0024hmovtestl2:intestjnzintestjnzdevl:injzdev2inal,0026hmovbuffer[si],alincsidev2:inal,0036htestal,01jztest12inal,0038hmovbuff2[di],alincdijmptestl2exit:rettestal,019.給定(SP)=0100,(SS)=0300,(FLAGS)=0240(存儲單元的內(nèi)容為(00020)=0040,(00022)=0100,在段地址為0900及偏移地址為00A0的單元中有一一條中斷指令I(lǐng)NT8,試問執(zhí)行INT8指令后,SP,SS,IP,FLAGS的內(nèi)容是什么?棧頂?shù)娜齻€字是什么?答案:(SP)=00FA(SS)=0300(IP)=0040(FLAGS)=0040堆棧內(nèi)容:10.編寫一個程序,接收從鍵盤輸入的10個十進(jìn)制數(shù)字,輸入回車符則停止輸入,然后將這些數(shù)字加密后(用XLAT指令變換)存入內(nèi)存緩沖區(qū)BUFFER。加密表為;輸入數(shù)字: 0,1,2,3,4,5,6,7,8,9密碼數(shù)字: 7,5,9,1,3,6,8,0,2,4答案:scodedb7,5,9,1,3,6,8,0,2,4bufferdb10dup(?)movsi,0movex,10leabx,scodeinput:movah,01int21hcmpal,Oahjzexitandal,Ofhxlatmovbuffer[si],alincsiloopinputexit:ret第5章微計(jì)算機(jī)中處理器與I/O設(shè)備間數(shù)據(jù)傳輸控制方法1.試說明一般中斷系統(tǒng)的組成和功能。答:處理器內(nèi)部應(yīng)有中斷請求信號的檢測電路,輸出中斷響應(yīng)信號,保存斷點(diǎn)的邏輯,轉(zhuǎn)向中斷處理程序的邏輯,中斷返回邏輯。系統(tǒng)中要有一中斷控制器,管理多個中斷源,提供處理機(jī)所需的中斷處理信息。系統(tǒng)中請求中斷處理的I/O接口電路要有提供中斷請求信號及接收中斷響應(yīng)信號的邏輯。什么是中斷類型碼、中斷向量、中斷向量表?在基于8086/8088的微機(jī)系統(tǒng)中,中斷類型碼和中斷向量之間有什么關(guān)系?答:處理機(jī)可處理的每種中斷的編號為中斷類型碼。中斷向量是指中斷處理程序的入口地址,由處理機(jī)臼動尋址。中斷向量表是存放所有類型中斷處理程序入口地址的一個默認(rèn)的內(nèi)存區(qū)域。在8086系統(tǒng)中,中斷類型碼乘4得到向量表的入口,從此處讀出4字節(jié)內(nèi)容即為中斷向量。什么是硬件中斷和軟件中斷?在PC機(jī)中兩者的處理過程有什么不同?答:硬件中斷是通過中斷請求線輸入電信號來請求處理機(jī)進(jìn)行中斷服務(wù);軟件中斷是處理機(jī)內(nèi)部識別并進(jìn)行處理的中斷過程。硬件中斷?般是由中斷控制器提供中斷類型碼,處理機(jī)自動轉(zhuǎn)向中斷處理程序;軟件中斷完全由處理機(jī)內(nèi)部形成中斷處理程序的入口地址并轉(zhuǎn)向中斷處理程序,不需外部提供信息。試敘述基于8086/8088的微機(jī)系統(tǒng)處理硬件中斷的過程。答:以!NTR請求為例。當(dāng)8086收到INTR的高電平信號時,在當(dāng)前指令執(zhí)行完且IF=1的條件下,8086在兩個總線周期中分別發(fā)出INTA#有效信號;在第二個INTA#期間,8086收到中斷源發(fā)來的一字節(jié)中斷類型碼;8086完成保護(hù)現(xiàn)場的操作,CS、IP內(nèi)容進(jìn)入堆棧,淸除IF、TF;8086將類型碼乘4后得到中斷向量入口地址,從此地址開始讀取4字節(jié)的中斷處理程序的入口地址,8086從此地址開始執(zhí)行程序,完成了INTR中斷請求的響應(yīng)過程。在PC機(jī)中如何使用“用戶中斷”入口請求中斷和進(jìn)行編程?答;PC機(jī)中分配給用戶使用的中斷是IRQ9,經(jīng)擴(kuò)展插槽B4弓|出,故把用戶的中斷請求線連接到B4上。在應(yīng)用程序中,利用25H號系統(tǒng)調(diào)用將中斷服務(wù)程序的入口地址寫入對應(yīng)OAH類型中斷對應(yīng)的中斷向量表中去。在應(yīng)用程序中把主片8259AD2屏蔽位清〇,把從片8259AD1屏蔽位清〇,使主片的IR2、從片的IR1可以輸入中斷請求。中斷服務(wù)程序結(jié)束前向主片8259A發(fā)中斷結(jié)束命令。應(yīng)用程序結(jié)束之前對主片的IR2和從片的IR1進(jìn)行屏蔽,關(guān)閉用戶中斷請求。8259A中斷控制器的功能是什么?答:8259A中斷控制器可以接受8個中斷請求輸入并將它們寄存。對8個請求輸入進(jìn)行優(yōu)先級判斷,裁決出最高優(yōu)先級進(jìn)行處理,它可以支持多種優(yōu)先級處理方式。8259A可以對中斷請求輸入進(jìn)行屏蔽,阻止對其進(jìn)行處理。8259A支持多種中斷結(jié)束方式。8259A與微處理器連接方便,可提供中斷請求信號及發(fā)送中斷類型碼。8259A可以進(jìn)行級連以便形成多于8級輸入的中斷控制系統(tǒng)。8259A初始化編程過程完成那些功能?這些功能由那些ICW設(shè)定?答:初始化編程用來確定8259A的工作方式。ICT1確定8259A工作的環(huán)境:處理器類型、中斷控制器是單片還是多片、請求信號的電特性。ICW2用來指定8個中斷請求的類型碼。ICW3在多片系統(tǒng)中確定主片與從片的連接關(guān)系。ICW4用來確定中斷處理的控制方法:中斷結(jié)束方式、嵌套方式、數(shù)據(jù)線緩沖等。8259A在初始化編程時設(shè)置為非中斷自動結(jié)束方式,中斷服務(wù)程序編寫時應(yīng)注意什么?答:在中斷服務(wù)程序中,在返回主程序之前按排一條一般中斷結(jié)束命令指令,8259A將ISR中最高優(yōu)先級位置0,結(jié)束該級中斷處理以便為較低級別中斷請求服務(wù)。8259A的初始化命令字和操作命令字有什么區(qū)別?它們分別對應(yīng)于編程結(jié)構(gòu)中那些內(nèi)部寄存器?答:8259A的工作方式通過微處理器向其寫入初始

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論