2012年華中科技大學本科匯編試卷-A卷-答案(共9頁)_第1頁
2012年華中科技大學本科匯編試卷-A卷-答案(共9頁)_第2頁
2012年華中科技大學本科匯編試卷-A卷-答案(共9頁)_第3頁
2012年華中科技大學本科匯編試卷-A卷-答案(共9頁)_第4頁
2012年華中科技大學本科匯編試卷-A卷-答案(共9頁)_第5頁
已閱讀5頁,還剩4頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、精選優質文檔-傾情為你奉上計算機學院2011-2012學年第二學期匯編語言程序設計考試試卷(A卷)及參考答案 閉卷 考試時間: 2012年5月5日專業 班級 學號 學生姓名 題號一二三四五六七八總分核對人題分1010101020101020100得分得 分評卷人一、改錯。(每個小題中只能對一個操作數進行修改。共10分,每小題1分)1XOR AX, CX;XOR AX, BX2. CMP EDX, 80H;CMP WORD PTR EDX, 80H3. JMP WORD PTR BL;JMP WORD PTR BX4SUB EAX, BP;SUB AX, BP5MOV CL, 1234H;MOV

2、 CX, 1234H6. PUSH AL;PUSH AX7. IN AL, 255H;MOV DX, 255H / IN AL, DX8. SUB 125, BP;SUB BP, 1259. ADD DI, DWORD PTR EAX;ADD DI, EAX10. MOV CS, AX ;MOV AX, CS得 分評卷人二、填空 (共10分,每空1分)1. 設(CS)=1000H,(DS)=2000H,(SS)=3000H,(DI)=0300H,(IP)=0100H,(20300H)=50H,(20301H)=01H,(20302H)=00H,(20303H)=50H。 實方式下, 指令“ J

3、MP WORD PTR DI ”轉向的物理地址是 10150H ,它是一條 段內 轉移指令。 2. 依次執行 XOR EAX, EAX DEC AL DEC AL MOVSX EAX, AL ; 將(AL)的最高位擴展并送入目的操作數地址中 ADD EAX, 3執行完后,(AX)= 0001H CF = 1 ZF = 0 SF = 0 3. 下列指令序列執行前, (EAX)=0FFFFA015H,(EBX)=1000H。執行下列指令序列XOR EDX,EDXIDIV EBXIMUL BX則執行后: (EDX)= 0000FFFFH , (EAX)= 000FA000H ,對于上述最后一條乘指令

4、,如果乘積的高位不是低位的符號擴展,則CF1、OF 1 ,而SF、ZF、AF和PF標志位 未定義 。 得 分評卷人三、簡答題(共10分)1 簡述實方式下新增一個中斷處理程序的主要步驟。(4分)(1) 編制新的中斷處理程序。(2) 獲取中斷號m。若是硬件中斷則有相應的中斷號,否則查找一個空閑的中斷號。(3) 將新的中斷處理程序裝入內存或駐留內存,將新的中斷處理程序的偏移地址和段地址保存到物理地址4*m和4*m+2處。2. 設有 (AX)=1000H,執行下列子程序:TRY PROC NEAR PUSH AX RETTRY ENDP 請畫出上述每條指令執行后堆棧示意圖,并指出執行該子程序后 IP中

5、的內容為多少?(3分)00H10HXXXXXXXXXXXXXXXX(SP)(SP)+1(SP)(SP)+1 PUSH AXRET, 子程序返回后(IP)=1000H3. 基于窗口的應用程序中,窗口消息處理程序主要完成什么功能?(3分)Windows系統中,每個基于窗口的應用程序都有消息處理程序。窗口主程序不斷地從該應用程序的消息隊列中檢測消息,若檢測到消息,則通知操作系統調用該窗口的消息處理程序去處理該消息。得 分評卷人偏移地址00H01H02H03H04H05H06H07H08H09H0AH0BH四、數據段定義如下,按要求回答問題。(共10分)0DH0AH2500 06H 00HBUFB$B

6、UFA ABUFBDATA SEGMENT USE16BUFA DB 0DH,0AHA DW 25, BUFBAlen EQU $ ABUFB DB BUFB,2 DUP ($)DATA ENDS1、 以字節為單位畫出它們在存儲單元中的存放形式,在圖中標明各變量的偏移地址值。(6分)2、Alen的值是多少?(分)Alen = 63、執行下列語句后,屏幕上會顯示什么?(3分) MOV AX,DATAMOV DS,AXMOV DX,A+2MOV AH, 9INT 21H顯示:BUFB得 分評卷人五、程序填空(共20分,每空2分)1. 下列程序輸入兩個串, 比較兩個串是否相同, 相同則顯示”equa

7、l”, 否則顯示”not equal”。.386IOMACRO A, B LEA DX, BMOV AH, AINT 21HENDMDATA SEGMENTUSE16STR3DB'EQUAL!', 0DH, 0AH,'$'STR4DB'NOT EQUAL!', 0DH, 0AH,'$'BUF1 DB80,0,80DUP(0)BUF2 DB 80,0,80DUP(0)DATA ENDSCODESEGMENT USE16 ASSUME CS: CODE, DS: DATASTART:MOV AX, DATA MOV DS, AX IO

8、 10,BUF1IO 10,BUF2 MOV AL, BUF1+1 MOV AH, BUF2+1 CMP AL, AH JNE NOTEQUAL LEA SI, BUF1+2 LEA DI, BUF2+2 MOVZX CX, ALAGAIN:MOV AL,SICMP AL,DI JNE NOTEQUALINC SIINC DI LOOP AGAIN IO 9, STR3 QUIT: MOV AH, 4CH INT 21H NOTEQUAL:IO 9, STR4JMP QUITCODEENDS END START2. 下列子程序F2T10將EAX中的有符號數以十進制形式在顯示器上輸出。;調用子程

9、序名:RADIX.386DATA SEGMENT USE16 BUF DB 12 DUP(?) DATA ENDS.F2T10 PROC PUSH EBX PUSH SI LEA SI,BUF B: OR EAX, EAX JNS PLUS NEG EAX MOV BYTE PTR SI,- INC SI PLUS: MOV EBX, 10 CALL RADIX MOV BYTE PTR SI,$ LEA DX, BUF MOV AH, 9 INT 21H POP SI POP EBX RETF2T10 ENDPRADIX PROC; 入口參數:EAX存放待轉換的32位無符號二進制數; EBX

10、存放要轉換數制的基數; SI存放轉換后的指定進制數的ASCII碼數字串的字節緩沖區首址;輸出參數: SI指向字節緩沖區中最后一個ASCII碼的下一個字節處 .RADIX ENDP3.下列程序實現32位二進制數相加,并顯示。MOV DL, BLAND DL, 0FH OR DL, 30HCMP DL, 3AHJB LOPBADD DL, 7LOPB: MOV AH, 2INT 21HLOOP LOPAMOV AH, 2MOV DL,HINT 21H .EXIT END.MODEL SMALL.386.STACK .DATABUF DB H+H=,$.CODE.STARTUPMOV DX, OFF

11、SET BUFMOV AH, 9INT 21HMOV EBX, HADD EBX, H MOV CX, 8 LOPA: ROL EBX, 4(接右邊程序)得 分評卷人六、編寫程序段(共10分)1. 設有下述數據定義:BUF1 DB BADCEFHGIJKLMNOPQRSTUVWXYZBUF2 DB 30 DUP(0)試編寫程序段將BUF1中的串從右向左傳送到以BUF2為首址的存儲區中 ; ACM班實現的程序中使用的寄存器數不超過2個。(4分)LEA SI, BUF2 - 1LEA DI, BUF2MOV CX, BUF2 BUF1L1:MOV AL, SIMOV DI, ALDEC SIINC

12、 DILOOP L12已知BUF DW 22, 789, -234。請分別用下面指定的尋址方式將BUF的最后一個字送到寄存器AX中。(6分)(1)直接尋址方式MOV AX, BUF+4(2)變址尋址方式MOV SI, OFFSET BUFMOV AX, 4SI(3)基址加變址尋址方式MOV SI, 4MOV AX, BUFSI得 分評卷人七、程序閱讀分析(10分)程序代碼如下,閱讀程序,回答后面的問題。 (10分).386DATA SEGMENT USE16BUF DB 80 DUP(0)INBUF DB 80,?, 81 DUP(0)PRMPTMSG DB 'PLEASE INPUT

13、:$'CRLF DB 0DH, 0AH,'$'DATA ENDSSTACK SEGMENT USE16 STACKDB 256 DUP(0)STACK ENDSDISPSTR MACRO BUF LEA DX,BUF MOV AH,9 INT 21H ENDMCODE SEGMENT USE16 ASSUME CS:CODE,DS:DATA, SS:STACKSTART: MOV AX,DATA MOV DS,AX DISPSTR PRMPTMSG LEA DX, INBUF MOV AH,10 INT 21HPUSH OFFSET BUFPUSH OFFSET INB

14、UF L1: CALL SCANSTRPOP AXPOP AX DISPSTR CRLF L2: DISPSTR BUF MOV AH, 4CH INT 21HSCANSTR PROCPUSH BPMOV BP,SP MOV SI,BP+4MOV BX,BP+6INC SIMOV CL,SIMOV CH,0INC SI LOPA: MOV AL,SI CMP AL,'A' JB LOPB CMP AL,'Z' JA LOPB ADD AL,'a'-'A' LOPB:INC SI MOV BX,AL INC BX LOOP LOPA

15、 MOV BYTE PTR BX, '$'POP BP RETSCANSTR ENDPCODE ENDS END START (1)該程序完成了什么功能?(6分)從鍵盤輸入一個字符串,將該字符串拷貝到緩沖區BUF中,在拷貝的同時將其中的大寫字母AZ轉換為小寫字母az,并顯示轉換后的字符串。(2)子程序SCANSTR的入口、出口參數是什么?(2分)入口參數:INBUF 和 BUF 的偏移地址出口參數:SI指向BUF中字符串的結束標記回車鍵的位置,BX指向轉換后的字符串最后一個結尾標記$(3)在TD中調試時,如何操作方可讓程序執行到LOPA處暫停?(2分)在LOPA處設置斷點。得 分評卷人八、編寫程序(20分)編寫一個程序,讀取字存儲單元內容,將其

溫馨提示

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

評論

0/150

提交評論