微機原理及單片機接口技術課后題答案_1-6章__第1頁
微機原理及單片機接口技術課后題答案_1-6章__第2頁
微機原理及單片機接口技術課后題答案_1-6章__第3頁
微機原理及單片機接口技術課后題答案_1-6章__第4頁
微機原理及單片機接口技術課后題答案_1-6章__第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第1章概述一、填空題1 運算器、控制器2總線按其功能可分和 寄存器組集成在一塊芯片上,被稱作微處理器。數(shù)據總線、 地址總線和 控制總線三種不同類型的總線。3迄今為止電子計算機所共同遵循的工作原理是程序存儲和 程序控制的工作原理。這種原理又稱為馮 ·諾依曼型原理。4寫出下列原碼機器數(shù)的真值;若分別作為反碼和補碼時,其表示的真值又分別是多少?(1) ( 0110 1110) 二進制原碼 ( 110 1110) 二進制真值 ( 110) 十進制真值( 0110 1110) 二進制反碼 ( 110 1110) 二進制真值 ( 110) 十進制真值(0110 1110) 二進制補碼 ( 110

2、 1110) 二進制真值 ( 110) 十進制真值(2) ( 1011 0101) 二進制原碼 ( 011 0101) 二進制真值 ( 53) 十進制真值( 1011 0101) 二進制反碼 ( 100 1010 )二進制真值 ( 74) 十進制真值( 1011 0101) 二進制補碼 ( 100 1011) 二進制真值 ( 75) 十進制真值5寫出下列二進制數(shù)的原碼、反碼和補碼(設字長為8 位)。(1) ( 101 0110)二進制真值 (0101 0110) 原碼 (0101 0110) 反碼 (0101 0110) 補碼(2) ( 101 0110)二進制真值 (1101 0110)原碼

3、 (1010 1001) 反碼 (1010 1010) 補碼6. X 補=78H ,則 -X 補=( 88)H 。7已知 X1= +0010100 , Y1= +0100001 , X2= 0010100, Y2=0100001,試計算下列各式(設字長為8 位)。(1)X 1Y 1補 = X 1 補 Y 1補 = 0001 0100 0010 0001 = 0011 0101(2)X 1Y 2補 = X 1補 Y 2補 = 0001 0100 0010 0001 = 0011 0101(3)X 2Y 2補 = X 2補 Y 2補 = 1110 1100 0010 0001 = 0000 110

4、1(4)X 2Y 2補 = X 2 補 Y 2補 = 1110 1100 1101 1111 = 1100 10118將下列十六進制數(shù)分別轉換成二進制、八進制、十進制和BCD 數(shù)。( 1) (5D.BA) 16=( 0101,1101.1011,1010 )2( 135.564) 8( 93. 7265625) 10=( 1001,0011.0111,0010,0110,0101,0110,0010,0101 ) BCD( 2) (1001.0101,1) 2=( 9.34375) 10( 11.26) 8( 9.58) 16=( 1001.0011,0100,0011,0111,0101 )

5、 BCD9寫出下列字符的 ASCII 碼。(1)?9( 39H) ASCII 碼(2)?C( 43H) ASCII 碼(3)?$( 24H) ASCII 碼(4)?空格 ( 20H) ASCII 碼(5)?b( 62H) ASCII 碼(6)?回車 ( 0DH ) ASCII 碼(7)?換行 ( 0AH )ASCII 碼(8)?報警符 ( 07H) ASCII 碼二、選擇題1下列無符號數(shù)中最小的數(shù)是(A )。A (01A5) HB (1,1011,0101) BC (2590) DD (3764) O2下列有符號數(shù)中最大的數(shù)是(D )。A 1002HB 1001 0011 0010 1100B

6、C 2570OD 9614D3在機器數(shù)(A )中,零的表示形式是唯一的。A 補碼B原碼C補碼和反碼D原碼和反碼4 8位二進制數(shù)補碼的數(shù)值表示范圍為(A )。A.128 127B 127 127C. 129 128D 128 1285若下列字符碼( ASCII )中有奇偶校驗位,但沒有數(shù)據錯誤,采用偶校驗的字符碼是( D)。A 11001011 B 11010110 C 11000001 D 11001001 6 B9H 可以看成( ABD )。A 無符號數(shù) 185B 帶符號數(shù) 71的補碼C十進制數(shù) 99的組合 BCD 碼D 帶符號數(shù) 57的原碼三、簡答題1簡述微處理器、微計算機及微計算機系統(tǒng)三

7、個術語的內涵。答:微處理器是微計算機系統(tǒng)的核心硬件部件,它本身具有運算能力和控制功能,對系統(tǒng)的性能起決定性的影響。微處理器一般也稱為CPU;微計算機是由微處理器、存儲器、 I/O 接口電路及系統(tǒng)總線組成的裸機系統(tǒng)。微計算機系統(tǒng)是在微計算機的基礎上配上相應的外部設備和各種軟件,形成一個完整的、獨立的信息處理系統(tǒng)。三者之間是有很大不同的,微處理器是微型計算機的組成部分,而微型計算機又是微型計算機系統(tǒng)的組成部分。2什么叫總線?為什么各種微型計算機系統(tǒng)中普遍采用總線結構?答:總線是模塊與模塊之間傳送信息的一組公用信號線。總線標準的建立使得各種符合標準的模塊可以很方便地掛在總線上,使系統(tǒng)擴展和升級變得高

8、效、簡單、易行。因此微型計算機系統(tǒng)中普遍采用總線結構。3微型計算機系統(tǒng)總線從功能上分為哪三類?它們各自的功能是什么?答:微型計算機系統(tǒng)總線從功能上分為地址總線、數(shù)據總線和控制總線三類。地址總線用于指出數(shù)據的來源或去向,單向;數(shù)據總線提供了模塊間數(shù)據傳輸?shù)穆窂?,雙向;控制總線用來傳送各種控制信號或狀態(tài)信息以便更好協(xié)調各功能部件的工作。2第 2 章 微處理器及其結構一、填空題18086/8088 CPU 執(zhí)行指令中所需操作數(shù)地址由EU 計算出 16 位偏移量部分送 BIU ,由 BIU 最后形成一個20 位的內存單元物理地址。28086/8088 CPU 在總線周期的 T 1時刻,用 A 19/S

9、6A 16/S3 輸出20 位地址信息的最高 4 位,而在其他時鐘周期,則輸出狀態(tài) 信息。3 8086/8088 CPU 復位后,從0FFFF0H單元開始讀取指令字節(jié),一般這個單元在 ROM 區(qū)中,在其中設置一條跳轉 指令,使 CPU對系統(tǒng)進行初始化。48086系統(tǒng)的存儲體系結構中, 1MB 存儲體分 2個庫,每個庫的容量都是 512K字節(jié),其中和數(shù)據總線 D15 D 8相連的庫全部由奇地址 單元組成,稱為高位字節(jié)庫,并用 BHE 作為此庫的選通信號。58086/8088系統(tǒng)中,可以有 64K個段起始地址,任意相鄰的兩個段起始地址相距 16 個存儲單元。6用段基值及偏移量來指明內存單元地址的方

10、式稱為邏輯地址 。7通常 8086/8088 CPU 中當 EU 執(zhí)行一條占用很多時鐘周期的指令時,或者在多處理器系統(tǒng)中在交換總線控制時會出現(xiàn)空閑 狀態(tài)。8 8086 CPU 使用16 根地址線訪問 I/O 端口,最多可訪問64K個字節(jié)端口,使用 20 根地址線訪問存儲單元,最多可訪問1M 個字節(jié)單元。9CPU取一條指令并執(zhí)行該指令的時間稱為指令 周期,它通常包含若干個總線 周期,而后者又包含有若干個時鐘 周期。10設內存中一個數(shù)據區(qū)的起始地址是1020H:0A1CBH ,在存入 5個字數(shù)據后,該數(shù)據區(qū)的下一個可以使用的單元的物理地址是1020H :0A1D5H或 1A3D5H 。11 808

11、6系統(tǒng)中,默認方式下對指令尋址由寄存器CS和IP完成,而堆棧段中的偏移量可由寄存器SP 或 BP 來指示。128086的中斷向量表位于內存的00000H003FFH 區(qū)域,它可以容納 256個中斷向量,每個向量占4 個字節(jié)。138086CPU中典型總線周期由 4個時鐘周期組成, 其中 T1期間, CPU 輸出 地址 信息;如有必要,可以在T 3和T 4 兩個時鐘周期之間插入1個或多個 TW 等待周期二、單項選擇題1某微機最大可尋址的內存空間為16MB ,其 CPU的地址總線至少應有( E)條。A 26B28C20D22E 242 8086/8088 CPU 的 RESET引腳至少應維持(A )

12、個時鐘周期的正脈沖寬度才能有效復位。A4B.5C2D33當 RESET 信號進入高電平狀態(tài)時,將使 8086/8088 CPU 的( D )寄存器初始化為 0FFFFH。3ASSB DSC ESD CS48086/8088 CPU與慢速存儲器或 I/O接口之間進行數(shù)據傳輸,為了使傳送速度匹配,有時需要在(C)狀態(tài)之間插入若干等待周期TW 。AT1 和T2B T2 和T3CT3 和T4D隨機5 8086/8088 CPU 中標志寄存器的主要作用是(D )。A 檢查當前指令的錯誤B糾正當前指令執(zhí)行的結果與錯誤C決定是否停機D產生影響或控制某些后續(xù)指令所需的標志68086最小模式下的存儲器讀周期中地

13、址鎖存發(fā)生在總線周期的( A)時刻。AT1B T2C T3D T47指令指針 IP的作用是( A )。A 保存將要執(zhí)行的下一條指令的地址B 保存 CPU 要訪問的內存單元地址C保存運算器運算結果內容D 保存正在執(zhí)行的一條指令8 8086CPU 有兩種工作模式,最小模式的特點是(A )。A CPU提供全部控制信號B 由編程進行模式設定C不需要 8282收發(fā)器D需要總線控制器 8288三、簡答題1 8086/8088 CPU 分為哪兩個部分?如何協(xié)調工作?答: EU 是執(zhí)行部件,主要的功能是執(zhí)行指令和形成有效地址。BIU 是總線接口部件,與片外存儲器及I/O 接口電路傳輸數(shù)據,主要功能是形成實際地

14、址、預取指令和存取操作數(shù)。EU 經過 BIU 進行片外操作數(shù)的訪問,BIU 為 EU 提供將要執(zhí)行的指令。 EU 與 BIU 可分別獨立工作,當EU 不需 BIU 提供服務時, BIU 可進行填充指令隊列的操作。2 8086/8088 CPU 的地址總線有多少位?其尋址范圍是多少?答: 8086/8088 CPU 的地址總線共20 位,最大可尋址1MB 空間。3 8086/8088 CPU 使用的存儲器為什么要分段?怎么分段?答: 8086/8088為 16位CPU,其內部的 ALU 、相關的地址寄存器(如SP、 IP以及BX 、BP、SI、DI )等都是 16位的,因而對存儲器地址的處理也只

15、能是16位操作,即8086/8088的直接尋址能力在64KB 范圍內。而實際上8086/8088 有20條地址線,它的最大尋址空間為1MB 。這就產生了一個矛盾,即如何用16位的地址寄存器去表示一個 20位的存儲器物理地址?實際使用的解決辦法是:將1MB 大小的存儲空間分為若干段 ,每段不超過64KB 。這樣,一個 20位的物理地址就可以用 16位段基址: 16位偏移量 的形式(稱為邏輯地址)來表示了,其中段地址存放在8086/8088的段寄存器中。448086/8088 CPU 中有幾個通用寄存器?有幾個變址寄存器?有幾個指針寄存器?通常哪幾個寄存器亦可作為地址寄存器使用?答: 8086/8

16、088 CPU 中共有:8個 16位的通用寄存器AX 、 BX 、CX 、 DX、BP、 SP、 SI、DI ;2個變址寄存器SI、 DI ;2個指針寄存器BP、 SP;其中 BX 、 BP、 SI、DI亦可作地址寄存器。5 Intel 8086 與 8088有何區(qū)別?答: 8086與8088 的區(qū)別主要表現(xiàn)在以下幾個方面:第一、 8086的指令隊列可以容納 6個字節(jié),每個總線周期在存儲器中取出 2個字節(jié)指令代碼填入隊列。而 8088只能容納 4個字節(jié),且每個總線周期只能取出 1個字節(jié)指令代碼。第二、 8086外部數(shù)據總線寬度為16位, 8088外部數(shù)據總線寬度只有8位。注意:8086 和80

17、88外部數(shù)據總線的寬度不同將導致擴展主存儲器及輸入/ 輸出接口時系統(tǒng)地址線和數(shù)據線連接方式的不同。第三、其他不同的引腳定義:(1)AD15AD ,在 8086中為地址 /數(shù)據復用,而0在 8088中 AD AD8改為 AA只作地址線用;(2) 34、 28號引腳定義不同。1515868086/8088CPU 工作在最小模式時:當CPU 訪問存儲器時, 要利用哪些信號?當 CPU訪問外設接口時,要利用哪些信號?答:8086/8088 CPU 工作在最小模式時, 若訪問存儲器, 需用到以下信號: M / IO 、 ALE 、 DT / R 、 DEN 、 READY 、 BHE、 WR、 RD、

18、AD 0 AD 15、 A 19/S6 A 16/S3。若訪問外設,需用到以下信號: M / IO 、ALE 、 DT / R 、DEN 、READY 、WR、 RD、AD 0 AD 15。7試指出下列運算后的各個狀態(tài)標志,并說明進位標志和溢出標志的區(qū)別:( 1) 1278H 3469H答: CF=0 AF=1 ZF=0 SF=0 OF=0 PF=1( 2) 54E3H 27A0H答: CF=0 AF=0 ZF=0 SF=0 OF=0 PF=0( 3) 3881H 3597H答: CF=0 AF=0 ZF=0 SF=0 OF=0 PF=1( 4) 01E3H 01E3H答: CF=0 AF=0

19、 ZF=1 SF=0 OF=0 PF=15其中,進位標志CF 用于判別無符號數(shù)運算是否超出數(shù)的表示范圍,而溢出標志 OF 用于判別帶符號數(shù)運算是否超出數(shù)的表示范圍。奇偶標志 PF 只能判斷結果低8 位中 1的個數(shù)為奇數(shù)還是偶數(shù)。8什么是邏輯地址?什么是物理地址?它們之間有什么聯(lián)系?各用在何處?答:邏輯地址由兩個16 位的部分即段基址和偏移量組成,一般在程序中出現(xiàn)的地址都表示為邏輯地址形式;物理地址是一個20 位的地址, 它是唯一能代表存儲空間每個字節(jié)單元的地址,一般只出現(xiàn)在地址總線上。由于 8086/8088CPU中的寄存器只有16 位長,所以程序不能直接存放20 位的物理地址,而必須借助邏輯

20、地址,即用兩個16 位的寄存器來表示物理地址。他們之間的關系是:物理地址段基址 *16 偏移量;另外,一個物理地址可對應多個邏輯地址。9設現(xiàn)行數(shù)據段位于存儲器0B0000H 0BFFFFH單元, DS 段寄存器內容為多少?答:DS 段寄存器內容為0B000H 。10給定一個存放數(shù)據的內存單元的偏移地址是20C0H,( DS)=0C0E0H ,求出該內存單元的物理地址。答:物理地址:0C2EC0H 。11 8086/8088 為什么采用地址/數(shù)據引線復用技術?答:考慮到芯片成本和體積,8086/8088 采用 40 條引線的封裝結構。40 條引線引出 8086/8088 的所有信號是不夠用的,采

21、用地址/數(shù)據線復用引線方法可以解決這一矛盾,從邏輯角度,地址與數(shù)據信號不會同時出現(xiàn),二者可以分時復用同一組引線。12怎樣確定8086 的最大或最小工作模式?答:引線MNMX 的邏輯狀態(tài)決定8086 的工作模式,MNMX 引線接高電平,8086 被設定為最小模式,MNMX 引線接低電平,8086 被設定為最大模式。13 8086 基本總線周期是如何組成的?答:基本總線周期由4 個時鐘 (CLK) 周期組成, 按時間順序定義為T1、T2、T3、T4 。14在基于 8086 的微計算機系統(tǒng)中, 存儲器是如何組織的?存儲器是如何與處理器總線連接的? BHE 信號起什么作用?6答:8086 為 16 位

22、微處理器, 可訪問 1M 字節(jié)的存儲器空間;1M 字節(jié)的存儲器分為兩個512K 字節(jié)的存儲體,分別命名為偶存儲體和奇存儲體;偶體的數(shù)據線連接 D7D0 ,體選 信號接地址線A0 ;奇體的數(shù)據線連接D15D8 ,體選 信號接 BHE信號; A0 信號有效時允許訪問偶體中的低字節(jié)存儲單元,BHE 信號有效時允許訪問奇體中的高字節(jié)存儲單元,實現(xiàn)8086 的低字節(jié)訪問、高字節(jié)訪問及字訪問。15有一個由 20 個字組成的數(shù)據區(qū),其起始地址為 610AH:1CE7H 。試寫出該數(shù)據區(qū)首末單元的實際地址 PA。首單元地址: 610A0H+1CE7H=62D87H末單元地址: 62D87H 27H=62DAE

23、H16有兩個16 位的字31DAH 、 5E7FH,它們在8086 系統(tǒng)存儲器中的地址為00130H 和 00135H,試畫出它們的存儲器示意圖。地址內容00130H0DAH00131H31H00132H00133H00134H00135H7F00136H5E17試說明8086CPU 的控制引腳ALE 的作用。答: 8086 的低位地址線與數(shù)據線復用,為保證地址線維持足夠的時間,需使用ALE 信號將低位地址線通過鎖存器保存,以形成系統(tǒng)地址總線。7第 3 章 8086/8088CPU 指令系統(tǒng)一、判斷題1 MOVAX , BP的源操作數(shù)物理地址為16×( DS)+( BP )。 ( &

24、#215;)2 OUTDX ,AL 指令的輸出是16 位操作數(shù)。( ×)3不能用立即數(shù)給段寄存器賦值。( )4所有傳送指令都不影響FLAG 寄存器的標志位。( ×)5堆棧指令的操作數(shù)均為字。( )6段內轉移指令執(zhí)行結果要改變IP、 CS 的值。( ×)二、單項選擇題1寄存器間接尋址方式中,操作數(shù)在(C)中。A. 通用寄存器B. I/O 端口C. 存儲單元D. 段寄存器2( A )尋址方式的跨段前綴不可省略。A. DS :BP B. DS :SIC. DS: DI D. SS: BP3假設( SS) =2000H ,( SP)=0012H ,( AX )=1234H

25、 ,執(zhí)行 PUSH AX后,( SP) =( C)。A. 0014HB. 0011HC. 0010HD. 000FH4用 BP 作基址變址尋址時,操作數(shù)所在的段是當前(C)。A. 數(shù)據段B. 代碼段C. 堆棧段D. 附加段5已知( IP) =1000H , CF=0 ,則執(zhí)行指令JNCShort label 后,下列各數(shù)中哪一個是可能的IP 值?( B)( A ) 0FFFFH( B ) 0FFEH( C) 10FEH( D ) 1100H6執(zhí)行下列指令后, ( AX )=( A )。MOVAX , 1234HMOVCL ,4ROLAX ,CL; 2341HDECAX; 2340HMOVCX

26、,4MULCXHLTA. 8D00HB. 9260HC. 8CA0HD. 0123H7設(AL )= - 68,(BL )= 86,執(zhí)行 SUB AL ,BL指令后,正確的結果是 ( C)。A. CF =1B. SF =1C. OF =1D. ZF =18已知( SI) 0004H ,(DS) 8000H ,( 80004H) =02H, ( 80005H) =C3H 。指令 LEAAX , SI 執(zhí)行后( AX )( C )。A. 0002HB. 0005HC. 0004HD. C302H9條件轉移指令JNE 的條件是(C)。8A. CF 0B. CF1C. ZF0D. ZF 110在 80

27、86 中,(BX ) 0282H ,且題中指令已在指令隊列中,則執(zhí)行INC BYTE PTR ( BX )指令需要的總線周期為(C )。A.0B.1C.2D.3三、多項選擇題1下列指令中源操作數(shù)使用寄存器尋址方式的有(BF )。A. MOVBX , BUF SIB. ADD SI+50, BXC. SUBAX,2D. CMPAX ,DISPDIE. MULVAR BX F. PUSHCX2將累加器 AX 的內容清零的正確指令是(BCD )。A. CMPAX ,AXB. SUBAX ,AXC. ANDAX ,0D. XOR AX , AX3正確將字變量WORDVARR 偏移地址送寄存器AX的指令

28、是( CD )。A. MOVAX , WORDVARRB. LESAX , WORDVARRC. LEAAX , WORDVARRD. MOVAX , OFFSETWORD VARR4調用 CALL 指令可有( ABDE )。A. 段內直接B. 段內間接C. 短距離( SHORT)D. 段間直接E. 段間間接5 8086 指令的操作數(shù)可能有(ABC )。A. 0B.1C.2D. 3四、填空題1與指令 MOV BX ,OFFSET BUF 功能相同的指令是LEABX ,BUF 。2假設( BX )= 0449H ,( BP)= 0200H ,(SI )= 0046H ,( SS)= 2F00H

29、,( 2F246H )= 7230H 則執(zhí)行 XCHGBX , BP+SI 指令后,( BX )= 7230H。3執(zhí)行下列指令序列后,完成的功能是將(DX , AX )的值除以 16。MOVCX,4NEXT : SHRDX ,1RCRAX ,1LOOPNEXT4已知( AL ) 0101 1101B,執(zhí)行指令 NEG AL 后,再執(zhí)行 CBW 后,(AX )0FFA3H。5在數(shù)據傳送類指令中, 只有 SAHF 和 POPF 兩條指令會影響標志位的值,其中指令 POPF 是唯一可以改變 TF 標志的指令。6設有 100 個字節(jié)數(shù)據(補碼) ,存放在數(shù)據段中EA 2000H 的存儲單元中。以下程序

30、應該從該數(shù)據區(qū)中找出最小的一個數(shù)據,并存入 EA 2100H 單元中, 請將下面程序補充完整。9MIN : MOVBX , 2000HMOVAL ,BX MOVCX, 99LOOP1 : INCBXCMPAL ,BX JLELOOP2MOVAL ,BX LOOP2 : DECCXJNZLOOP1MOV 2100H ,AL7 MOV AX , ES: BX SI中,源操作數(shù)的物理地址計算式是:( ES)× 16( BX )( SI)。五、綜合題1請指出以下各指令的源、目的操作數(shù)所使用的尋址方式。( 1) MOVSI , 2100H( 2) SBBDISPBX, 7( 3) ANDDI

31、, AX( 4) ORAX , 609EH( 5) MOVBX DI 30H , CX( 6) PUSHES: BP( 7) CALLDISP DI答:( 1)源操作數(shù):立即數(shù)尋址;目的操作數(shù):寄存器尋址( 2)源操作數(shù):立即數(shù)尋址;目的操作數(shù):(帶位移量的)基址尋址( 3)源操作數(shù):寄存器尋址;目的操作數(shù):變址尋址( 4)源操作數(shù):直接尋址;目的操作數(shù):寄存器尋址( 5)源操作數(shù):寄存器尋址;目的操作數(shù):(帶位移量的)基址變址尋址( 6)源操作數(shù):帶段超越的基址尋址;目的操作數(shù):隱含尋址( 7)只有一個操作數(shù),為(帶位移量的)變址尋址2請指出下列各條指令的錯誤,并改正。( 1)MOV100

32、, 23H( 2)ADDAX , BX BP 6( 3) PUSHDL( 4)INAX , 3FH( 5)OUT3FFH , AL( 6)POPAX10( 7)IMUL4CH( 8)SHLBX ,( 9)INT300( 10)XCHGDX , 0FFFH( 11)MOVAH ,BX( 12)MOVBX , ES: AX( 13)MOVAX , OFFSET SI( 14) MOVCS, AX( 15)MOVDS , ES( 16)MOVDS , 1000H答:( 1)該指令在語法上是對的,即可以把一個立即數(shù)送入一個存儲單元;但是如果考慮實際編譯,則第一操作數(shù)前應加上BYTEPTR 或 WORD

33、PTR 說明,否則匯編程序會因不能確定操作數(shù)長度而指示出錯??筛臑椋篗OVBYTE PTR 100 ,23H( 2)不能同時使用兩個基址寄存器BX 、 BP 進行間接尋址,可改為:ADDAX ,BX DI6( 3)堆棧操作應以字為單位進行,而DL 是一個字節(jié)??筛臑椋?PUSHDX( 4)在輸入 /輸出指令中,8 位端口地址應直接寫在操作數(shù)處??筛臑椋篒NAX , 3FH( 5)端口地址3FFH 已超出8 位二進制表示范圍,16 位端口地址應存于DX 。可改為:MOVDX , 3FFHOUTDX , AL( 6) AX不能用于間接尋址,間接尋址只能用BX 、 BP 、 SI 、 DI 四個寄存

34、器之一??筛臑椋篜OPBX( 7)立即數(shù)不能做乘法指令的操作數(shù),可改為:MOVBL , 4CHIMULBL( 8)當邏輯移位的次數(shù)大于1 時,應該用CL 指示次數(shù)??筛臑椋篗OVCL, 5SHLBX ,CL( 9)操作數(shù) 300 255 ,已超出有效的中斷類型碼范圍。( 10) XCHG 指令不允許立即數(shù)做它的操作數(shù)??筛臑椋篗OVCX , 0FFFHXCHGDX ,CX( 11)源、目的字長不一致11( 12)在 8086 尋址方式中,AX 不能作為基址寄存器使用,而且源、目的不能同時為存貯器尋址方式( 13) OFFSET 只用于簡單變量,應去掉( 14) CS 不能作為目的寄存器( 15

35、)段寄存器之間不能直接傳送數(shù)據( 16)不允許直接向段寄存器送立即數(shù),可改為:MOVAX , 1000HMOVDS, AX3設若標志寄存器原值為 0A11H ,( SP)=0060H ,( AL ) =4 。下列幾條指令執(zhí)行后,標志寄存器、 AX 、 SP的值分別是多少?PUSHFLAHF;( Flag)低字節(jié)AHXCHGAH ,ALPUSHAXSAHFPOPF答:指令執(zhí)行后標志寄存器的值為0411H , AX=0411H, SP=005EH。4假如在程序的括號中分別填入指令:(1) LOOP L20(2) LOOPNE L20(3) LOOPE L20試說明在三種情況下 , 當程序執(zhí)行完后

36、, AX 、 BX 、CX 、 DX 四個寄存器的內容分別是什么 ?BEGIN:MOVAX,01MOVBX,02MOVDX,03MOVCX,04L20:INCAXADDBX,AXSHRDX,1()答案:(1)( AX )= 5(BX )= 16(CX)= 0(DX )= 0(2)( AX )= 3(BX )= 7(CX)= 2(DX )= 0(3)( AX )= 2(BX )= 4(CX)= 3(DX )= 15在已學的指令中,可實現(xiàn)累加器清0 的單條指令有哪些?比較它們的功12能。答:( 1) MOVAX,0;僅將累加器清0,不會影響任何標志位( 2) SUBAX ,AX;累加器清 0的同時

37、影響所有狀態(tài)標志,具體地有: ZF、 PF 置 1, CF、 AF 、SF、 OF 均清 0( 3) ANDAX ,0;將累加器清0,ZF 、PF 置 1,CF、OF 、SF 清 0( 4) XORAX ,AX;將累加器清0,ZF 、PF 置 1,CF、OF 、SF 清 06已知( DS )=2000H ,有關的內存單元值為:(21000H)=00H,(21001H)=12H,(21200H)=00H ,(21201H)=10H,(23200H)=20H,(23201H)=30H,(23400H)=40H,(23401H)=30H, (23600H)=60H, (23601H)=30H,符號

38、COUNT 的偏移地址為1200H 。執(zhí)行下列指令后,寄存器AX 、 BX 、 SI 的值分別是多少?MOVBX , OFFSET COUNTMOVSI , BXMOVAX , COUNTSIBX答:執(zhí)行結果為(BX ) =1200H ,( SI ) =1000H ,( AX ) =3040H 。7設若內存單元DATA 在數(shù)據段中偏移量為24C0H 處, 24C0H24C3H單元中依次存放著55H 、66H 、77H 、88H 。下列幾條指令執(zhí)行后,寄存器AX 、BX 、CL 、 SI 、 DS 的值分別是多少?MOVAX , DATALEASI , DATAMOVCL , SILDSBX ,

39、 DATA答:執(zhí)行結果為 ( AX )=6655H ,( BX )=6655H ,( CL )=55H ,( SI )=24C0H ,( DS ) =8877H 。8若( AX ) =26D3H ,( CX ) =7908H , CF=1 ,執(zhí)行下列指令后,寄存器 AX 、 CX 的值分別是多少? CF= ? OF=?SALCH,1RCRAX ,CLROLAL ,1答:執(zhí)行結果為(AX ) =0A64CH ,( CX ) =0F208H , CF=OF=0 。9下面的程序執(zhí)行后,DX 、 AX 的值分別是多少?;以 X 為首址的字單元中的數(shù)據依次為1234H 、 5678H;以 Y 為首址的字

40、單元中的數(shù)據依次為8765H 、 4321H13LEASI, XLEADI,YMOVDX ,SI 2MOVAX ,XADDAX ,XADCDX ,SI 2CMPDX ,DI 2JLL2CMPAX ,YJLL1JMPEXITL1 :MOVAX ,1JMPEXITL2 :MOVAX ,2EXIT : 答:執(zhí)行結果為(AX ) =2,( DX ) =0ACF0H 。10設VAR 字單元的值為x, F1 字單元的值為y,試編程按以下要求給y賦值:2x>30y =030 x1 2x<1答:一種可能的程序段實現(xiàn)如下:MOVAX , VAR; AXxCMPAX,30JGPLUS2; x>3

41、0 ,則轉PLUS2CMPAX,1JLMIN2; x<1 ,則轉MIN2MOVF1, 0; 30 x1,y=0JMP GOPLUS2 : MOVF1, 2; y=2JMPGOMIN2 :MOVF1,-2 ; y = -2 或 00FEHGO: ;后續(xù)處理簡析:本例中并未說明VAR 字節(jié)單元是帶符號數(shù)還是無符號數(shù),讀者在使用判斷轉移指令時可任意選用。若當作帶符號數(shù),應使用JG、 JL、JGE、 JLE 等指令,如參考程序;若當作無符號數(shù),則應使用JA、 JB 、 JAE 、 JBE 等指令。14第 4 章 匯編語言程序設計一、填空題1段定義偽指令語句用SEGMENT語句表示開始,以ENDS

42、 語句表示結束。2 ARRAYDW10 DUP ( 5 DUP(4 DUP(20H, 40H, 60H)語句執(zhí)行后共占1200 字節(jié)存儲單元。3匯編語句中,一個過程有 NEAR 和 FAR 兩種屬性。 NEAR 屬性表示主程序和子程序 在同一個代碼段中 ,F(xiàn)AR 屬性表示主程序和子程序不在同一個代碼段中。4 DOS 系統(tǒng)功能號應放在AH寄存器中。5 子程序又稱過程,它可以由PROC 語句定義,由ENDP 語句結束,屬性可以是NEAR或 FAR 。6假設 VAR 為數(shù)據段中已定義的變量,則指令MOVBX , OFFSET VAR 中源操作數(shù)的尋址方式是立即數(shù)尋址。二、選擇題1 EXE 文件產生在

43、( D)之后。A. 匯編B. 編輯C. 用軟件轉換D. 連接2變量定義的偽指令助記符有(ABCEF )。A. DBB. DWC. DDD. DFE. DQF. DT3主程序與子程序之間傳遞參數(shù)可通過(ABC )進行。A. 堆棧B. 存儲器單元C. 通用寄存器D. 指令隊列E. 其他4計算機系統(tǒng)軟件中的匯編程序是一種(C)。A. 匯編語言程序B. 編輯程序C. 翻譯程序D. 將高級語言轉換成匯編程序的程序5若主程序段中數(shù)據段名為DATA ,對數(shù)據段的初始化操作應為(B)。A. MOVAX ,DA TAB. MOVAX , DATAMOVES, AXMOVDS, AXC. PUSHDSD. MOV

44、DS, DATA68086 宏匯編源程序中, 若 BUFF 是字變量名, 則執(zhí)行指令 MOVBX ,BUFF后, BX 中的值為 BUFF 單元的( A )。A. 字數(shù)據值B. 變量類型值C. 段基址D. 段內偏移量三、綜合題1下列標號為什么是非法的?(1) GET.DATA(2) 1_NUM(3) TEST-DATA(4) RET15(5) NEWITEM答案:(1) 因為 ?. 允許是標號的第一個字符只(2) 第一個字符不能為數(shù)字(3) 不允許出現(xiàn) ?-(4) 不能是保留字,如助記符(5) 不能有空格2已知數(shù)據和符號定義A1DB?A2DB8K1EQU100判斷下列指令的正誤,并說明錯誤指令

45、的原因。( 1) MOVK1, AX( 2) MOVA2, AH( 3) CMPA1, A2( 4) MOVBX ,K1MOVBX , DX( 5) K1 EQU200答:( 1)錯誤。 K1是符號,在此處相當于立即數(shù)100,故不能做目的操作數(shù)。( 2)正確。( 3)錯誤。 A1 、A2 都是字節(jié)變量,相當于兩個存儲器單元,故不能同時出現(xiàn)在一條指令中直接進行比較。( 4)正確。( 5)錯誤。用 EQU 定義的符號不能重新賦值,除非已用 PURGE 解除了原值。3若數(shù)據段中有定義NUM1EQU23HNUM2DW0則指令MOV NUM2 , NUM1的源、目操作數(shù)的尋址方式以及指令執(zhí)行后NUM2 1 單元的內容分別是什么?答:指令 MOV NUM2 , NUM1 的源操作數(shù)使用立即數(shù)尋址,目的操作數(shù)使用直接尋址。指令執(zhí)行后 NUM2 1 單元的內容是 0。4已知某數(shù)據段從物理地址03000H 處開始,定義如下:DSEG SEGMENTORG2000HA1DD2DUP ( 7, 1,?)A2DB10DUP (0,4,3

溫馨提示

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

評論

0/150

提交評論