匯編復習題2015b_第1頁
匯編復習題2015b_第2頁
匯編復習題2015b_第3頁
匯編復習題2015b_第4頁
匯編復習題2015b_第5頁
已閱讀5頁,還剩7頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、匯編語言程序設計復習資料2015一、 選擇題1、匯編語言源程序經匯編后不能直接生成 C 。A .OBJ文件B .LST文件C .EXE文件D .CRF文件2、若SP=1500H,那么執行完PUSH指令后,SP= B 。A.14FFH B.14FEHC. 1502HD.1501H3、JMP WORD PTR DI是 A 。A.段內間接轉移B.段間間接轉移C.段內直接轉移D.段間直接轉移4、與MOV SI,OFFSET X等價的指令是 C 。A.MOV SI,X B.LES SI,XC. LEA SI,XD. LDS SI,X5、運算型指令的尋址和轉移型指令的尋址,其不同點在于 A 。A.前者取操

2、作數,后者決定程序的轉移地址B.后者取操作數,前者決定程序的轉移地址C.兩者都是取操作數D.兩者都是決定程序的轉移地址6、下列指令 D 是合法的訪問I/O端口指令。A. IN AL,100HB.IN AL,BXC. IN AL,BLD. IN AL,DX7、邏輯移位指令SHR用于 D ;A.帶符號數乘2 B.帶符號數除2C.無符號數乘2D.無符號數除2而算術移位指令SAR用于 B 。A.帶符號數乘2 B.帶符號數除2C.無符號數乘2D.無符號數除28、由匯編程序在匯編過程中執行的指令是 B A.機器語言B.偽指令 C.狀態標志D.物理地址9、在匯編語言程序設計中,偽指令OFFSET的含義是回送

3、變量或標號的 B A.段地址B. 偏移地址C. 物理地址D.操作數10、子程序返回偽指令是 C 。A. ENDPB. IRETC.RETD. 段內與段間不同11、使用LINK連接命令,執行后可生成文件的擴展名為 C 。A. .COM B. .OBJ C. .EXE D. .LST 12、已知AX的內容為1FFAH,執行XOR AX,AX,AX內容為 C 。A.00FAH B.1FFAHC. 0000HD.1F00H13、編寫分支程序,在進行條件判斷前,可用指令構成條件,其中不能形成條件的指令是 D 。A. CMP B.SUB C. AND D.MOV14、INC指令不影響 B 標志。A. OF

4、B.CFC.SFD.ZF 15、段內直接調用,程序的轉移范圍為 B 。A. -128127B. -3276832767C.-65536 65535D. 03276716、中斷向量 D 。A.傳送數據的起始地址B.中斷類型號C.子程序入口地址D.中斷服務程序入口地址17、執行返回指令,退出中斷服務程序,這時返回地址來自 C 。A.ROM區B.程序計數器C.堆棧區D.CPU的暫存寄存器18、微機系統中有哪些總線? D A.狀態總線、數據總線、控制總線 B.地址總線、狀態總線、控制總線C.狀態總線、數據總線、地址總線 D.數據總線、地址總線、控制總線19、以下不屬于總線接口部件BIU部件的是 A 。

5、A.通用寄存器B.地址產生器C.指針寄存器D.專用寄存器20、將累加器AX的內容清0的錯誤指令是 B 。A.AND AX,0B.CMP AX,AXC.SUB AX,AXD.XOR AX,AX 21、有如下程序段:MOV CX,6MOV AX,1 MOV BX,3LOP: ADD AX,BX ADD BX,2LOOP LOP上述指令完成后,AX= B A. 6B. 49C.50D. 022、下列指令中合法的是 D 。A.OUT 289, ALB.ADC AL,BXC.POP BL D.SHL AX,CL23、從鍵盤輸入數據1,則在寄存器中存放的形式為 A 。A. 31H B. 01H C.”1”

6、 D. 124、下列有關段地址、偏移地址、物理地址的敘述正確的是 D 。A.若已知物理地址,則可以計算出唯一的段地址和偏移地址。B.段的劃分可以從任何一個存儲單元開始。C.8086規定段的大小必須為64K字節。D.多個段可以共用某些存儲單元。25、中斷發生過程和子程序調用過程的一個明顯區別是中斷發生時,CPU自動清除了 A 。A. IF和TF位 B. TF位 C.IF和SF位 D. TF和SF位26、執行下列指令后:MOV AX,1234HMOV CL,4ROL AX,CLDEC AXMOV CX,4MUL CXHLT寄存器AH的值是 C 。 A.92HB.8CHC.8DHD.00H寄存器AL

7、的值是 B 。A.60HB.00HC.04HD.0A0H27、在多模塊程序設計中,用 B 偽指令來聲明公用變量。A.EXTRN B.PUBLIC C.MODULED.COMMON 28、執行完下列指令后:XDW BCYDB 16 DUP (?)ZEQU -XMOV CX,ZMOV AX,X寄存器CX的值是 C 。A.10HB.0EH C.12HD.0FH寄存器AX的值是 C 。A.4342HB.00CBHC.4243HD.00BCH 29、8086/8088響應中斷時,不自動壓入堆棧的有 B 。A CS的內容B通用寄存器的內容C IP的內容D標志寄存器的內容30、堆棧的工作方式是 A 。A.先

8、進后出 B.后進后出 C.先進先出D.先進不出31、求下面變量定義的元素個數送CX的正確形式是 D 。ARRAY DW 1,9,9,9,12,1A.MOV CX,LENGTH ARRAY B. MOV CX,SIZE ARRAYC.COUNT EQU $-ARRAY D. COUNT EQU ($-ARRAY)/2MOV CX,COUNT MOV CX,COUNT 32、可屏蔽中斷就是它的請求是否被CPU響應要受 B 位的控制。A. TF B. IF C.OF D. SF33、不影響堆棧指針SP的指令是 B 。A.INT 21H B.JMP DOC.RETD.PUSH AX34、8088/80

9、86存儲器分段,每個段不超過 A 。 A.64K個字B.32K個字節C.1兆個字節D.64K個字節35、匯編語言是 A 。A.低級語言 B.中級語言 C.高級語言 D.機器語言36、用DEBUG.EXE調試程序時,顯示存儲單元內容的命令是 D 。A.RB.T C. GD. D37、匯編源程序中,END偽指令后的標號表示 C 。A.源程序的結束B.代碼段的結束C.匯編程序的入口地址D.該標號無任何意義38、有如下數據定義:X DB 36H,6FHY DW 2E5DH,4F6FH則下列指令正確的是 C 。A. MOV AX,X B.MOV DL,OFFSET XC. MOV AX,WOR

10、D PTR X D.MOV BL,Y39、若要求一個操作數中的若干位維持不變,若干位置1,可以使用 B A.NOTB.OR  C.AND  D. XOR 40、下列指令中,源操作數在代碼段中的是 A 。A.MOV AL,80HB. ADD AL,BLC.CMP AX, 1234D.AND AL,ES:123441、對于有符號的數來說,下列哪個值最大 D 。A.0FBH B.11010010BC.81D.124Q42、交換寄存器SI、DI的內容,正確的程序段是 A 。A.PUSH SIB.PUSH SIPUSH DI PUSH DIPO

11、P SI POP DIPOP DI POP SIC.MOV AX,SID.MOV AX,SIMOV DI,SI MOV BX,DIMOV DI,AX XCHG BX,AX43、有語句:ABC EQU 210,下列四種敘述中,正確的是 B 。A. ABC是變量 B. ABC是符號常數C. ABC占用一個字節的存儲單元 D. ABC占用二個字節的存儲單元44、8086微機系統中,偏移(或有效)地址和物理地址是 C 位。A.16和16 B.20和20 C.16和20 D.20和1645、假定(SS)=1000H,(SP)=100H,(CX)=23B7H,執行指令PUSH CX后,存放數據23H的物理

12、地址是 D 。A.10102H B.10101HC.100FEHD.100FFH46、匯編指令是由 C 組成的符號指令。A.變量和常量 B.地址和數據 C.指令助記符和符號地址D.字母和數字47、指令SUB CX,1與指令DEC CX的區別是 D 。A.沒有區別 B.前者會將CF也加進來 C.前者不影響CFD.后者不影響CF48、假設程序中的數據定義如下,則V4的值為 B 。XDW?YDB15DUP(?)ZDD?A= $-XA.20B.21C.22D.2349、ADD指令中,兩個操作數的物理位置不可以安排在 A 中。A.兩個存儲單元B.一個存儲單元和一個數據寄存器C.兩個數據寄存器D.一個堆棧

13、單元和一個數據寄存器二、填空題1、指出下列指令源操作數的尋址方式: MOV AX,ARRAYSI;寄存器相對尋址方式 MOV AX,ES:BX;寄存器間接尋址方式 MOV AX,200H ;直接尋址方式 MOV AX,BX+DI;基址變址尋址方式 MOV AX,BX;寄存器尋址方式 MOV AX,1200H;立即尋址方式 MOV AX,20BX+SI;相對基址變址尋址方式 MOV AX,DI+20;寄存器相對尋址方式2、計算機中的指令由 操作碼 和 操作數 兩部分組成。 3、對于乘法、除法指令,結果存放在 AX 或 DX:AX 中,而其源操作數可以用除 立即數 以外的任一種尋址方式。4、邏輯地

14、址是由段地址和 偏移地址 組成,其中段地址是由 段寄存器 存儲的。5、當指令“SUB AX,BX”執行后,CF=1,說明最高有效位有借位;對無符號數,說明操作結果溢出。6、I/O設備的接口中一般包含數據、狀態、控制三種端口。7、10110101B= 0B5 H和 181 D。8、指令“AND AX,STR1 AND STR2”中,STR1和STR2是兩個已賦值的變量,兩個AND的區別是第一個AND是邏輯與指令、第二個AND是邏輯與操作符。9、帶符號的機器數可以用 原碼 、 反碼 和 補碼 三種不同碼制來表示。11、如果TABLE為數據段中0032單元的符號名,其中存放的內容為1234H,當執行

15、指令MOV AX,TABLE后,(AX)= 1234H ;而執行指令LEA AX,TABLE后,則(AX)= 0032H 。12、計算機的硬件的基本組成有運算器、控制器、存儲器和輸入設備、輸出設備五大部件。13、過程的屬性有near 和far 。近過程(NEAR)的RET指令把當前棧頂的一個字彈出到 IP ;遠過程(FAR)的RET指令彈出一個字到 IP 后又彈出一個字到CS ;IRET指令是中斷返回指令,它從堆棧順序彈出3個字分別送到IP 、CS 、標志寄存器FLAGS 中。14、ENDP 是過程定義結束偽指令,與PROC 配套使用。ENDS是段定義結束偽指令,與SEGMENT 配套使用。E

16、ND 是一個源模塊匯編結束偽指令。15、一個有16個字的數據區,它的起始地址為70A0:DDF6,那么該數據區首字單元地址是7E7F6H,最后一個字單元的物理地址為7E814H 。(16個字就是70A0H*10H+DDF6H+1EH,如果是32個字的話,則是70A0H*10H+DDF6H+3EH=7E834H)16、執行下列指令序列后,完成的功能是將(DX,AX)的值左移4位。 MOV CL,04SHL DX,CLMOV BL,AHSHL AX,CLSHR BL,CLOR DL,BL17、JMP按轉移地址范圍的不同,分為 短 跳轉和 近 跳轉。18、下面兩個語句的區別在于 X1只能賦值一次 ,

17、 X2可以多次賦值 。 X1 EQU 1000H X2=100019、用1條邏輯指令將AX中與BX中的對應位不相同的位均置為1 XOR AX,BX 。20、匯編語言的語句分成指令、偽指令和宏指令三類。堆棧是以后進先出方式工作的存儲空間。21、在基址變址尋址方式中,可用于基址的寄存器是 BX 、 BP ,其中 BP 默認是相對于堆棧段尋址的。 22、用指令的助記符、符號地址、標號和偽指令、宏指令等書寫的程序的語言稱為匯編語言,將匯編語言的源程序翻譯成機器語言的程序為匯編程序。23、8086CPU由BIU(總線接口單元)和EU(執行單元)兩部分構成。24、我們把與內存一一對應的用20位二進制數(或

18、5位16進制數)表示的地址稱為物理地址,它的計算公式為物理地址=16*段地址+偏移地址。25、在段加偏移地址的尋址中,如果段寄存器為CS,則相應的偏移地址應由IP寄存器來提供。26、在DEBUG上機調試程序時,存儲器的地址表示為2F00:1400,則該單元的段地址為2F00H,偏移地址為1400H,物理地址為30400H。27、執行下列程序段后,(CX)=0,(ZF)=1。MOVAX,BXNOTAXADDAX,BXINCAX28、方向標志DF的作用是用來在串操作指令中控制自增和自減的方向,用于設置或消除該標志位的指令是STD和CLD,。29、完成下列程序,從240H端口讀取數據,測試其是否為2

19、0H,若不是則將241H端口清0,否則則轉向Next。Movdx, 240H IN al,dxCMPal,20hJZNextMovdx,240hMoval,0Outdx,alNext:30、已知:(DS)=15F0H,(ES)=25F0H,(SS)=35F0H,(BX)=0670H,(SI)=1001H,(DI)=0B0H,(BP)=0150H,BUF的偏移地址是0900H。計算下列指令源操作數的物理地址,指出尋址方式:(1) MOV AX,BUFBP+6;采用寄存器相對尋址方式,物理地址為56956h 。(2) CMP AX,ES:SI;采用寄存器間接尋址方式,物理地址為 26F01H 。(

20、3) MOV CX,BUF;采用直接尋址方式,物理地址為 16800H 。(4) MOV AX,ES:BX+SI;采用基址變址尋址方式,物理地址為 27571H 。(5) DEC BUFDI;采用寄存器相對尋址方式,物理地址為 168B0H 。(6) MOV AX,BUFBX+DI;采用相對基址變址尋址方式,物理地址為 16620H 。31、假設(DS)=0D012H,(BX)=80BH,( 0D092CH)=23D0H,(0D092EH)=0AC78H,當執行指令“LES SI,BX”后,(SI)=23D0H,(ES)=0AC78H。對于指令XCHGBX,BP+SI,若指令執行前(BX)=6

21、F30H,(BP)=200H,(SI)=46H,(SS)=2F00H,(2F246H)=4154H,(2F046H)=1234H,則指令執行后(BX)=4154H,(2F246H)=6F30H。假設(SS)=1200H,(SP)=100,(AX)=1234H,執行PUSH AX指令之后,12H所在存儲單元的物理地址是120FFH32、指令中用來指出指令在程序中位置的符號地址是標號。33、變量和標號的三個屬性為段屬性、偏移屬性、類型屬性。34、下列程序段是比較AX,BX,CX中帶符號數的大小,將最大數放在AX中。請將程序填完整。CMP AX,BXJGE LAB1XCHG AX,BXLAB1:CM

22、P AX,CXJGE LAB2XCHG AX,CXLAB2:35、在使用串操作指令時,源串必須在數據段中,目的串必須在附加段中,源串作數和目的操作數不允許使用段超越。36、CPU是通過I/O指令來實現與外部設備進行數據傳送的。37、內中斷有三類中斷源,分別為INT n、CPU出錯、為調試程序設置的斷點。38、中斷過程可分為四個步驟:中斷請求、中斷響應、中斷處理、中斷返回。39、OF位可以用來表示 有符號數 溢出,CF位可以用來表示 無符號數 溢出。40、80X86中斷命令寄存器的I/O端口地址為20H,中斷屏蔽寄存器的I/O端口地址為21H。41、可用DOS功能調用INT 21H的功能號(AH

23、)=25H來設置中斷向量,用功能號AH=35H來獲取中斷向量。42、168D= 10101000 B= 0A8 H= 250 Q。43、在數據段中有以下定義: ARRAY1 EQU 16H ARRAY2 DW 16H 請指出下列指令的尋址方式: MOV AX,ARRAY1;立即尋址方式 MOV AX,ARRAY2;直接尋址方式44、若STR是字符串的首地址,將語句加上注解,并指出下列程序的功能。LEABX,STR; 將STR的有效地址送BXMOVCX,20; 使得CX等于20 LAB1:CMPBX, *; 比較BX所指存儲單元的內容是否是”*”JNZLAB2; 不是*則轉到LAB2MOVBX,

24、 $;用$替換BX所指存儲單元的內容LAB2:INCBXLOOPLAB1;(CX)=(CX)-1不等于0,則轉到LAB1HLT程序的功能;將首址為STR長度為20的字符串中的*用$替換。45、若物理地址為00038H的單元開始存放的雙字為20001000H,00056H單元開始存放的雙字為40003000H,則類型為14(十進制數)的中斷向量的起始地址為38H或56,中斷服務程序的入口地址(物理地址)為21000H。46、PC機I/O設備的數據傳送方式共有三種,分別是查詢,中斷 ,DMA。47、當鍵盤中斷發生時,CPU能否響應由兩個條件控制,一是中斷是否允許二是當前中斷級別是否比鍵盤中斷級別高

25、。48、條件轉移指令的目標地址應在本條件轉移指令的下一條指令地址的-128127個字節范圍內。49、假設某程序執行前(CS)0B234H,(IP)5678H,則該程序的第一條指令的物理地址是0B79B8H,若第一條指令對應的機器碼占3個字節,則第二條指令的物理地址是0B79BBH。50、在用MASM 5.0的DEBUG調試程序時,查看寄存器內容的命令為 R ,讓程序僅執行當前IP所指的一條指令的命令是 T 。51、物理地址是唯一代表存儲空間中每個字節單元的地址。五、簡答題1、試計算58H+3CH的運算結果,并寫出標志位OF、PF、CF、SF的內容。答:58H+3CH=94H,OF=1,CF=0

26、,PF=0,SF=12、8086具有哪些程序可見的寄存器,它們在程序設計中分別起什么作用?答:段寄存器8086的段寄存器有4個16位寄存器,它們用于存放8086CPU當前可以訪問的4個邏輯段的基址。代碼段寄存器CS劃定并控制著程序區;數據段寄存器DS和附加段寄存器ES控制著數據區;而堆棧段寄存器SS對應著堆棧存儲區。通用寄存器 通用寄存器可分為兩組:數據寄存器,地址指針和變址寄存器。 數據寄存器包括AX,BX,CX和DX4個16位寄存器,它們中的每一個又可根據需要將高8位和低8位分成獨立的兩個寄存器來使用。其中AX、BX、CX、DX四個數據寄存器,但它們又有各自的專門用途,其中 AX 可用作累

27、加器, BX 可用作基址寄存器, CX 可用作循環和串處理中的隱含計數器, DX 在某些I/O操作中,可用來存放I/O的端口地址。 地址指針和變址寄存器包括SP,BP,SI,和DI。控制寄存器(1)指令指針IP(2)標志寄存器FLAG 8086CPU設立了一個16位標志寄存器,共9個標志。其中6個是狀態標志,3個是控制標志。狀態標志進位標志CF,輔助進位標志AF,奇偶標志PF,符號標志SF,零標志ZF,溢出標志OF。置1條件分別是:運算過程中最高位產生了進/借位,CF=1;結果低4位產生了進位,AF=1;結果低8位有偶數個1,PF=1;結果最高位為1,SF=1;結果為0,ZF=1;結果產生了溢

28、出,OF=1。控制標志(a)DF方向標志(b)IF中斷允許標志(c)TF陷阱標志或單步操作標志3、已知AX=0E87DH,BX=38ABH,若執行ADD BX,AX;則寄存器AX,BX,標志位CF、OF各為何值?答:AX=2128H,BX=38ABH,CF=1,OF=04、什么是中斷類型碼?中斷向量?中斷向量表?在8086/8088微機系統中。中斷類型碼和中斷向量之間有什么關系?答:中斷類型碼:其實就是中斷號,對不同的中斷服務程序不同的名稱記號,以調用該中斷程序.中斷向量:指向中斷服務程序的入口地址.一個向量代表的入口地址為4個字節.中斷向量表:由于存在多個中斷請求,相應有多個中斷服務程序,即

29、有多個存放這些程序的入口地址(即中斷向量).為此系統在內存的特定區域安排一張中斷向量表,專門存放所有的中斷向量.此表即中斷向量表.以上三者關系:中斷向量=中斷號X4, 其中方括號的含義是內存單元的內容.(即中斷向量表剛好存放在內存絕對地址0開始的位置)。5、簡述8086CPU響應中斷的條件。答:取決于中斷允許觸發標志IF的狀態。若IF=1,則響應中斷的請求,暫停現行后續指令的執行,轉去執行中斷服務程序;若IF=0,則不會響應中斷的請求。6、在8086/8088微處理器在實模式下,存儲器尋址為什么要分段?舉例說明存儲單元的物理地址是如何形成的?答:在8086/8088中,寄存器只有16位,而地址

30、線卻有20位,故其最大尋址空間是1M。用存儲器分段的方法,解決在16位字長的機器里提供20位地址的問題。在實模式下編程時,將存儲器劃分成段,每個段內的大小可達64KB,這樣段內地址可用16位表示,實際上,可以根據需要決定段的大小。這樣將每一段的起始地址作為段地址,而將在段內相對于段起始地址的偏移值作為偏移地址,于是將段地址左移4位,再加上偏移地址就形成了存儲器實際的物理地址。如某存儲單元的段地址和偏移地址為3017:000A,則其物理地址=3017H*10H+000AH=3017AH。7、邏輯右移指令SHR的格式、功能和使用說明?8、設AX=1234H,BX=5678H,CX=8901H,SI

31、=100H,SP的初始值=01A0H,問執行下述堆棧操作指令序列 PUSHCXPUSHAX PUSHBXPOPCXPOPSI后,SP和SI的值等于多少?答:SP和SI的值分別等于19EH和1234H。9、計算機對I/O端口編址時可以采用哪兩種方法?簡述兩種編址方式的優缺點?答:略10、畫圖說明下列語句分配的存儲空間及初始化數值。(1)ADB9,0AH, AB,2 dup(3,?)(2)BDW2 DUP(123H, 8),?,-5, 23,789DH(3)XDBBIT,62,6AH,2 DUP(0,?,2 DUP(7,9)(4)YDW2 DUP(0, 2),?,-5, CD,345H11、根據以

32、下要求,分別寫出相應的匯編語言指令或指令序列。(1)把AX寄存器和BX寄存器的內容相減,結果存入AX中。Sub ax,bx(2)將AX的內容邏輯左移5位。Mov cl,5 shl ax,cl(3)將AX的內容,減去0520H和上次運算的借位。Sbb ax,520h(4)將變量名TABLE的段地址送AX。Mov ax,seg table(5)將DI的高四位置為0。And di,0fffh(6)輸出一個字節到61H號端口。Out 61h,al(7)將SI和DI的內容互換。XCHG SI,DI12、8086CPU是由EU和BIG組成,各部分的功能是什么?這樣設計的優點是什么?答:BIU主要功能是負責

33、CPU與主存和I/O之間的信息傳遞。EU的功能主要是控制和執行指令。取指和執行指令這兩個步驟由兩個獨立的部件來完成。當EU執行某條指令時,BIU同時完成從主存中預取后繼指令,兩個部件并行工作,提高了指令的執行速度。13、簡述以下指令的格式、功能和使用說明循環控制指令LOOPNZ/LOOPNE、REP MOVSB、XLAT、XCHG。答:略。14、簡述指令MOV SI,DATA和MOV SI,OFFSET DATA之間的區別?答:MOV SI,DATA是將DATA的內容送入SI寄存器;MOV SI,OFFSET DATA是將SI寄存器指向DATA,也就是將DATA的偏移地址送入SI。15、強制屬

34、性操作符會改變變量的定義屬性嗎?答:不會,它們只是臨時改變變量的屬性。16、外設與CPU和存儲器的通信是通過外設接口進行的,每個外設接口包含哪些寄存器,以及這些寄存器的用途?答:每個外設接口通常包含以下三種寄存器:一是用作數據緩沖的數據寄存器;二是用作保存設備和接口的狀態信息,供CPU對外設進行測試的狀態寄存器;三是用來保存CPU發出的命令以控制接口和設備的操作的命令控制寄存器。17、定義數據段DATA_SEG,數據段中的數據按下列要求依次存儲:(1)第一個字節是整數5(2)變量BUF,大小為25個字節,初值為0(3)變量ARRAY,類型為字,初值為12H,56H,78H,0AH(4)變量MS

35、G存儲字符串yes答:data segments db 5 buf db 25 dup(0) array dw 12h,56h,78h,0ah msg db yesdata ends18、中斷過程當中斷發生時,由中斷機構自動完成下列動作:1) 取中斷類型號N2) 標志寄存器(FLAG)內容入棧3) 當前代碼段寄存器(CS)內容入棧4) 當前指令計數器(IP)內容入棧5) 禁止硬件中斷和單步中斷(IF=0, TF=0)6) 從中斷向量表中取4*N的字節內容送IP,取4*N+2中的字節內容送CS7) 轉中斷處理程序 19、試計算邏輯地址4017:000A,4015:0002A和4010:0007A

36、對應的物理地址。這三個物理地址說明了什么問題?答:對應的物理地址是4017AH,說明一個物理地址可以對應多個邏輯地址。20、下列操作可使用哪些寄存器?加法和減法循環計數乘法和除法將要執行的指令地址答:加法和減法通用寄存器;循環計數CX乘法和除法AL、AX、DX寄存器將要執行的指令地址IP寄存器。21、指令和偽指令的區別?答:指令是在程序執行期間由計算機來執行的,而偽指令(偽操作)是匯編程序對源程序進行匯編時執行的操作。指令語句每一條指令語句在源程序匯編時都要產生可供計算機執行的指令代碼(即目標代碼),所以這種語句又叫可執行語句。每一條指令語句表示計算機具有的一個基本能力,如數據傳送,兩數相加或

37、相減,移位等,而這種能力是在目標程序(指令代碼的有序集合)運行時完成的,是依賴于汁算機內的中央處理器(CPU)、存儲器、IO接口等硬件設備來實現的。偽指令語句偽指令語句是用于指示匯編程序如何匯編源程序,所以這種語句又叫命令語句。例如源程序中的偽指令語句告訴匯編程序:該源程序如何分段,有哪些邏輯段在程序段中哪些是當前段,它們分別由哪個段寄存器指向;定義了哪些數據,存儲單元是如何分配的等等。偽指令語句除定義的具體數據要生成目標代碼外,其他均沒有對應的目標代碼。偽指令語句的這些命令功能是由匯編程序在匯編源程序時,通過執行一段程序來完成的,而不是在運行目標程序時實現的。22、中斷與子程序的區別1)中斷

38、發生的過程很像我們所熟悉的子程序調用,不同的是在保護中斷現場時,除了保存返回地址CS:IP之外,還保存了標志寄存器FLAG(PSW)的內容。因為標志寄存器記錄了中斷發生時,程序指令運行的結果特征,當CPU處理完中斷請求返回原程序時,要保證原程序工作的連續性和正確性,所以中斷發生時的FLAG內容也要保存起來。2)另一個不同點是,在中斷發生時,CPU還自動清除了IF位和TF位,這樣設計的目的是使CPU轉入中斷處理程序后,不允許再產生新的中斷,如果在執行中斷處理程序的過程中,還允許外部的中斷,可通過STI指令再把IF置為1。3)編寫中斷處理程序和編寫子程序一樣,所使用的匯編語言指令沒有特殊限制,只是

39、中斷程序返回時使用IRET指令。這條指令的工作步驟和中斷發生時的工作步驟正好相反。它首先把IP、CS和FLAGS的內容出棧,然后返回到中斷發生時緊接著的下一條指令。 23、簡述匯編語言從源程序的建立到運行可執行程序的主要步驟。答:用編輯程序建立匯ASM編語言源程序;用匯編語言對源程序進行匯編,把ASM文件轉化成OBJ文件;用連接程序對目標文件進行連接,把OBJ文件轉換成EXE文件;用DOS命令直接鍵入文件名即可執行。四、判斷題1、段內轉移要改變IP、CS的值。 F 2、JMP SHORT lab是近跳轉。 F ;short是短轉移,near是近轉移3、POP5678H ; F 4、立即尋址方式

40、不能用于目的操作數。 T 5、條件轉移指令只能使用段內直接短跳轉。 T 6、MOVES,5678H ; F 7、不能給段寄存器進行立即數方式賦值。 T 8、立即尋址方式不能用于目的操作數。 T 9、LEA DI,BXSI T 10、ADD  AX, CL   F 11、MOV指令會影響標志位。 F 12、ORAX,BX; T 13、CF位可以用來表示無符號數溢出,OF位可以用來表示有符號數溢出。 T 14、ADDCX,AL; F 15、LODSB指令執行的操作為:(DI)(AL),(DI)(DI)+1或(DI)(DI)-1。 F 注:(SI)(

41、AL),(SI)(SI)+1或(SI)(SI)-116、關系操作符EQ、NE、LT、GT、LE、GE的計算結果為邏輯值,0FFFFH表示為真,0表示為假。 T 17、SHLAX,3 F 18、PUSH WORD PTR 20BX+SI-2; T 19、LEA BX,4BX; T 20、JMP BYTE PTR SI; F 21、INAX,0ADH; T 22、AND  AX,DX   F 23、TESTAL,00000100B T 24、RCRBX+SI,CX F 25、DIV10H F 26、MOVAX,BXBP F 27、INAX,3F0H F 28

42、、MUL0ABH F 29、JLEFAR PTR LAB;LAB是一個語句的標號 F 30、CALLAX T 31、MOVDS,2000H F 33、指令INC BL影響所有的標志位。 F 34、SP的內容可以不指向堆棧的棧頂。 F 35、END LAB語句指示本程序執行到標號LAB處則結束。 F 36、同一個文件中不允許出現相同的子程序名。 T 37、定義在代碼段C中的類型屬性為FAR的過程只能在代碼段C之外調用。 F 38、ADDX,Y;X,Y是DB定義的變量。 F 39、對于一個正數,其原碼、反碼和補碼都一樣。 T 40、SUBAX,1指令與DEC AX指令都執行(AX)=(AX)-1的

43、操作,兩者完全可以相互替代。 F 41、DIV SRC執行字節除法時,商存放在(AL)中,而余數存放在(AH)中。 T 42、MOV WORD PTRBX,1000 T 43、ADD AX,ACH; F 44、MOV CX,BYTE PTR STR+1 T 45、MOV STRBXDI,ES:AX F 46、JMP FAR PTR LAB ;LAB是標號 T 47、IN AX,3F0H F 五、編程題1、 從鍵盤輸入一字符串,然后將其按反序存放并輸出。DATA SEGMENT STRING1 DB 80,0,80 DUP(?) STRING2 DB 80 DUP(?) DATA ENDS CO

44、DE SEGMENT ASSUME CS:CODE,DS:DATA,ES:DATA MAIN PROC FAR START: MOV AX,DATA MOV DS,AX MOV ES,AX LEA DX,STRING1 MOV AH,0AH INT 21H MOV CL,STRING1+1 SUB CH,CH LEA DI, STRING2 LEA SI,STRING1 ADD SI,CX INC SI LAB: MOV AL,SI MOV DI,AL INC DI DEC SI LOOP LAB MOV BYTE PTRDI,'$' LEA DX,STRING2 MOV AH

45、,9 INT 21H MOV AH,4CH INT 21H MAIN ENDP CODE ENDS END START2、將首地址為x的5個字正整數數組從小到大排序。DATA SEGMENTx DW 56H,85H,96H,52H,63HDATA ENDSCSEG SEGMENTASSUME CS:CSEG,DS:DATASTART:PUSHDSSUBAX,AXPUSHAXMOVAX,DATAMOVDS,AX MOVCX,5 DECCXLOOP1:MOVDI,CXMOVBX,0LOOP2: MOVAX,XBXCMPAX,XBX+2 JLCON XCHGAX,XBX+2 MOV XBX,AXCO

46、N:ADD BX,2 LOOP LOOP2 MOV CX,DI LOOP LOOP1 RETCSEG ENDS END START3、 給出一百分制成績,要求輸出成績等級“A”,“B”,“C”,“D”,“E”。90分以上為A,8089為B,7079為C,6069為D,60分以下為E。DATA SEGMENT X DB 52 DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA MAIN PROC FAR START: MOVAX,DATA MOVDS,AX MOVAL,X CMPAL,90 JBLAB1 MOVDL,'A' JMPEXIT LAB1: CMPAL,80 JBLAB2 MOVDL,'B' JMPEXIT

溫馨提示

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

評論

0/150

提交評論