微機原理與接口技術(shù) 顧暉 習(xí)題參考答案.doc
《微機原理與接口技術(shù) 顧暉 習(xí)題參考答案.doc》由會員分享,可在線閱讀,更多相關(guān)《微機原理與接口技術(shù) 顧暉 習(xí)題參考答案.doc(42頁珍藏版)》請在裝配圖網(wǎng)上搜索。
微機原理與接口技術(shù) 答案 目錄 第1章 習(xí)題答案 1 第2章 習(xí)題答案 2 第3章 習(xí)題答案 4 第4章 習(xí)題答案 7 第5章 習(xí)題答案 19 第6章 習(xí)題答案 28 第7章 習(xí)題答案 29 第8章 習(xí)題答案 29 第9章 習(xí)題答案 32 第10章 習(xí)題答案 37 第11章 習(xí)題答案 39 第1章 習(xí)題答案 1.計算機硬件的基本組成部分有哪些?簡述各部分的功能 答: 計算機硬件的基本組成部分有:運算器、控制器、存儲器、輸入設(shè)備和輸出設(shè)備五大組成部分; 運算器功能:完成各種算術(shù)運算或邏輯運算; 控制器功能:發(fā)出各種控制信息,使計算機各部件協(xié)調(diào)工作; 存儲器功能:存儲程序和數(shù)據(jù); 輸入設(shè)備:將程序和數(shù)據(jù)輸入的部件; 輸出設(shè)備:將結(jié)果數(shù)據(jù)輸出的部件。 2.簡述微型計算機系統(tǒng)的組成。4分 答: 以微型計算機為核心,配以鼠標(biāo)、鍵盤等外圍設(shè)備、電源、接口電路,以及控制計算機工作的軟件構(gòu)成微型計算機系統(tǒng)。 3.簡述總線控制邏輯的任務(wù)。 答: 主板與外部設(shè)備之間的數(shù)據(jù)傳輸必須通過系統(tǒng)總線,所以系統(tǒng)總線包含的信號線必須滿足下列各種輸入/輸出操作的需要:① 訪問分布于主板之外的存儲器;② 訪問I/O接口;③ 適應(yīng)外部中斷方式;④ 適應(yīng)存儲器直接與外部設(shè)備交換信息??偩€控制邏輯的任務(wù)就是產(chǎn)生和接受這些操作所需要的信號。 4.簡述馮·諾依曼的“程序存儲和程序控制”原理。 答: 計算機有運算器、控制器、存儲器、輸入設(shè)備和輸出設(shè)備五大部分組成,計算機內(nèi)部采用二進制數(shù)據(jù)的格式表示數(shù)據(jù)和指令。程序?qū)⑹孪缺4嬖趦?nèi)存儲器中,計算機在工作時,不需要操作人員干預(yù),自動逐條取出指令并執(zhí)行。 5.簡述微型計算機系統(tǒng)的啟動過程。4分 答: CPU首先執(zhí)行主板上BIOS中的自檢程序;執(zhí)行引導(dǎo)裝入程序,依次搜尋硬盤、光盤等;讀出引導(dǎo)記錄,裝入引導(dǎo)程序;由引導(dǎo)程序?qū)⒉僮飨到y(tǒng)裝入內(nèi)存;執(zhí)行操作系統(tǒng)。 6. BIOS是什么?簡述系統(tǒng)BIOS代碼完成的工作。 答: BIOS是Basic Input Output System的縮寫,指的是基本輸入輸出系統(tǒng)"。它是一組固化到計算機ROM芯片上的程序,保存著計算機最重要的基本輸入輸出的程序、系統(tǒng)設(shè)置信息、開機后自檢程序和系統(tǒng)自啟動程序。 7.答:略。 2 第2章 習(xí)題答案 1.答: 為了區(qū)別所使用的數(shù)制,一般用以下兩種書寫格式表示: ① 用括號將數(shù)字括起,后面加數(shù)制區(qū)分,數(shù)制用下標(biāo)的形式給出; ② 用后綴區(qū)分,二進制數(shù)、十進制數(shù)、八進制數(shù)、十六進制數(shù)的后綴分別為字母B(或b)、D(或d)、O(或o)或Q(或q)、H(或h)。 例如:十六進制數(shù)56.78可以表示成(56.78)16或56.78H; 十進制數(shù)56.78可以表示成(56.78)10或56.78D。 2.答: 123D采用十進制,0AFH采用十六進制,77Q采用八進制,1001110B采用二進制。 3.答: 字長為8位的二進制數(shù)原碼表示的最大值:127,最小值:-127;補碼表示的最大值:127,最小值:-128。 字長為16位的二進制數(shù)原碼表示的最大值:32767,最小值:-32767;補碼表示的最大值:32767,最小值:-32768。 4.把下列十進制數(shù)分別轉(zhuǎn)換為二進制數(shù)和十六進制數(shù)。2分 1)125 2)255 3)72 4)5090 答: (1)125D=0111 1101B=7DH (2) 255D=1111 1111B=FFH (3)72D=0100 1000B=48H (4)5090D=0001 0011 1110 0010B=13E2H 5.答: (1)1111 0000B=240D=F0H (2) 1000 0000 B =128D =80H (3)1111 1111 B =255 D =FFH (4)0101 0101B=85D=55H 6.答: (1)FFH=255D=1111 1111B (2) ABCDH=43981D=1010 1011 1100 1101B (3) 123H=291D=0000 0001 0010 0011B (4) FFFFH=65535D=1111 1111 1111 1111B 7.答: (1)8位時(16)原=0001 0000 ; (16)補=0001 0000; 16位時(16)原=0000 0000 0001 0000 ; (16)補=0000 0000 0001 0000; (2) 8位時(-16)原=1001 0000 ; (-16)補=1111 0000; 16位時(-16)原=1000 0000 0001 0000 ; (-16)補=1111 1111 1111 0000; (3) 8位時(+0)原=0000 0000; (+0)補=0000 0000; 16位時(+0)原=0000 0000 0000 0000; (+0)補=0000 0000 0000 0000; 3 (4) 8位時(-0)原=1000 0000 ; (-0)補=0000 0000; 16位時(-0)原=1000 0000 0000 0000; (-0)補=0000 0000 0000 0000; (5) 8位時(127)原=0111 1111; (127)補=0111 1111; 16位時(127)原=0000 0000 0111 1111; (127)補=0000 0000 0111 1111; (6) 8位時-128超過原碼表示的范圍; (-128)補=1000 0000; 16位時(-128)原=1000 0000 1000 0000; (-128)補=1111 1111 1000 0000; (7) 8位時(121)原=0111 1001 ; (121)補=0111 1001; 16位時(121)原=0000 0000 0111 1001; (121)補=0000 0000 0111 1001; (8) 8位時(-9)原=1000 1001 ; (-9)補=1111 0111; 16位時(-9)原=1000 0000 0000 1001; (-9)補=1111 1111 1111 0111; 8.實現(xiàn)下列轉(zhuǎn)換 2分 1)[X]原=10111110,求[X]補 2)[X]補=11110011,求[-X]補 3)[X]補=10111110,求[X]原 4)[X]補=10111110,求[X]反 答: (1) [x]補=1100 0010;(2)[-x]補=0000 1101;(3)[x]原=1100 0010;(4)[x]反=1011 1101。 9.答: (1)A>B;(2)A<B 10.答: (1)溢出;(2)13H;(3)溢出;(4)EDH;(5)EDH。 11.完成下列8位二進制數(shù)的邏輯運算 1分 1)11001100∧10101010 2)11001100∨10101010 3)1100110010101010 4)10101100∧10101100 5)10101100 10101100 6)10101100∨10101100 7)~10101100 答: (1)1000 1000;(2)1110 1110;(3)0110 0110;(4)1010 1100; (5)0000 0000;(6)1010 1100;(7)=0101 0011。 12.答: (1)30H=48,字符為‘0’;(2)39H=57,字符為‘9’;(3)42H=66,字符為‘B’; (4)62H=98,字符為‘b’;(5)20H=32,字符為空格;(6)7H=7,字符為報警符; 13、答: 十進制 49 123 7 62 壓縮BCD碼 0100 1001B 0001 0010 0011B 0000 0111B 0110 0010B 非壓縮BCD碼 0000 0100 0000 1001B 0000 0001 0000 0010 0000 0011B 0000 0111B 0000 0110 0000 0010B ASCII碼 3439H 313233H 37H 3632H 4 第3章 習(xí)題答案 1.(1)答: 物理地址:物理地址(PA)是20位無符號二進制數(shù),是CPU訪問存儲器的實際地址。每個存儲單元對應(yīng)一個物理地址。8086存儲空間的物理地址范圍是:00000H~FFFFFH。 邏輯地址:采用分段結(jié)構(gòu)的存儲器中,把通過段地址和偏移地址來表示的存儲單元的地址稱為邏輯地址,記為:段地址:偏移地址。 段地址:8086規(guī)定各邏輯段從節(jié)的整數(shù)邊界開始,即段首地址二進制值的低4位是0000,把段首地址的高16位稱為段基址或段地址。 偏移地址:把某一存儲單元相對于段地址的段內(nèi)偏移量稱為偏移地址(也稱有效地址EA)。段地址和偏移地址都是是16位無符號二進制數(shù)。 (2)答: 時鐘周期:計算機的“時鐘”是由振蕩源產(chǎn)生的、幅度和周期不變的節(jié)拍脈沖,每個脈沖周期稱為時鐘周期,又稱為T狀態(tài)或T周期,時鐘周期是微機系統(tǒng)工作的最小時間單元。 總線周期:當(dāng)CPU訪問存儲器或輸入/輸出端口時,需要通過總線進行讀或?qū)懖僮?,這個過程稱為總線周期(Bus Cycle)??偩€周期是利用總線完成一次讀/寫所需要的時間。 指令周期:執(zhí)行一條指令所需要的時間稱為指令周期(Instruction Cycle)。指令周期由1個或多個總線周期組成。 解釋下邊名詞:(3)最小模式、最大模式 1分 答: 最小模式:也稱為單處理器模式,是指系統(tǒng)中只有一片8086微處理器,所連接的存儲器容量不大、片子不多,所要連接的I/O端口也不多,系統(tǒng)的控制總線就直接由CPU的控制線供給,從而使得系統(tǒng)中的總線控制電路減到最少。最小模式適用于較小規(guī)模的系統(tǒng)。 最大模式:相對于最小模式而言,適用于中、大型規(guī)模的系統(tǒng)。系統(tǒng)中有多個微處理器,其中一個是主處理器8086,其他的處理器稱為協(xié)處理器,承擔(dān)某方面專門的工作。需要增加一片8288來對8086CPU發(fā)出的控制信號進行變換和組合,以得到對存儲器或I/O端口的讀/寫信號和對鎖存器、總線收發(fā)器的控制信號。 2.答: EU:負(fù)責(zé)指令的執(zhí)行,即從總線接口部件BIU的指令隊列取指令,指令執(zhí)行后向BIU送回運算結(jié)果,同時把運算結(jié)果的狀態(tài)特征保存到標(biāo)志寄存器中。 BIU:負(fù)責(zé)CPU與存儲器、I/O設(shè)備之間的數(shù)據(jù)傳送。BIU完成以下操作:取指令送給指令隊列、配合執(zhí)行部件從指定的內(nèi)存單元或者外設(shè)端口中取數(shù)據(jù)、將數(shù)據(jù)傳送給執(zhí)行部件或者把執(zhí)行部件的操作結(jié)果傳送到指定的內(nèi)存單元或外設(shè)端口中。 8086的BIU和EU在很多時候可以并行工作,使得取指令、指令譯碼和執(zhí)行指令這些操作構(gòu)成操作流水線。 ① 當(dāng)指令隊列中有兩個空字節(jié),且EU沒有訪問存儲器和I/O接口的要求時,BIU會自動把指令取到指令隊列中。 ② 當(dāng)EU準(zhǔn)備執(zhí)行一條指令時,它會從指令隊列前部取出指令執(zhí)行。在執(zhí)行指令的過程中,如果需要訪問存儲器或者I/O設(shè)備,那么EU會向BIU發(fā)出訪問總線的請求,以完成訪問存儲器或者I/O接口的操作。如果此時BIU正好處于空閑狀態(tài),那么,會立即響應(yīng)EU的總線請求;但如果BIU正在將某個指令字節(jié)取到指令隊列中,那么,BIU將首先完成這個取指令操作,然后再去響應(yīng)EU發(fā)出的訪問總線的請求。 ③ 當(dāng)指令隊列已滿,而且EU又沒有總線訪問時,BIU便進入空閑狀態(tài)。 5 ④ 在執(zhí)行轉(zhuǎn)移指令、調(diào)用指令和返回指令時,下面要執(zhí)行的指令就不是在程序中緊接 著的那條指令了,而BIU 往指令隊列裝入指令時,總是按順序進行的。在這種情況下,指 令隊列中已經(jīng)裝入的指令就沒有用了,會被自動消除。隨后,BIU 會往指令隊列中裝入另一 個程序段中的指令。 3.答: 地址信號是CPU 發(fā)送給內(nèi)存或I/O 設(shè)備的,所以地址線是單向的; 數(shù)據(jù)信號可以從CPU 發(fā)送給內(nèi)存或I/O 設(shè)備,也可以從內(nèi)存或I/O 設(shè)備發(fā)送給CPU, 故而數(shù)據(jù)線是雙向的。 4.答: 8086CPU 中有14 個寄存器。它們是:4 個16 位的通用寄存器:AX、BX、CX、DX 和 8 個8 位的通用寄存器:AH、AL、BH、BL、CH、CL、DH、DL;指針和變址寄存器SP、 BP、 SI、DI;4 個16 位的段寄存器CS、DS、SS 和ES;標(biāo)志寄存器FR;指令指針寄存器 IP。 功能略。 5.將十六進制數(shù)5678H和以下各數(shù)相加,試求叫法運算的結(jié)果及進算后標(biāo)志寄存器中6個狀態(tài)標(biāo)志的值,用十六進制數(shù)表示運算結(jié)果。 2分 1)7834H 2)1234H 3)8765H 答: (1)加法運算的結(jié)果為:CEACH;CF=0,PF=1,AF=0,ZF=0,SF=1,OF=1; (2)加法運算的結(jié)果為:68ACH;CF=0,PF=1,AF=0,ZF=0,SF=0,OF=0; (3)加法運算的結(jié)果為:DDDDH;CF=0,PF=1,AF=0,ZF=0,SF=1,OF=0。 6.8086CPU可尋址的存儲器地址范圍是多少?可尋址的I/O端口地址范圍是多少?2分 答: 8086CPU 可尋址的存儲器地址范圍是00000H~FFFFFH; 可尋址的I/O 端口地址范圍是0000H~FFFFH。 7.答: 由于8086CPU 提供20 位地址,但8086 中可用來存放地址的寄存器,如IP、SP、BX、 SI 等都是16 位的,只能直接尋址64KB。為了尋址1MB 存儲空間,8086CPU 采用了典型的 存儲器分段技術(shù),即將整個存儲器空間分為許多邏輯段,每個邏輯段的容量小于或等于64KB。 分段后,對存儲器的尋址操作不再直接用20 位的物理地址,而是采用段地址加段內(nèi)偏移地 址的二級尋址方式。 8.答: 將AH的內(nèi)容送存儲單元的操作過程中:M / IO =1,WR = 0,RD =1,DT / R =1; 將I/O 端口的內(nèi)容送AL的操作過程中:M / IO = 0,WR =1,RD = 0,DT / R = 0。 9.答: BHE A0 有效的數(shù)據(jù)引腳 操 作 0 0 AD15~AD0(一個總線周期同時訪問奇體和偶 體,從奇地址單元讀/寫字?jǐn)?shù)據(jù)的高8 位,從偶地 址單元讀/寫字?jǐn)?shù)據(jù)的低8 位) 從偶地址讀/寫一個 字 6 1 0 AD7~AD0 從偶地址讀/寫一個 字節(jié) 0 1 AD15~AD8 從奇地址讀/寫一個 字節(jié) 0 1 1 0 AD15~AD8(第一個總線周期從奇字?jǐn)?shù)據(jù)的低8 位) AD7~AD0(第二個總線周期從偶地址單元讀/寫 字?jǐn)?shù)據(jù)的高8 位) 從奇地址讀/寫一個 字 10.簡述8086系統(tǒng)復(fù)位后各寄存器的狀態(tài)。 2分 答: 8086 系統(tǒng)復(fù)位后,指令指針(IP)為0000H;CS 寄存器為FFFFH,其他寄存器為0000H; 指令隊列清空。 11. 簡述8086系統(tǒng)中為什么一定要有地址鎖存器?需要所存哪些信息? 2分 答: 8086 的A19/S6~A16/S3 和AD15~AD0 是復(fù)用信號,需要地址鎖存器將地址信息保存 起來,為外接存儲器或外設(shè)提供地址信息。 需要鎖存的信號是:地址信號及BHE 信號。 12.8086CPU基本的總線周期包括幾個時鐘周期? 1分 答: 8086CPU 一個基本的總線周期包含4 個時鐘周期:T1、T2、T3 和T4 。 在T1 狀態(tài),M/ IO有效,指示CPU 訪問的是存儲器還是外設(shè),之后CPU 往多路復(fù)用 總線上發(fā)出地址信息,以指出要尋址的存儲單元或外設(shè)端口的地址。在T1 狀態(tài),CPU 還必 須在ALE 引腳上輸出一個正脈沖作為地址鎖存信號。BHE信號也在T1 狀態(tài)送出,它用來 表示數(shù)據(jù)傳送的字寬。 在T2 狀態(tài),CPU 從總線上撤銷地址,使總線的低16 位浮空,置成高阻狀態(tài),為傳輸 數(shù)據(jù)作準(zhǔn)備。總線的最高4 位(A19~A16)用來輸出本總線周期的狀態(tài)信息。讀信號RD或 寫信號WR在T2 狀態(tài)變?yōu)橛行В甘綜PU 將進行哪種操作(讀或?qū)懀? 在T3 狀態(tài),多路總線的高4 位繼續(xù)提供狀態(tài)信息,而多路總線的低16 位上出現(xiàn)由CPU 讀出的數(shù)據(jù)或者CPU 從存儲器或端口寫入的數(shù)據(jù)。 在T4 狀態(tài)和前一個狀態(tài)的交界處,CPU 對數(shù)據(jù)總線進行采樣,獲得數(shù)據(jù),總線周期結(jié) 束。 13.什么情況下需要插入TW周期?應(yīng)該插入多少個TW取決于什么因素? 2分 答: 在有些情況下,外設(shè)或存儲器速度較慢,不能及時地配合CPU 傳送數(shù)據(jù)。這時,外設(shè) 或存儲器會通過“READY”信號線在T3 狀態(tài)啟動之前向CPU 發(fā)一個“數(shù)據(jù)未準(zhǔn)備好”信 號,于是CPU 會在T3 之后插入1 個或多個附加的時鐘周期TW。取決與外設(shè)或存儲器速度。 14.答: 兩種操作時序的不同之處發(fā)生在T1 和T2 狀態(tài)。 ① 在T1狀態(tài),讀周期:DT/R應(yīng)輸出低電平;寫周期:DT/R應(yīng)輸出高電平。 ② 在T2 狀態(tài),讀周期:RD有效,而WR無效,AD15~AD0 為高阻態(tài);寫周期:RD 變?yōu)闊o效,而寫信號WR變?yōu)橛行В珹D15~AD0 在地址撤銷之后立即送出要寫入存儲器或 外設(shè)端口的數(shù)據(jù)。 7 15.答: 在最小模式下,讀信號RD、ALE 和DT/R、DEN等信號直接由CPU 給出; 在最大模式下,總線控制器8288 根據(jù) 2 1 S ,S 和 0 S 狀態(tài)信號產(chǎn)生讀信號MRDC和IORC, ALE 和DT/R、DEN 也是由8288 發(fā)出的,而且DEN 信號的極性與CPU 在最小模式下發(fā) 出的DEN信號正好相反。 8 第4章 習(xí)題答案 1.什么叫尋址方式?8086CPU支持哪幾種尋址方式? 2分 答: 指令中關(guān)于如何求出操作數(shù)有效地址的方法稱為尋址方式。 8086CPU支持多種尋址方式,根據(jù)操作數(shù)的類型及來源大致分為3類:數(shù)據(jù)尋址、轉(zhuǎn)移地址尋址和I/O尋址。 2.答: 8086匯編指令可以采用7種基本的數(shù)據(jù)尋址方式:①立即尋址;②寄存器尋址;③直接尋址;④寄存器間接尋址;⑤寄存器相對尋址;⑥基址變址尋址;⑦相對基址變址尋址。 與存儲器尋址方式(后5種)相比,寄存器尋址方式最快。 3.內(nèi)存尋址方式中,一般只指出操作數(shù)的偏移地址,那么,段地址如何確定?如果要用某個段寄存器指出段地址,指令中應(yīng)該如何表示? 2分 答: 如果指令中沒有用前綴說明操作數(shù)存放在哪個段,則操作數(shù)默認(rèn)存放在數(shù)據(jù)段。 8086系統(tǒng)允許操作數(shù)存放在代碼段、堆棧段或附加段。此時,就需要在指令中利用前綴指明段超越。例如: MOV ES:[1225H],AX 4.在8086系統(tǒng)中,設(shè)DS=1000H,ES=2000H,SS=1200H,BX=0300H,SI=0200H,BP=0100H,VAR的偏移量為0600H,請指出下列指令的目標(biāo)操作數(shù)的尋址方式,若目標(biāo)操作數(shù)為存儲器操作數(shù),請計算它們的物理地址是多少? 2分 1)MOV BX,12 2)MOV [BX],12 3)MOV ES:[SI],AX 4)MOV VAR,8 5)MOV [BX][SI],AX 6)MOV 6[BP][SI],AL 7)MOV [100H],DX 8)MOV 6[BX],CX 9)MOV VAR+5,AX 答: (1)寄存器尋址方式 (2)寄存器間接尋址方式,PA=10300H (3)寄存器間接尋址方式,PA=20200H (4)直接尋址方式,PA=10060H (5)基址變址尋址方式,PA=10500H (6)相對基址變址尋址方式,PA=12300H (7)直接尋址方式,PA=11000H (8)__________寄存器相對尋址方式,PA=10306H (9)直接尋址方式,PA=10065H 5.判斷指令對錯。如果是錯誤的,請說明原因答。 2分 1)XCHG CS,AX × 2)MOV [BX],[1000H] × 3)XCHG BX,IP × 4)PUSH CS √ 5)POP CS × 6)IN BX,DX √ 7)MOV BYTE[BX],1000 × 8)MOV CS,[1000H] × 9)MOV BX,OFFSET VAR[SI] √ 10)MOV AX,[SI][DI] × 11)MOV COUNT[BX][SI],ES:AX × 6.試述以下指令的區(qū)別。 2分 1)MOV AX,3000H 與 MOV AX,[3000H] 2)MOV AX,MEM 與 MOV AX,OFFSET MEM 3)MOV AX,MEM 與 LEA AX,MEM 4)JMP SHORT L1 與 JMP NEAR PTR L1 5)CMP DX,CX 與 SUB DX,CX 6)MOV [BP][SI],CL 與 MOV DS:[BP][SI],CL 答: (1)源操作數(shù)的尋址方式不同。MOV AX,3000H指令的源操作數(shù)采用的是立即數(shù)尋址方式,MOV AX,[3000H]指令的源操作數(shù)采用的是直接尋址方式。 (2)指令執(zhí)行后,AX的值不同。MOV AX,MEM指令執(zhí)行后,AX得到的是MEM單元的內(nèi)容,而MOV AX,OFFSET MEM指令執(zhí)行后,AX得到的是MEM單元的地址。 (3)指令不同。MOV AX,MEMMOV AX,MEM指令執(zhí)行后,AX得到的是MEM單元的內(nèi)容,而LEA AX,MEM指令執(zhí)行后,AX得到的是MEM單元的地址。 (4)轉(zhuǎn)移的類型不同。JMP SHORT L1指令實現(xiàn)的是段內(nèi)轉(zhuǎn)移,而JMP NEAR PTR L1指令實現(xiàn)的是段間轉(zhuǎn)移。 (5)指令的執(zhí)行結(jié)果不同。CMP DX,CX指令執(zhí)行后,DX的值不變,而SUB DX,CX指令執(zhí)行后,DX的值是兩寄存器值的差。 (6)操作數(shù)所在段不同。MOV [BP][SI],CL指令訪問的是堆棧段的存儲單元,而MOV DS:[BP][SI],CL指令訪問的是數(shù)據(jù)段的存儲單元。 7.答: (1)MOV BYTE PTR [BP],200指令執(zhí)行后,(58200H)=200H (2)MOV WORD PTR [BX],2000指令執(zhí)行后,(22400H)=2000H 8.答: 當(dāng)前棧頂?shù)刂肥牵篎E00H:2010H; 執(zhí)行PUSH BX指令后,棧頂?shù)刂纷優(yōu)椋篎E00H:200EH,棧頂2字節(jié)內(nèi)容是:3457H。 9.答: (1)(DX)=3C62H,CF=1 (2)(DX)=03C6H,CF=0 (3)(DX)=18A0H,CF=1 (4)(DX)=2BC6H,CF=0 (5)(DX)=18B7H,CF=1 (6)(DX)=BCC5H,CF=0 10.答: (AX) CF ZF OF SF PF (1) 134EH 0 0 0 0 1 (2) 0821H 0 0 0 0 1 (3) F142H 1 0 0 1 1 (4) 0A69 1 0 0 1 1 (5) F596 - - - - - (6) 0A69 0 0 0 0 1 11.設(shè)AX和BX是符號數(shù),CX和DX是無符號數(shù),若轉(zhuǎn)移目標(biāo)指令的標(biāo)號是NEXT,請分別為下列各項確定CMP和條件轉(zhuǎn)移指令。 5分 1)CX值超過DX轉(zhuǎn)移 2)AX值未超過BX轉(zhuǎn)移 3)DX為0轉(zhuǎn)移 4)CX值等于小于DX轉(zhuǎn)移 答: (1) CMP CX,DX JA NEXT (2)CMP AX,BX JNA NEXT (3)CMP DX,0 JZ NEXT (4)CMP CX,DX JBE NEXT 12.閱讀分析下列指令序列 ADD AX,BX JNO L1 JNC L2 SUB AX,BX JNC L3 JNO L4 JMP L5 若AX和BX的初值分別為以下5種情況,則執(zhí)行該指令序列后,程序?qū)⒎謩e轉(zhuǎn)向何處(L1-L5中的哪一個)? 1)AX=14C6H, BX=80DCH 2)AX=0B568H,BX=54B7H 3)AX=42C8H, BX=608DH 4)AX=0D023H,BX=9FD0H 5)AX=9FD0H, BX=0D023H 答: (1) 程序轉(zhuǎn)向L1。 (2) 程序轉(zhuǎn)向L1。 (3) 程序轉(zhuǎn)向L2。 (4) 程序轉(zhuǎn)向L5。 (5) 程序轉(zhuǎn)向L5。 13.答: 因為普通運算指令執(zhí)行的是二進制數(shù)的運算,而BCD碼是十進制數(shù),所以,需要對運算結(jié)果進行十進制調(diào)整。 在做BCD碼的加、減和乘法運算時,十進制調(diào)整指令放在運算指令之后;而作BCD碼的除法運算時,在運算指令之前用十進制調(diào)整指令對被除數(shù)進行調(diào)整。 14.答: MOV Cl,3 10 SHR bx,cl 15.答:(略) 16.答: 17.答: DATA SEGMENT COUNT=100H ORG 1000H D_DATA DB COUNT DUP(?) ORG 2170H S_DATA DB COUNT/5 DUP(1,2,3,4,5) DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,ES:DATA START: MOV AX,DATA MOV DS,AX MOV ES,AX LEA SI,S_DATA LEA DI,D_DATA MOV CX,COUNT REP MOVSB MOV AL,1 MOV CX,COUNT LEA DI,D_DATA AGAIN: CMP BYTE PTR [DI],AL JNZ NEXT MOV BYTE PTR [DI],' ' NEXT: INC DI LOOP AGAIN EXIT: MOV AH,4CH INT 21H CODE ENDS END START 11 18. 答: 19. 答: CODE SEGMENT ASSUME CS:CODE START: MOV AX,5678H MOV DX,1234H NOT AX NOT DX ADD AX,1 ADC DX,0 EXIT: MOV AH,4CH INT 21H CODE ENDS END START ;本程序未考慮溢出的情況。 DATA SEGMENT A1 DW 5050H A2 DW ? ;存A1的反碼 A3 DW ? ;存A1的補碼 DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV AX,A1 NOT AX MOV A2,AX INC AX MOV A3,AX EXIT: MOV AH,4CH INT 21H CODE ENDS END START 12 20. 答: 21. 答: DATA SEGMENT ;AT 5000H ORG 3481H DAT DB 12H DB ?,?,? DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV AL,DAT NEG AL MOV DAT+1,AL MOV AL,DAT XOR AL,00001111B MOV DAT+2,AL MOV AL,DAT OR AL,11110000B MOV DAT+3,AL EXIT: MOV AH,4CH INT 21H CODE ENDS END START COUNT=1000 DATA SEGMENT ORG 1000H DAT DB 10 DUP (12H,-5,-3,0,-128,56H,98H,4,128,200) ORG 2000H MINDAT DB ? DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX LEA SI,DAT MOV CX,COUNT DEC CX MOV AL,[SI] NEXT: INC SI CMP AL,[SI] JLE ISMIN MOV AL,[SI] ISMIN: LOOP NEXT MOV MINDAT,AL EXIT: MOV AH,4CH INT 21H CODE ENDS END START 13 22. 答: DATA SEGMENT STRING1 DB 'hELLO!' COUNT1=$-STRING1 STRING2 DB 'hEL1O!' COUNT2=$-STRING2 IM DB 'MATCH$' NM DB 'NOT MATCH$' DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX LEA SI,STRING1 LEA DI,STRING2 MOV CX,COUNT1 MOV BX,COUNT2 CMP CX,BX JNZ DISPNOTMATCH NEXT: MOV AL,[SI] MOV AH,[DI] CMP AL,AH JNZ DISPNOTMATCH INC SI INC DI LOOP NEXT ISMATCH: MOV DX,OFFSET IM MOV AH,9 INT 21H JMP EXIT DISPNOTMATCH: MOV DX,OFFSET NM MOV AH,9 INT 21H EXIT: MOV AH,4CH INT 21H CODE ENDS END START 14 23. 答: 24. 答: DSEG SEGMENT DATA DB 5,6,7,8 DW ? DATA2 DB 1,10,100,20 DSEG ENDS CODE SEGMENT ASSUME CS:CODE,DS:DSEG START: MOV AX,DSEG MOV DS,AX MOV DX,0 MOV CX,4 LEA SI,DATA LEA DI,DATA2 NEXT: MOV AL,[DI] MOV BL,[SI] CALL DOMUL ADD DX,AX INC DI INC SI LOOP NEXT MOV WORD PTR DATA+4,DX EXIT: MOV AH,4CH INT 21H DOMUL PROC MUL BL RET DOMUL ENDP CODE ENDS END START MOV CX,100 MOV AX,SEG LIST MOV DS,AX MOV AX,SEG BLK MOV ES,AX LEA SI,LIST ADD SI,CX LEA DI,BLK ADD DI,CX STD REP MOVSB 15 25. 答: JMP SHORT LAB指令是一條雙字節(jié)指令。這條指令取出后,(IP)=0102H,轉(zhuǎn)移目標(biāo)的偏移地址=(IP)+位移量。所以,轉(zhuǎn)移目標(biāo)的物理地址=(CS)╳16+(IP)+位移量。 (1)轉(zhuǎn)移目標(biāo)的物理地址=(CS)╳16+0158H (2)轉(zhuǎn)移目標(biāo)的物理地址=(CS)╳16+0182H (3)轉(zhuǎn)移目標(biāo)的物理地址=(CS)╳16+017AH (4)轉(zhuǎn)移目標(biāo)的物理地址=(CS)╳16+01E2H 26. 答: DSEG SEGMENT BUFFER DW 8 DB '12345678' DSEG ENDS CODE SEGMENT ASSUME CS:CODE,DS:DSEG START: MOV AX,DSEG MOV DS,AX MOV CX,BUFFER SAR CX,1 LEA SI,BUFFER MOV DI,SI ADD DI,2 AGAIN: ADD SI,2 MOV AL,[SI] AND AL,0FH SAL BYTE PTR [SI+1],1 SAL BYTE PTR [SI+1],1 SAL BYTE PTR [SI+1],1 SAL BYTE PTR [SI+1],1 OR AL,BYTE PTR [SI+1] MOV [DI],AL INC DI LOOP AGAIN EXIT: MOV AH,4CH INT 21H CODE ENDS END START DSEG SEGMENT ORG 10H DAT DB 10 DB ? DSEG ENDS CODE SEGMENT ASSUME CS:CODE,DS:DSEG START: MOV AX,DSEG MOV DS,AX MOV AL,DAT MOV BL,AL SAL BL,1 ADD AL,BL MOV CL,2 SAL BL,CL ADD AL,BL MOV DAT+1,AL EXIT: MOV AH,4CH INT 21H CODE ENDS END START 16 27. 答: 28. 答: 29. 答: DSEG SEGMENT ORG 10H DAT DB 10H,20H DB ?,? DSEG ENDS CODE SEGMENT ASSUME CS:CODE,DS:DSEG START: MOV AX,DSEG MOV DS,AX MOV AL,DAT MOV AH,DAT+1 MOV CL,3 SAR AX,CL MOV DAT+2,AL MOV DAT+3,AH EXIT: MOV AH,4CH INT 21H CODE ENDS END START DSEG SEGMENT BLOCK DW 8 DUP (10H,20H,-3,-9) DSEG ENDS CODE SEGMENT ASSUME CS:CODE,DS:DSEG START: MOV AX,DSEG MOV DS,AX LEA SI,BLOCK MOV CX,32 AGAIN: MOV AX,[SI] CMP AX,0 JNS NEXT NEG AX MOV [SI],AX NEXT: INC SI INC SI LOOP AGAIN EXIT: MOV AH,4CH INT 21H CODE ENDS END START 17 DSEG SEGMENT ORG 3030H DAT DW 1234H,-1234H,?,? DSEG ENDS CODE SEGMENT ASSUME CS:CODE,DS:DSEG START: MOV AX,DSEG MOV DS,AX MOV AX,DAT MOV BX,DAT+2 IMUL BX MOV DAT+4,AX MOV DAT+6,DX EXIT: MOV AH,4CH INT 21H CODE ENDS END START 18 第5章 習(xí)題答案 1. 答: 標(biāo)號是指令的符號地址,可用作控制轉(zhuǎn)移指令的操作數(shù)。 標(biāo)號具有3種屬性:段屬性、偏移屬性和類型屬性。 2. 答: 變量是存儲單元的符號地址。 變量具有3種屬性:段屬性、偏移屬性和類型屬性。 3. 答: 偽指令語句,也稱指示性語句,是不可執(zhí)行語句,匯編后不產(chǎn)生目標(biāo)代碼,它僅僅在匯編過程中告訴匯編程序如何匯編源程序。 宏是一個以宏名定義的指令序列。一旦把某程序段定義成宏,則可以用宏名代替那段程序。在匯編時,要對宏進行宏展開,即把以宏名表示的地方替換為該宏對應(yīng)的指令序列的目標(biāo)代碼。宏指令可以看成指令語句的擴展,相當(dāng)于多條指令語句的集合。 4. 答: 匯編語言表達(dá)式中有如下運算符:算術(shù)操作符、邏輯操作符、移位操作符、關(guān)系操作符、數(shù)值回送操作符和屬性操作符。 操作符所完成的運算在匯編階段進行。 5. 答: 略。 6. 按下列要求,寫出各數(shù)據(jù)定義語句 2分 1)DB1為10H個重復(fù)的字節(jié)數(shù)據(jù)序列:1,2,5個3,4。 2)DB2為字符串’STUDENTS’。 3)DB3為十六進制數(shù)序列:12H,ABCDH。 4)用等值語言給符號COUNT賦值DB1數(shù)據(jù)區(qū)所占字節(jié)數(shù),該語句寫在最后。答: (1)DB1 DB 10H DUP(1,2, 5 DUP(3),4) (2)DB2 DB 'STUDENT' (3)BD3 DW 12H,0ABCDH (4)COUNT EQU DB2-DB1 7. 答: 第一個OR表示該指令是OR指令,在程序運行時,該OR操作被執(zhí)行。 第二個OR是邏輯操作符OR,在匯編時,OR運算被執(zhí)行。 8.對于下面的數(shù)據(jù)定義,各條MOV指令單獨執(zhí)行后,有關(guān)寄存器的內(nèi)容是什么? 4分 PREP DB ? TABA DW 5 DUP(?) TABB DB ‘NEXT’ TABC DD 12345678H 1)MOV AX,TYPE PREP 2)MOV AX,TYPE TABA 3)MOV CX,LENGTH TABA 4)MOV DX,SIZE TABA 5)MOV CX,LENGTH TABB 6)MOV DX,SIZE TABC 答: (1)(AX)=1 (2)(AX)=2 (3)(CX)=5 (4)(DX)=0AH (5)(CX)=1 (6)(DX)=4 9.設(shè)數(shù)據(jù)段DSEG中符號及數(shù)據(jù)定義如下,試畫出數(shù)據(jù)在內(nèi)存中的存儲示意圖。4分 DSEG SEGMENT DSP=100 SAM=DSP+20 DAB DB ‘/GOTO/’,0DH,0AH DBB DB 101B,19,’a’ .RADIX 16 CCB DB 10 DUP(?) EVEN DDW DW ‘12’,100D,333,SAM .RADIX 10 EDW DW 100 LEN EQU $-DAB DSEG ENDS 答:略。 10. 答: 19 11. 答: 12. 答: DSEG SEGMENT STRING DB 'NEXT123DF$' DSEG ENDS CODE SEGMENT ASSUME CS:CODE,DS:DSEG START: MOV AX,DSEG MOV DS,AX LEA SI,STRING MOV CX,0 AGAIN: MOV AL,[SI] CMP AL,'$' JZ NEXT INC CX INC SI JMP AGAIN NEXT: MOV DX,CX MVDAT: MOV [SI]+2,AL DEC SI MOV AL,[SI] LOOP MVDAT MOV [SI]+2,AL MOV WORD PTR [SI],DX EXIT: MOV AH,4CH INT 21H CODE ENDS END START DSEG SEGMENT STRING DB 'It is FEB&03' COUNT=$-STRING DSEG ENDS CODE SEGMENT ASSUME CS:CODE,DS:DSEG START: MOV AX,DSEG MOV DS,AX LEA SI,STRING MOV CX,COUNT AGAIN: MOV AL,[SI] CMP AL,'&' JNZ NEXT MOV AL,' ' MOV [SI],AL NEXT: INC SI LOOP AGAIN EXIT: MOV AH,4CH INT 21H CODE ENDS END START DSEG SEGMENT BLOCK DB 4,5,-2,7,8,9,2,1,0AH,1BH,87H,23H,44H,33H,45H,28H,0DH,8EH,66H,22H COUNT=$-BLOCK DSEG ENDS CODE SEGMENT ASSUME CS:CODE,DS:DSEG START: MOV AX,DSEG MOV DS,AX 20 13. 答: (3) (4)(2) (5)(1) (6) 1B50H 1000H 1A70H 150BH 上表左側(cè)的序號,表示對應(yīng)操作完成后SP指向的棧頂?shù)奈恢谩? 14.設(shè)計以下子程序: 1)將AX中的4位BCD碼轉(zhuǎn)換為二進制碼,放在AX中返回。 2)將AX中無符號二進制數(shù)(<9999D)轉(zhuǎn)換為4位BCD碼串,放在AX中返回。 3)將AX中有符號二進制數(shù)轉(zhuǎn)換為十進制數(shù)ASCII碼字符串,DX和CX返回串的偏移地址和長度。(4分)答: SUB1 PROC MOV BX,AX MOV CL,4 ROL BX,CL MOV AX,BX AND AX,000FH MOV CX,1000 MUL CX ;千位在DX,AX,有效值在AX中 PUSH AX MOV CL,4 ROL BX,CL MOV AX,BX AND AL,0FH MOV CL,100 MUL CL ;百位在AX POP CX ADD AX,CX ;千百位在AX PUSH AX MOV CL,4 ROL BX,CL MOV AX,BX AND AL,0FH MOV CL,10 MUL CL ;十位在AX POP CX ADD AX,CX ;千百十位在AX MOV CL,4 ROL BX,CL AND BX,0FH ADD AX,BX RET SUB1 ENDP SUB2 PROC MOV DX,0 MOV CX,1000 DIV CX ;千位數(shù)字在AX中 MOV BX,AX MOV CL,4 ROR BX,CL ;千位數(shù)字移至BX的高4位 MOV AX,DX MOV CL,100 DIV CL ;百位數(shù)字在AL中 OR BH,AL ;千百位置BH MOV AL,AH MOV AH,0 MOV CL,10 DIV CL ;十位數(shù)字在AL中,個位在AH中 MOV CL,4 SAL AL,CL MOV BL,AL ;十位數(shù)字置BL高4位 OR BL,AH ;十位個位置BL MOV AX,BX RET SUB2 ENDP SUB3 PROC PUSH BX MOV BX,0 LEA DI,ASCNUM CMP AX,0 JNS CHG NEG AX MOV BYTE PTR [DI],'-' JMP NEXT CHG: N5: MOV AL,AH MOV AH,0 MOV CL,10 DIV CL CMP BX,0 JNZ N6 CMP AL,0 JZ N7 MOV BX,2 15. 答: 16. 答: 17. 答:略。 18. 答:略。 CODE SEGMENT ASSUME CS:CODE START: MOV AH,1 INT 21H CMP AL,'a' JB NOCHG CMP AL,'z' JA NOCHG SUB AL,20H NOCHG: MOV DL,AL MOV AH,2 INT 21H EXIT: MOV AH,4CH INT 21H CODE ENDS END START ;鍵盤輸入的成績以逗號分割 ;輸入完畢按回車結(jié)束 DSEG SEGMENT STRING DB 40,?,40 DUP(?) CJ DB 10 DUP(?) S6 DB ? S7 DB ? S8 DB ? S9 DB ? S10 DB ? DSEG ENDS CODE SEGMENT ASSUME CS:CODE,DS:DSEG START: MOV AX,DSEG MOV DS,AX LEA DX,STRING MOV AH,10 INT 21H LEA DI,CJ LEA SI,STRING+2 MOV BH,0 MOV AL,0 AGAIN: MOV BL,[SI] CMP BL,',' JZ NEXT CMP BL,0DH JZ NEXT SUB BL,30H MOV CL,10 MUL CL ADD AL,BL INC SI JMP AGAIN NEXT: MOV [DI],AL INC DI MOV AL,0 INC BH INC SI CMP BL,0DH JNZ AGAIN TJ: LEA DI,CJ TJ1: MOV AL,[DI] CMP AL,100 JZ ADDS10 CMP AL,90 JAE ADDS9 CMP AL,80 JAE ADDS8 CMP AL,70 JAE ADDS7 CMP AL,60 JAE ADDS6 ADDS10: INC S10 JMP TJNEXT ADDS9: INC S9 JMP TJNEXT ADDS8: INC S8 JMP TJNEXT ADDS7: INC S7 JMP TJNEXT ADDS6: INC S6 TJNEXT: INC DI DEC BH JNZ TJ1 EXIT: MOV AH,4CH INT 21H CODE ENDS END START 24 19. 答: 20. 答: 21. 答: 22. 答: MOV BX,X CMP BX,Y JG SET1 JZ SET0 MOV AL,-1 JMP EXIT SET1: MOV AL,1 JMP EXIT SET0: MOV AL,0 EXIT: … LEA SI,STR1 LEA DI,STR2 MOV CX,COUNT NEXT: MOV BX,[SI] CMP BX,[DI] JNZ NOEQ INC SI INC DI LOOP NEXT MOV AX,0FFFFH JMP EXIT NOEQ: MOV AX,SI EXIT: … DATA SEGMENT LINTAB DW 12,-5,33,21,9 COUNT DW ($-LINTAB)/2 KEYBUF DW 21 ADDR DW ? DATA ENDS CODE SEGMENT- 1.請仔細(xì)閱讀文檔,確保文檔完整性,對于不預(yù)覽、不比對內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請點此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
32 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標(biāo),表示該PPT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計者僅對作品中獨創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 微機原理與接口技術(shù) 顧暉 習(xí)題參考答案 微機 原理 接口 技術(shù) 習(xí)題 參考答案
鏈接地址:http://www.hcyjhs8.com/p-1556766.html