微機原理與接口技術(shù)課后習(xí)題與參考題答案_第1頁
微機原理與接口技術(shù)課后習(xí)題與參考題答案_第2頁
微機原理與接口技術(shù)課后習(xí)題與參考題答案_第3頁
微機原理與接口技術(shù)課后習(xí)題與參考題答案_第4頁
微機原理與接口技術(shù)課后習(xí)題與參考題答案_第5頁
已閱讀5頁,還剩63頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 .DOC資料. 第一章 課后習(xí)題1.1 把下列十進制數(shù)轉(zhuǎn)換成二進制數(shù)、八進制數(shù)、十六進制數(shù)。 16.25 35.75 123.875 97/1281.2 把下列二進制數(shù)轉(zhuǎn)換成十進制數(shù)。 10101.01 11001.0011 111.01 1010.11.3 把下列八進制數(shù)轉(zhuǎn)換成十進制數(shù)和二進制數(shù)。 756.07 63.73 35.6 323.451.4 把下列十六進制數(shù)轉(zhuǎn)換成十進制數(shù)。 A7.8 9AD.BD B7C.8D 1EC1.5 求下列帶符號十進制數(shù)的8位補碼。 +127 1 0 -1281.6 求下列帶符號十進制數(shù)的16位補碼。 +355 1 1.7 計算機分那幾類?各有什么特點

2、?1.8 簡述微處理器、微計算機及微計算機系統(tǒng)三個術(shù)語的內(nèi)涵。1.9 80X86微處理器有幾代?各代的名稱是什么?1.10 你知道現(xiàn)在的微型機可以配備哪些外部設(shè)備?1.11 微型機的運算速度與CPU的工作頻率有關(guān)嗎?1.12 字長與計算機的什么性能有關(guān)?習(xí)題一參考答案1.1 16.25D=10000.01B=20.2Q=10.4H 35.75D=100011.11B=43.6Q=23.CH 123.875D=1111011.111B=173.7Q=7B.EH 97/128D=64/123+32/128+1/128=0.1100001B=0.604Q=0.C2H1.2 10101.01B=21.

3、25D 11001.0011B=25.1875D 111.01B=7.25D 1010.1B=10.5D1.3 756.07Q=111101110.000111B=494.109D 63.73Q=110011.111011B=51.922D 35.6Q=11101.110B=29.75D 323.45Q=11010011.100101B=211.578D1.4 A7.8H=167.5D 9AD.BDH=2477.738D B7C.8D=2940.551D 1ECH=492D1.5 +127補=01111111 1 補= 11111111 0 補=00000000 -128 補=10000000

4、1.6 +355 補= 0000000101100011 1 補= 1111 1111 1111 11111.7 答:傳統(tǒng)上分為三類:大型主機、小型機、微型機。大型主機一般為高性能的并行處理系統(tǒng), 存儲容量大,事物處理能力強,可為眾多用戶提供服務(wù)。小型機具有一定的數(shù)據(jù)處理能力,提供一定用戶規(guī)模的信息服務(wù),作為部門的信息服務(wù)中心。微型機一般指在辦公室或家庭的桌面或可移動的計算系統(tǒng),體積小、價格低、具有工業(yè)化標(biāo)準(zhǔn)體系結(jié)構(gòu),兼容性好。1.8 答:微處理器是微計算機系統(tǒng)的核心硬件部件,對系統(tǒng)的性能起決定性的影響。微計算機包括微處理器、存儲器、I/O接口電路及系統(tǒng)總線。微計算機系統(tǒng)是在微計算機的基礎(chǔ)上配

5、上相應(yīng)的外部設(shè)備和各種軟件,形成一個完整的、獨立的信息處理系統(tǒng)。1.9 答:從體系結(jié)構(gòu)上可分為5代:4004:4位機;8080/8085:8位機;8086/8088/80286:16位機;80386/80486:32位機;Pentium系列機:64位。第二章 課后習(xí)題 2.1、 EU與BIU各自的功能是什么?如何協(xié)同工作?2.2、8086/8088微處理器內(nèi)部有那些寄存器,它們的主要作用是什么?2.3、8086對存儲器的管理為什么采用分段的辦法?2.4、在8086中,邏輯地址、偏移地址、物理地址分別指的是什么?具體說明。2.5、給定一個存放數(shù)據(jù)的內(nèi)存單元的偏移地址是20C0H,(DS)=0C0

6、0EH,求出該內(nèi)存單元的物理地址。2.6、8086/8088為什么采用地址/數(shù)據(jù)引線復(fù)用技術(shù)?2.7、8086與8088的主要區(qū)別是什么?2.8、怎樣確定8086的最大或最小工作模式?最大、最小模式產(chǎn)生控制信號的方法有何不同2.9、8086被復(fù)位以后,有關(guān)寄存器的狀態(tài)是什么?微處理器從何處開始執(zhí)行程序?2.10、8086基本總線周期是如何組成的?各狀態(tài)中完成什么基本操作?2.11、在基于8086的微計算機系統(tǒng)中,存儲器是如何組織的?是如何與處理器總線連接的?BHE#信號起什么作用?2.12、80X86系列微處理器采取與先前的微處理器兼容的技術(shù)路線,有什么好處?有什么不足?2.13、80386內(nèi)

7、部結(jié)構(gòu)由哪幾部分組成?簡述各部分的作用。2.14、80386有幾種存儲器管理模式?都是什么?2.15、在不同的存儲器管理模式下,80386的段寄存器的作用是什么?2.16、描述符的分類及各描述符的作用。2.17、80386的分段部件是如何將邏輯地址變?yōu)榫€性地址的?2.18、803866中如何把線性地址變?yōu)槲锢淼刂罚苛?xí)題二參考答案 1、答:EU是執(zhí)行部件,主要的功能是執(zhí)行指令。BIU是總線接口部件,與片外存儲器及I/O接口電路傳輸數(shù)據(jù)。EU經(jīng)過BIU進行片外操作數(shù)的訪問,BIU為EU提供將要執(zhí)行的指令。EU與BIU可分別獨立工作,當(dāng)EU不需BIU提供服務(wù)時,BIU可進行填充指令隊列的操作。2、答

8、:執(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。段寄存器存放段地址,與偏移地址共同形成存儲器的物理地址。IP的內(nèi)容為下一條將要執(zhí)行指令的偏移地址,與CS共同形成下一條指令的物理地址。3、答:8086是一個16位的結(jié)構(gòu),采用分段管理辦法可形成超過16位的存儲器物理地址,擴大對存儲器的尋址范圍 (1MB,20位地址)。若不用分段方法,16位地址只能尋址64KB空間。4、答:邏輯地址

9、是在程序中對存儲器地址的一種表示方法,由段地址和段內(nèi)偏移地址兩部分組成,如1234H:0088H。偏移地址是指段內(nèi)某個存儲單元相對該段首地址的差值,是一個16位的二進制代碼。物理地址是8086芯片引線送出的20位地址碼,用來指出一個特定的存儲單元。5、答:物理地址:320F8H。6、答:考慮到芯片成本,8086/8088采用40條引線的封裝結(jié)構(gòu)。40條引線引出8086/8088的所有信號是不夠用的,采用地址/數(shù)據(jù)線復(fù)用引線方法可以解決這一矛盾,從邏輯角度,地址與數(shù)據(jù)信號不會同時出現(xiàn),二者可以分時復(fù)用同一組引線。7、答:8086有16條數(shù)據(jù)信號引線,8088只有8條;8086片內(nèi)指令預(yù)取緩沖器深

10、度為6字節(jié),8088只有4字節(jié)。8、答:引線MN/MX#的邏輯狀態(tài)決定8086的工作模式,MN/MX#引線接高電平,8086被設(shè)定為最小模式,MN/MX#引線接低電平,8086被設(shè)定為最大模式。最小模式下的控制信號由相關(guān)引線直接提供;最大模式下控制信號由8288專用芯片譯碼后提供,8288的輸入為8086的S2#S0#三條狀態(tài)信號引線提供。9、答:標(biāo)志寄存器、IP、DS、SS、ES和指令隊列置0,CS置全1。處理器從FFFFOH存儲單元取指令并開始執(zhí)行。10、答:基本總線周期由4個時鐘(CLK)周期組成,按時間順序定義為T1、T2、T3、T4。在T1期間8086發(fā)出訪問目的地的地址信號和地址鎖

11、存選通信號ALE;T2期間發(fā)出讀寫命令信號RD#、WR#及其它相關(guān)信號;T3期間完成數(shù)據(jù)的訪問;T4結(jié)束該總線周期。11、答: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é)訪問及字訪問。12、答:好處是先前開發(fā)的軟件可以在新處理器組成的系統(tǒng)中運行,保護了軟件投資。缺點是處理器的結(jié)構(gòu)發(fā)展受到兼容的約束,為了保持兼容性增加了硅資源的開

12、銷,增加了結(jié)構(gòu)的復(fù)雜性。13、答:80386內(nèi)部結(jié)構(gòu)由執(zhí)行部件(EU)、存儲器管理部件(MMU)和總線接口部件(BIU)三部分組成。EU包括指令預(yù)取部件、指令譯碼部件、控制部件、運算部件及保護檢測部件,主要功能是執(zhí)行指令。存儲器管理部件包括分段部件、分頁部件,實現(xiàn)對存儲器的分段分頁式的管理,將邏輯地址轉(zhuǎn)換成物理地址。總線接口部件作用是進行片外訪問:對存儲器及I/O接口的訪問、預(yù)取指令;另外的作用是進行總線及中斷請求的控制14、答:80386有三種存儲器管理模式,分別是實地址方式、保護方式和虛擬8086方式15、答:在實地址方式下,段寄存器與8086相同,存放段基地址。在保護方式下,每個段寄存器

13、還有一個對應(yīng)的64位段描述符寄存器,段寄存器作為選擇器存放選擇符。在虛擬8086方式下,段寄存器的作用與8086相同。16、答:描述符分為三類:存儲器段描述符、系統(tǒng)段描述符、門描述符。存儲器段描述符由8字節(jié)組成,它用來說明一個段中保存信息的情況。32位段基地址和20位段界限值定位了該段在存儲空間中的位置,其它有關(guān)位決定訪問權(quán)限及段的長度單位。系統(tǒng)段描述符與存儲器段描述符大多數(shù)字節(jié)段相同,有關(guān)訪問權(quán)及屬性字節(jié)段有些不同。門描述符用來改變程序的特權(quán)級別、切換任務(wù)的執(zhí)行以及指出中斷服務(wù)程序的入口。17、答:分段部件根據(jù)段選擇符從全局描述符表或局部描述符表中取出對應(yīng)的段描述符。把段描述符32位段基地址

14、與邏輯地址中的32位偏移量相加就形成了線性地址。18、答:分段部件形成的32位線性地址中高10位作為尋址頁目錄表的偏移量,與控制寄存器CR3中頁目錄表基地址共同形成一個32位的地址指向頁表中的一個頁項,即為一個頁面描述符。該頁面項中高20位作為頁面基地址,線性地址的低12位為偏移量,相加后形成指向某一存儲單元的32位物理地址。若禁止分頁功能,線性地址就是物理地址。第三章 課后習(xí)題3.1、 8086/8088微處理器有哪些尋址方式?并寫出各種尋址方式的傳送指令2條(源操作數(shù)和目的操作數(shù)尋址)。3.2、 有關(guān)寄存器和內(nèi)存單元的內(nèi)容如下:DS=2000H,SS=1000H,BX=0BBH,BP=02

15、H,SI=0100H,DI=0200H,(200BBH)=1AH,(201BBH)=34H,(200CCH)=68H,(200CDH)=3FH,(10202H)=78H,(10203H)=67H,(21200H)=2AH,(21201H)=4CH,(21202H)=0B7H,(201CCH)=56H, (201CDH)=5BH,(201BCH)=89H,(200BCH)=23H,試寫出下表中源操作數(shù)的尋址方式和寄存器AX的內(nèi)容。表3-7 習(xí)題1指令源操作數(shù)尋址方式AX的內(nèi)容MOV AX,1200H MOV AX,BX MOV AX,1200H MOV AX,BX MOV AX,BX+11H M

16、OV AX,BX+SI MOV AX,BX+SI+11H MOV AX,BP+DI 3.3、指出下列語句的錯誤。 (1)MOV SI,34H (2)MOV 45H,AX (3)INC 12(4)MOV BX,SI+BP+BUF(5)MOV BL,AX(6)MOV CS,AX(7)OUT 240H,AL(8)MOV SS,2000H(9)LEA BX,AX(10)XCHG AL,78H3.4、已知DS=2000H,(21000H)=2234H,(21002H)=5566H,試區(qū)別以下3條指令。MOV SI,1000HLEA SI,1000HLDS SI,1000H3.5、簡述堆棧的性質(zhì)。如果SS

17、=9B9FH,SP=200H,連續(xù)執(zhí)行兩條PUSH指令后,棧頂?shù)奈锢淼刂肥嵌嗌伲縎S,SP的值是多少?再執(zhí)行一條POP指令后,棧頂?shù)奈锢淼刂酚质嵌嗌??SS、SP的值又是多少?3.6、 寫出將AX和BX寄存器內(nèi)容進行交換的堆棧操作指令序列,并畫出堆棧變化過程示意圖。3.7、用兩條指令把FLAGS中的SF位置1。3.8、用一條指令完成下列各題。 (1)AL內(nèi)容加上12H,結(jié)果送入AL。 (2)用BX寄存器間接尋址方式把存儲器中的一個內(nèi)存單元加上AX的內(nèi)容,并加上CF位,結(jié)果送入該內(nèi)存單元。 (3)AX的內(nèi)容減去BX的內(nèi)容,結(jié)果送入AX。 (4)將用BX、SI構(gòu)成的基址變址尋址方式所得到的內(nèi)容送入A

18、X。 (5)將變量BUF1中前兩個字節(jié)的內(nèi)容送入寄存器SI中。3.9、下面的程序段執(zhí)行后,DX、AX的內(nèi)容是什么?MOV DX,0EFADHMOV AX,1234HMOV CL,4SHL DX,CLMOV BL,AHSHL AX,CLSHR BL,CLOR DL,BL3.10、寫出下面的指令序列中各條指令執(zhí)行后的AX內(nèi)容。MOV AX,7865HMOV CL,8SAR AX,CLDEC AXMOV CX,8MUL CXNOT ALAND AL,10H3.11、 如果要將AL中的高4位移至低4位,有幾種方法?請分別寫出實現(xiàn)這些方法的程序段。3.12、利用串操作指令,將AREA1起始的區(qū)域1中的2

19、00個字節(jié)數(shù)據(jù)傳送到以AREA2為起始地址的區(qū)域2(兩個區(qū)域有重疊)。3.13、寄存器BX中有4位0F的十六進制數(shù),編寫程序段,將其轉(zhuǎn)換為對應(yīng)字符(即ASCII碼),按從高到低的順序分別存入L1、L2、L3、L4這4個字節(jié)單元中。3.14、 試將BUF起始的100個字節(jié)的組合BCD碼數(shù)字,轉(zhuǎn)換成ASCII碼,并存放在以ASC為起始地址的單元中。已知高位BCD碼位于較高地址中。3.15、 請給出以下各指令序列執(zhí)行完后目的寄存器的內(nèi)容。(1)MOV BX,-78 MOVSX EBX,BX (2)MOV CL,-5 MOVSX EDX,CL (3)MOV AH,9 MOVZX ECX,AH (4)M

20、OV AX,87H MOVZX EBX,AX3.16、 請給出以下各指令序列執(zhí)行完后EAX和EBX的內(nèi)容。MOV ECX,12345678HBSF EAX,ECXBSR EBX,ECX3.17、 給以TAB為首地址的100個ASCII碼字符添加奇偶校驗位(bit7),使每個字節(jié)中的“1”的個數(shù)為偶數(shù),在順序輸出到10H號端口。3.18、 編寫一段程序,要求在長度為100H字節(jié)的數(shù)組中,找出正數(shù)的個數(shù)并存入字節(jié)單元POSIT中,找出負(fù)數(shù)的個數(shù)并存入字節(jié)單元NEGAT中。 習(xí)題三 參考答案3.1答:尋址方式是指計算機在執(zhí)行指令時尋找操作數(shù)的方式。8086/8088微處理器有以下幾種尋址方式:立即尋

21、址。操作數(shù)(僅限源操作數(shù))直接放在指令中。例如:mov cx,100;mov ah,20h。寄存器尋址。操作數(shù)在CPU的內(nèi)部寄存器中。例如:mov es,ax;mov dl,bh。直接尋址。指令中直接給出了操作數(shù)的偏移地址。例如:mov ax,3000h;mov buf,100。寄存器間接尋址。操作數(shù)的偏移地址放在寄存器bp,bx,si,di四個寄存器中的一個里。例如:mov ax,si;mov bx,cx。寄存器相對尋址。操作數(shù)的有效地址為基址寄存器或變址寄存器的內(nèi)容與指令中指定的位移量之和。例如:mov ax,cntsi;mov strbx,ax?;纷冎穼ぶ贰2僮鲾?shù)的有效地址是一個基址寄

22、存器和一個變址寄存器的和。例如:mov ax,si+bx;mov bx+di,dx。相對基址變址尋址。操作數(shù)的有效地址為一個基址寄存器、一個變址寄存器的內(nèi)容與指令中指定的位移量三者之和。例如:mov ax,cntbxsi;mov cntbxsi,ax。3.2. 答:指令源操作數(shù)尋址方式AX的內(nèi)容MOV AX,1200H立即尋址1200HMOV AX,BX寄存器尋址0BBHMOV AX,1200H直接尋址4C2AHMOV AX,BX寄存器間接尋址231AHMOV AX,BX+11H寄存器相對尋址3F68HMOV AX,BX+SI基址變址尋址8934HMOV AX,BX+SI+11H相對基址變址尋

23、址5B56HMOV AX,BP+DI基址變址尋址6778H3.3 答: (1)MOV SI,34H;目的操作數(shù)必須指出是字節(jié)操作還是字操作,比如可改成MOV BYTE PTR SI,34H (2)MOV 45H,AX;目的操作數(shù)不能是立即數(shù) (3)INC 12;操作數(shù)不能是立即數(shù)(4)MOV BX,SI+BP+BUF;兩個操作數(shù)不能同是存儲單元(5)MOV BL,AX;操作數(shù)不匹配(6)MOV CS,AX;CS不能作為目的操作數(shù)(7)OUT 240H,AL;對于IN和OUT指令,端口號大于FFH時,必須先將端口號放入DX寄存器中(8)MOV SS,2000H;段寄存器不能用立即數(shù)來賦值,可改成

24、MOV SS,AX(9)LEA BX,AX;源操作數(shù)必須是內(nèi)存,如LEA BX,BUFFER(10)XCHG AL,78H;交換指令不能對立即數(shù)操作3.4答:MOV SI,1000H;(SI)2234HLEA SI,1000H;(SI)1000HLDS SI,1000H;(SI)2234H,(DS)5566H3.5答:先進后出。9BBF0H49BBECH9BBECH29BBEEH3.6答:PUSH AXPUSH BXPOP AXPOP BX3.7 答:MOV AX,7FHADD AX,13.8答:ADD AL,12HADC BX,AXSUB AX,BXMOV AX,BX+SIMOV SI,BU

25、F13.9答:DXFAD1H,AX2340H3.10答:AX300H3.11答:循環(huán)左移mov cl,4rol al,cl循環(huán)右移mov cl,4ror al,cl右移mov cl,4shr al,cl3.12答:從末端開始傳送即可解決重疊問題。mov cx,200mov si,offset aera1add si,200mov di,offset aere2add di,200std;DF1,進行地址減量rep movsb3.13答:MOV CL,4 MOV AL,BL ;處理最低位十六進制數(shù) AND AL,0FH CMP AL,0AH JC DIGT4 ADD AL,7DIGT4: ADD

26、,AL,30H MOV L4,AL MOV AL,BL ;處理次低位十六進制數(shù) SHR AL,CL CMP AL,0AH JC DIGT3 ADD AL,7DIGT3: ADD,AL,30H MOV L3,AL MOV AL,BH ;處理次高位十六進制數(shù) AND AL,0FH CMP AL,0AH JC DIGT2 ADD AL,7DIGT2: ADD,AL,30H MOV L2,AL MOV AL,BH ;處理最高位十六進制數(shù) SHR AL,CL CMP AL,0AH JC DIGT1 ADD AL,7DIGT1: ADD,AL,30H MOV L1,AL3.14答:LEA SI,BUF L

27、EA BX,ASC MOV CH,100 MOV CL,4AGAIN: MOV AL,SI ;處理低位BCD碼 AND AL,0FH ADD AL,30H MOV BX,AL INC BX MOV AL,SI ;處理高位BCD碼 SHR AL,CL ADD AL,30H MOV BX,AL INC BX INC SI DEC CH JNZ AGAIN3.15答:(1)MOV BX,-78;(BX)=FFB2H MOVSX EBX,BX;(EBX)=FFFFFFB2H(2)MOV CL,-5;(CL)=FBH MOVSX EDX,CL;(EDX)=FFFFFFFBH(3)MOV AH,9;(AH

28、)=9H MOVZX ECX,AH(ECX)=00000009H(4)MOV AX,87H;(AX)=87H MOVZX EBX,AX;(EBX)=00000087H3.16答:MOV ECX,12345678H;(ECX)=12345678HBSF EAX,ECX ;(EAX)=00000003HBSR EBX,ECX;(EBX)=0000001CH3.17答:MOV CX,100LEA BX,TABAGN: MOV AL,BXADD AL,0JP NEXTOR AL,80HNEXT: OUT 10H,ALINC BXLOOP AGN3.18 答:假設(shè)數(shù)組的起始地址是BUFFERLEA BX

29、,BUFFERMOV DX,0MOV CX,100ONCE: MOV AL,BXTEST AL,80H;是正數(shù)還是負(fù)數(shù)JNZ FUSHU;是負(fù)數(shù),跳轉(zhuǎn)CMP AL,0;是0嗎?JZ NEXTINC DH;是正數(shù),則DH加1JMP NEXTFUSHU: INC DL;是負(fù)數(shù),則DL加1NEXT: INC BXDEC CXJNZ ONCEMOV POSIT,DHMOV NEGAT,DL第四章 課后習(xí)題4.1、匯編語言有何特點?編寫匯編語言源程序時,一般的組成原則是什么?4.2、MODEL偽指令是簡化段定義源程序格式中必不可少的語句,它設(shè)計了哪幾種存儲模式,各用于創(chuàng)建什么性質(zhì)的程序?4.3、如何規(guī)定

30、一個程序執(zhí)行的開始位置,主程序執(zhí)行結(jié)束應(yīng)該如何返回DOS,源程序在何處停止匯編過程?4.4、邏輯段具有哪些屬性?完整代碼段定義時的默認(rèn)屬性是什么?小型模式下的簡化代碼段定義具有的默認(rèn)屬性是什么?4.5、 DOS支持哪兩種可執(zhí)行程序結(jié)構(gòu),編寫這兩種程序時需要注意什么?4.6、給出下列語句中,指令立即數(shù)(數(shù)值表達式)的值:(1)mov al,23h AND 45h OR 67h (2)mov ax,1234h16+10h (3)mov ax,254h SHL 4 (4)mov al,a AND (NOT(b一 B) (5)mov ax,(76543 LT 32768)XOR 7654h4.7、畫圖

31、說明下列語句分配的存儲空間及初始化的數(shù)據(jù)值:(1) byte_var db BCD,10,10h,EF,2 dup (一l,?,3 dup(4) (2) word_var dw 1234h,一5,6 dup(?)4.8、設(shè)置一個數(shù)據(jù)段,按照如下要求定義變量:(1)myl_b為字符串變量,表示字符串“Personal Computer!”(2)my2_b為用十六進制數(shù)表示的字節(jié)變量,這個數(shù)的大小為100(3)my3_w為100個未賦值的字變量(4)my4_c為100的符號常量(5)my5_c為字符串常量,代替字符串“Personal Computer!”4.9、假設(shè)opw是一個字變量,opbl和

32、opb2是兩個字節(jié)變量,指出下列語句中的具體錯誤原因并改正錯誤。(1) mov byte ptr bx,256(2) mov bx,offset opwsi(3) add opbl,opb2(4) mov opbl,al+l(5) sub al,opw(6) mov di,1234h4.10、編制一個程序,把字變量X和Y中數(shù)值較大者存入MAX字單元;若兩者相等,則把-1存入MAX中。假設(shè)變量存放的是有符號數(shù)。4.11、設(shè)變量DAT為有符號16位數(shù),請編寫程序?qū)⑺姆枲顟B(tài)保存在sign字節(jié)單元,即:如果變量值大于等于0,保存0;如果變量值小于0,保存-1。4.12、 X、Y和Z是3個有符號字節(jié)

33、數(shù)據(jù),編寫一個比較相等關(guān)系的程序:(1)如果這3個數(shù)都不相等,則顯示N;(2)如果這3個數(shù)中有兩個數(shù)相等,則顯示X;(3)如果這3個數(shù)都相等,則顯示Y。4.13、編制程序完成12H,23H,F(xiàn)3H,6AH,20H,F(xiàn)EH,10H,C8H,25H和34H共10個無符號字節(jié)數(shù)據(jù)之和,并將結(jié)果存入字變量SUM中。4.14、求出主存從2000H:0開始的一個64KB物理段中共有的空格個數(shù),存入DX中。4.15、過程定義的一般格式是什么?子程序開始為什么常有PUSH指令,返回前為什么有POP指令?下面完成16位無符號數(shù)累加的子程序是否正確?若有錯,請改正。jiafa PROCpush axxor ax,

34、axxor dx,dxagain: add ax, bxadc dx,0inc bxinc bxloop againretENDP jiafa4.16、編寫一個程序,統(tǒng)計寄存器AX中二進制數(shù)位“0”的個數(shù),結(jié)果以二位十進制數(shù)形式顯示到屏幕上。4.17、子程序的參數(shù)傳遞有哪些方法?4.18、編寫一個求32位數(shù)據(jù)補碼的子程序,通過寄存器傳遞入口參數(shù)。4.19、所謂“校驗和”是指不記進位的累加,常用于檢查信息的正確性。編寫一個計算字節(jié)校驗和的子程序。主程序提供入口參數(shù):數(shù)據(jù)個數(shù)和數(shù)據(jù)緩沖區(qū)的首地址。子程序回送求和結(jié)果這個出口參數(shù)。4.20、編制一個子程序,把一個16位二進制數(shù)用4位16進制形式在屏幕

35、上顯示出來。4.21、在以BUF為首地址的字緩沖區(qū)中有3個無符號數(shù),編程將這3個數(shù)按升序排列,結(jié)果存回原緩沖區(qū)。4.22、在DAT字節(jié)單元中有一個有符號數(shù),判斷其正負(fù),若為正數(shù),則在屏幕上顯示“+”號;若為負(fù)數(shù),則顯示“-”號;若是0,則顯示0。4.23、編程求1400中所有奇數(shù)的和,結(jié)果以十六進制數(shù)形式顯示到屏幕上。4.24、在以DAT為首地址的字節(jié)緩沖區(qū)中存有100H個無符號字節(jié)數(shù)據(jù),編程求其最大值與最小值之和,結(jié)果存入RESULT字單元。4.25、在內(nèi)存單元CNT中有一個字?jǐn)?shù)據(jù),編程將其二進制數(shù)顯示到屏幕上。4.26、在以STRG為首地址的緩沖區(qū)中有一組字符串,長度為100,編程實現(xiàn)將其

36、中所有的英文小寫字母轉(zhuǎn)換成大寫字母,其它的不變。4.27、在以DAT為首地址的內(nèi)存中有100個無符號數(shù)(數(shù)的長度為字),編程統(tǒng)計其中奇數(shù)的個數(shù),結(jié)果以十進制形式顯示到屏幕上。要求分別用子程序完成奇數(shù)個數(shù)統(tǒng)計,用宏完成十進制數(shù)顯示。4.28、編寫一段程序,使匯編程序根據(jù)SIGN的值分別產(chǎn)生不同的指令。如果SIGN,則用字節(jié)變量DATB中的無符號數(shù)除以字節(jié)變量SCALE;如果SIGN1,則用字節(jié)變量DATB中的有符號數(shù)除以字節(jié)變量SCALE,結(jié)果都存放在字節(jié)變量RESULT中。 習(xí)題四 參考答案4.1答:匯編語言是計算機能夠提供給用戶使用的最快速有效的語言,它是以處理器指令系統(tǒng)為基礎(chǔ)的低級程序設(shè)計

37、語言,采用助記符表示指令操作碼,采用標(biāo)識符表示指令操作數(shù)。利用匯編語言編寫程序的主要優(yōu)點是可以直接、有效地控制計算機硬件,因而容易創(chuàng)建代碼序列短小、運行快速的可執(zhí)行程序。在對程序的空間和時間要求高的應(yīng)用領(lǐng)域,匯編語言的作用是不容置疑和無可替代的。然而,匯編語言作為一種低級語言也存在很多不足,例如,功能有限、編程難度大、依賴處理器指令,這也限制了它的應(yīng)用范圍。匯編語言源程序由若干語句組成,通常,這些語句可以分為3類,分別是:(1)指令語句;(2) 宏指令語句;(3) 偽指令語句。匯編語言也由段組成,8086/8088按照邏輯段組織程序,具有代碼段、數(shù)據(jù)段、附加段和堆棧段,段與段之間的順序可以任意

38、排列。需要獨立運行的程序必須包含一個代碼段,一個程序只有一個起始點,且必須指示程序的起始點。4.2答:七種存儲模型:Tiny 所有數(shù)據(jù)和代碼都放在一個段內(nèi),其數(shù)據(jù)和代碼都是近訪問。Tiny程序可以寫成COM文件格式 ,COM程序必須從0100H的存儲單元開始。這種模型一般用于小程序。Small 所有數(shù)據(jù)放在一個64KB的數(shù)據(jù)段內(nèi),所有代碼放在另一個64KB的代碼段內(nèi),數(shù)據(jù)和代碼也都是近訪問的。這是一般應(yīng)用程序最常用的一種模型。Medium 代碼使用多個段,一般一個模塊一個段,而數(shù)據(jù)則合并成一個64KB的段組。這樣,數(shù)據(jù)是近訪問的,而代碼則可遠(yuǎn)訪問。Compact 所有代碼都放在一個64KB的代

39、碼段內(nèi),數(shù)據(jù)則可放在多個段內(nèi),形成代碼是近訪問的,而數(shù)據(jù)則可為遠(yuǎn)訪問的格式。Large 代碼和數(shù)據(jù)都可用多個段,所以數(shù)據(jù)和代碼都可以遠(yuǎn)訪問。Huge 與Large模型相同,其差別是允許數(shù)據(jù)段的大小超過64KB。Flat 允許用戶用32位偏移量,但DOS下不允許使用這種模型,只能在OS2下或其他保護模式的操作系統(tǒng)下使用。MASM 5版本不支持這種模型,但MASM 6可以支持。4.3答:需要使用一個標(biāo)號,如start。對于有數(shù)據(jù)段的程序,簡化段定義下應(yīng)該這樣開始:start:mov ax,datamov ds,ax匯編語言程序設(shè)計過程中,有多種返回DOS的方法,但一般用DOS功能調(diào)用的4CH子功能

40、來實現(xiàn)。應(yīng)用程序的終止代碼是:mov ax,4c00hint 21h匯編結(jié)束是指匯編程序結(jié)束將源程序翻譯成目標(biāo)模塊代碼的過程。源程序的最后必須有一條end偽指令:end 標(biāo)號;其中,可選的標(biāo)號是程序指定的開始執(zhí)行點,連接程序以此設(shè)置CS和IP。如:end start4.4答:邏輯段具有4個屬性:(1)定位類型(align_type)說明段的起始地址應(yīng)有怎樣的邊界值;(2)組合類型(combine_type)說明程序連接時的段合并方法;(3)使用類型(use_type)只適用于386及其后繼機型,它用來指定尋址方式。(4)類別(class)在引號中給出連接時組成段組的類型名。 完整代碼段定義時的

41、默認(rèn)屬性是:PARA、PRIVATE、USEl64.5答:COM和EXE程序結(jié)構(gòu)。EXE程序有獨立的代碼段、數(shù)據(jù)段和堆棧段,還可以有多個代碼段和多個數(shù)據(jù)段,程序長度可以超過64KB。COM程序只有一個邏輯段,其中包含數(shù)據(jù)區(qū)、代碼區(qū)和堆棧區(qū),程序代碼長度不超過64KB,程序從100H處開始執(zhí)行。4.6 答:(1)mov al,23h AND 45h OR 67h;67H(2)mov ax,1234h16+10h;133H(3)mov ax,254h SHL 4;2540H(4)mov al,a AND (NOT(b B);21H(5)mov ax,(76543 LT 32768)XOR 7654

42、h;89ABH4.7.答:(1)42H43H44H0AH10H45H46HFFH-04H04H04HFFH-04H04H04H(2)34H12HFBHFFH- 4.8答:(1)myl_b db Personal Computer!(2)my2_b db 64H(3)my3_w dw 100 dup(?)(4)my4_c equ 100(5)my5_c equ 4.9答:(1) mov byte ptr bx,256;改正mov word ptr bx,256(2) mov bx,offset opwsi;改正mov bx,offset opw(3) add opbl,opb2;改正add al

43、,opb2(4) mov opbl,al+l;改正mov opbl,al(5) sub al,opw;改正sub al,opb1(6) mov di,1234h;改正mov word ptr di,1234h4.10答:.MODEL SMALL.DATAX DW 1234HY DW 4321HMAX DW ?.CODESTART: MOV AX,DATAMOV DS,AXMOV AX,XCMP AX,YJNZ NEQUMOV MAX,0FFFFHJMP STOPNEQU: JC NEXTMOV MAX,XJMP STOPNEXT: MOV MAX,YSTOP: MOV AX,4C00HINT

44、21HEND START4.11答:.MODEL SMALL.DATADAT DW 9234HSIGN DW ?.CODESTART: MOV AX,DATAMOV DS,AXMOV AX,DATCMP AX,0JZ STOPTEST AX,8000HJNZ FUMOV SIGN,0JMP STOPFU: MOV SIGN,0FFHSTOP: MOV AX,4COOHINT 21HEND START4.12答:DISPLAY MACROMOV AH,2INT 21HENDM.MODEL SMALL.DATAX DW 1230HY DW 1234HZ DW 1234H.CODESTART: MO

45、V AX,DATAMOV DS,AXMOV AX,XMOV BX,YCMP AX,ZJNZ N1CMP AX,BXJNZ N2MOV DL,YDISPLAYSTOP: MOV AX,4C00HINT 21HN1: CMP AX,BXJNZ N3N2: MOV DL,XDISPLAYJMP STOPN3: CMP BX,ZJNZ N4JMP N2N4: MOV DL,NDISPLAYJMP STOPEND START4.13答:.MODEL SMALL.DATADAT DB 12H,23H,0F3H,6AH,20H,0FEH,10H,C8H,25H,34HSUM DW ?.CODESTART:

46、MOV AX,DATAMOV DS,AXMOV CX,10MOV DX,0LEA BX,DATAGAIN: MOV AL,BXCBWMOV DX,AXINC BXLOOP AGAINMOV SUM,DXMOV AX,4C00HINT 21HEND START4.14答:.MODEL SMALL.CODESTART: MOV AX,2000HMOV DS,AXMOV SI,0MOV DX,0MOV CX,0FFFFHAGAIN: MOV AL,SICMP AL,20HJNZ NEXTINC DXNEXT: INC SILOOP AGAINMOV AX,4C00HINT 21HEND START4

47、.15. 答:procname PROC attributes fieldUSES register list,parameter fieldProcname ENDPpush和pop的使用是為了保護子程序的調(diào)用的現(xiàn)場,比如寄存器的值。本例中要保護的寄存器是ax和dx。jiafa PROC;用CX,BX傳參數(shù)數(shù)據(jù)的個數(shù)和數(shù)據(jù)的起始地址,結(jié)果放在字內(nèi)存單元SUM和SUM1push axpush dxxor ax,axxor dx,dxagain: add ax, bxadc dx,0inc bxinc bxloop againmov sum,axmov sum+1,dxpop dxpop axr

48、etjiafa ENDP 4.16答:.MODEL SMALL.CODESTART: MOV CX,16MOV BL,0;BL中放0的個數(shù)AGN: SHL AX,1;數(shù)0的個數(shù)JC NEXTINC BLNEXT: LOOP AGNMOV AL,BLDAAMOV DL,AL;顯示高位AND DL,0F0HMOV CL,4SHR DL,CLADD DL,30HMOV AH,2INT 21HMOV DL,AL;顯示低位AND DL,0FHADD DL,30HMOV AH,2INT 21HMOV DL,0DH;顯示回車MOV AH,2INT 21HMOV DL,0AH;顯示換行MOV AH,2INT

49、21HMOV AX,4C00HINT 21HEND START4.17答:1、用寄存器傳參數(shù)。2、用共享變量傳參數(shù)。3、用堆棧傳參數(shù)。4.18答:設(shè)這個32位數(shù)放在DX.AX中,求補后的結(jié)果也放在DX.AX中。BUMA PROCPUSH BXPUSH CXXOR BX,BXXOR CX,CXSUB BX,AXMOV AX,BXSBB CX,DXMOV DX,CXPOP CXPOP BXRETBUMA ENDP4.19答:設(shè)數(shù)據(jù)個數(shù)在CX中,數(shù)據(jù)緩沖區(qū)的首地址為BUF。出口參數(shù):校驗和放在SUM字節(jié)單元。CHKSUM PROCPUSH AXPUSH BXDEC CXLEA BX,BUF MOV

50、AL,BXAGN: ADD AL,BXINC BXLOOP AGNMOV SUM,ALPOP BXPOP AXRETCHKSUM ENDP4.20答:設(shè)這個十六進制的字放在數(shù)據(jù)段的TEMP字單元中。BTOH PROCPUSH AXPUSH BXPUSH CXPUSH DXMOV CL,4MOV BX,TEMPMOV DL,BH;最高位SHR DL,CLCMP DL,0AHJC N1ADD DL,7N1: ADD DL,30HMOV AH,2INT 21HMOV DL,BH;次高位AND DL,0FHCMP DL,0AHJC N2ADD DL,7N2: ADD DL,30HMOV AH,2INT

51、 21HMOV DL,BL;次低位SHR DL,CLCMP DL,0AHJC N3ADD DL,7N3: ADD DL,30HMOV AH,2INT 21HMOV DL,BL;最低位AND DL,0FHCMP DL,0AHJC N4ADD DL,7N4: ADD DL,30HMOV AH,2INT 21HPOP DXPOP CXPOP BXPOP AXRETBTOH ENDP4.21答:.MODEL SMALL .DATABUF DW 9273H,0F3H,6A20H .CODESTART: MOV AX,DATA MOV DS,AX LEA BX,BUF MOV AX,BX CMP AX,B

52、X+2 JB N1 XCHG AX,BX+2 MOV BX, AXN1: MOV AX,BX+2 CMP AX,BX+4 JB N2 XCHG AX,BX+4 MOV BX+2,AXN2: MOV AX,BX CMP AX,BX+2 JB STOP XCHG AX,BX+2 MOV BX, AXSTOP: ;INT 3 MOV AX,4C00H INT 21H END START4.22答:DISPLAY MACROMOV AH,2INT 21HENDM.MODEL SMALL .DATADAT DB 9CH .CODESTART: MOV AX,DATA MOV DS,AXMOV AL,DA

53、TCMP AL,0JZ ZEROJNS POSI MOV DL,-DISPLAYSTOP: MOV AX,4C00HINT 21HZERO: MOV DL,0DISPLAYJMP STOPPOSI: MOV DL,+DISPLAYJMP STOPEND START4.23答: .MODEL SMALL.CODESTART: XOR BX,0MOV CX,200MOV DX,1AGN: ADD BX,DX; 求和INC DXINC DXLOOP AGNCALL BTOHMOV AX,4C00HINT 21HBTOH PROCMOV CL,4MOV DL,BH;最高位SHR DL,CLCMP DL

54、,0AHJC N1ADD DL,7N1: ADD DL,30HMOV AH,2INT 21HMOV DL,BH;次高位AND DL,0FHCMP DL,0AHJC N2ADD DL,7N2: ADD DL,30HMOV AH,2INT 21HMOV DL,BL;次低位SHR DL,CLCMP DL,0AHJC N3ADD DL,7N3: ADD DL,30HMOV AH,2INT 21HMOV DL,BL;最低位AND DL,0FHCMP DL,0AHJC N4ADD DL,7N4: ADD DL,30HMOV AH,2INT 21HRETBTOH ENDPEND START4.24答:.MO

55、DEL SMALL.DATADAT DB ;準(zhǔn)備100個數(shù)RESULT DW ?.CODESTART: MOV AX,DATAMOV DS,AXMOV CX,99LEA SI,DATMOV DL,SIMOV DH,DLINC SIMOV BX,SIAGN1: CMP DH,SI;求出最大值JNB NEXT1MOV DH,SINEXT1: INC SILOOP AGN1MOV CX,99AGN2: CMP DL,BX;求出最小值JB NEXT2MOV DL,BXNEXT2: INC BXLOOP AGN2XOR AX,AX;求和ADD DH,DLMOV AL,DHADC AX,0MOV RESU

56、LT,AX;int 3MOV AX,4C00HINT 21HEND START4.25答:DPLY0 MACROMOV DL,30HMOV AH,2INT 21HENDMDPLY1 MACROMOV DL,31HMOV AH,2INT 21HENDM.MODEL SMALL.DATACNT DW 0AB3FH;準(zhǔn)備數(shù).CODESTART: MOV AX,DATAMOV DS,AX MOV BX,CNTMOV CX,16AGN: SHL BX,1JC NEXTDPLY0LOOP AGNNEXT: DPLY1LOOP AGNMOV AX,4C00HINT 21HEND START4.26答:.MO

57、DEL SMALL.DATASTRG DB ;準(zhǔn)備字符串.CODESTART: MOV AX,DATAMOV DS,AX LEA SI,STRGMOV CX,100AGN: MOV AL,SICMP AL,61HJB N1CMP AL,7AHJA N1SUB AL,20HN1: INC SILOOP AGNMOV AX,4C00HINT 21H4.27答:DISPLAY MACRO ;將BL中的數(shù)以十進制顯示MOV AL,BL;百位MOV AH,0MOV BH,100DIV BHMOV BL,AH;保留余數(shù)CMP AL,1JNZ NOMOV DL,31HMOV AH,2INT 21HNO: M

58、OV AL,BL;十位MOV AH,0MOV BH,10 DIV BHMOV BL,AH;保留余數(shù)MOV DL,ALADD DL,30HMOV AH,2INT 21HMOV DL,BL;個位ADD DL,30HMOV AH,2INT 21H ENDM.MODEL SMALL.DATADAT DB ;準(zhǔn)備100無符號字?jǐn)?shù)據(jù).CODESTART: MOV AX,DATAMOV DS,AXLEA SI,DATMOV CX,100CALL TONGJIDISPLAYMOV AX,4C00HINT 21HTONGJI PROC;統(tǒng)計起始地址為SI,長度為CX內(nèi)存中的奇數(shù)個數(shù),結(jié)果放在BLMOV BL,0

59、AGN: MOV AL,SITEST AL,01HJZ NEXTINC BLNEXT: INC SILOOP AGNRETTONGJI ENDPEND START4.28答:學(xué)習(xí)條件匯編的使用。MOV AL,DATBMOV BL,SCAlEIFE SIGNMOV AH,0DIV BLENDIFIF SIGNCBWIDIV BLENDIFMOV RESULT,AL;商MOV RESULT+1,AH;余數(shù) 第五章 課后習(xí)題5.1、選擇題(1)EPROM 雖然是只讀存儲器,但在編程時可向內(nèi)部寫入數(shù)據(jù)。()A.正確B.不正確(2)連接到64000h6FFFFh地址范圍上的存儲器是用8k8 RAM芯片構(gòu)

60、成的,該芯片要( )片。A.8片B.6片C.10片D.12片(3)RAM 6116芯片有2K8位的容量,它的片內(nèi)地址選擇線和數(shù)據(jù)線分別是()A.A0A15和D0D15 B.A0A10和D0D7C.A0A11和D0D7 D.A0A11和D0D15(4)對存儲器訪問時,地址線有效和數(shù)據(jù)線有效的時間關(guān)系應(yīng)該是( )A.數(shù)據(jù)線較先有效B.二者同時有效C.地址線較先有效D.同時高電平(5)一臺微型機,其存儲器首地址為2000H,末地址為5FFFH,存儲容量為()KB。 A. 8 B. 10 C. 12 D.16(6)下列哪一種存儲器存取速度最快()?A.SRAM B.磁盤C.DRAM D.EPROM (

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論