




已閱讀5頁,還剩4頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
2013-2014學(xué)年第2學(xué)期匯編語言程序設(shè)計考試試卷 A卷 閉卷 考試時間: 2014年5月 15 日 專業(yè) 班級 學(xué)號 學(xué)生姓名 題號一二三四五六七八總分核對人題分1010102010101020100得分得分評卷人一、填空題(共10分,每空1分)1、訪問存放在內(nèi)存中的數(shù)據(jù)時,需要知道該數(shù)據(jù)的物理地址。在實(shí)方式下,設(shè) (DS)=1000H, 則指令 MOV AX, DS:200H 中源操作數(shù)的物理地址是 10200H 。2、堆棧也是內(nèi)存中的一片數(shù)據(jù)存儲區(qū)域,要訪問棧頂元素,同樣要知道其物理地址。在實(shí)方式下,設(shè)(SS)= 2000H, (SP)= 100 H,則棧頂元素的物理地址是 20100H 。 3、一個內(nèi)存單元的物理地址是唯一的,但是在寫指令時,可以由多種方式表達(dá)出同一個單元的地址。例如,設(shè)在數(shù)據(jù)段(DS)中定義了變量 LEN DW 10H。 代碼段中有: LEA BX, LENMOV SI, 0 在這兩條指令之后,可使用如下幾種方式將LEN 中的內(nèi)容送入 CX中。用直接尋址方式 : MOV CX, LEN 用寄存器間接尋址方式:MOV CX, BX 用變址尋址方式: MOV CX, LENSI or 0BX 4、在訪問一個內(nèi)存單元時,除了知道其物理地址外,還應(yīng)明確其類型,即明確以該地址取一個字節(jié)、一個字,還是一個雙字。設(shè)BUF DW 1122H, 3344H 則執(zhí)行 MOV CL, BYTE PTR BUF 后, (CL) = 22H 執(zhí)行 MOV CX, BUF后, (CX) = 1122H 執(zhí)行 MOV ECX, DWORD PTR BUF 后,(ECX)= 33441122H 5、外部設(shè)備寄存器只能用I/O指令來訪問。從端口地址60H輸入一個字節(jié)到AL中的指令為: IN AL, 60H 。而“OUT 70H, AL” 的功能是 將AL的內(nèi)容輸出到端口地址為70H的外設(shè)寄存器 。得分評卷人二、選擇題(共10分,每空1分)1、指令 MOV DI, WORD PTR SI 的錯誤原因是 C 。(A) DI不能用于寄存器間接尋址方式 (B) WORD PTR的用法錯誤 (C) 兩個操作數(shù)不能同時為存儲器操作數(shù) (D) 源操作數(shù)的類型不明確2、指令 ADD CX, AL 的錯誤原因是 D 。(A) 兩個操作數(shù)不能同時為存儲器操作數(shù) (B) 兩個操作數(shù)的類型均不明確(C) 兩個操作數(shù)的類型不匹配 (D) CX 不能用于寄存器間接尋址方式3、指令 ADD BX, 1000H 的錯誤原因是 B 。(A) 兩個操作數(shù)不能同時為存儲器操作數(shù) (B) 兩個操作數(shù)的類型均不明確(C) BX 不能用于寄存器間接尋址方式 (D) 源操作數(shù)不能用立即尋址方式4、指令 ADD AH, BX 的錯誤原因是 B 。(A) BX, AH 的位置寫反了 (B) 兩個操作數(shù)的類型不匹配(C) 兩個操作數(shù)不能同時為存儲器操作數(shù) (D) 兩個操作數(shù)的類型均不明確5、下面語句中,源操作數(shù)在堆棧段中且語法正確的指令是 A 。(A) MOV AX, SS:SI (B) MOV BYTE PTR BP, $(C) MOV SS:SI, AX (D) MOV BYTE PTR SI, BP6、 設(shè)LEN為符號常量,BUFW 為字變量,下面語句中有語法錯誤的語句是 D 。(A) MOV BX, BUFW (B) MOV BUFW , LEN(C) LEA BX , BUFW (D) MOV LEN , BUFW7、不能用來訪問外部設(shè)備寄存器的方法是 A 。(A) MOV 指令 (B) IN / OUT 指令(C) DOS 系統(tǒng)功能調(diào)用 (D) BIOS 功能調(diào)用8、 設(shè)(BX)=7000H, (CX)=2014H, 則執(zhí)行 ADD BX,CX后,有 D 。(A) SF=0,OF=0 (B) SF=0,OF=1 (C) SF=1,OF=0 (D) SF=1,OF=19、設(shè)有BUFB DB 20,21 DUP(0),現(xiàn)采用10號功能調(diào)用輸入一個串到BUFB緩沖區(qū)中?,F(xiàn)要將實(shí)際輸入串的長度送入BX中,正確的語句是 D 。(A) MOV BL, BUFB+1 (B) MOV BL, 20(C) MOV BX, BUFB+1 (D) MOV BL, BUFB+1 MOV BH, 010、設(shè) (BX)=2014H,CF=0 則執(zhí)行循環(huán)左移指令 ROL BX, 4后,有 A 。(A) (BX)= 0142H, CF=0 (B) (BX) = 0140H,CF=0 (C) (BX)= 0142H, CF=1 (D) (BX) = 0201H,CF=1得分評卷人三、簡答題(共10分)1 描述實(shí)方式下,CPU執(zhí)行指令 INT m 時,會進(jìn)行哪些操作(包括從何處得到m號中斷處理程序的入口段地址及偏移地址)。(5分) (1) 狀態(tài)寄存器壓棧(2) 斷點(diǎn)的(CS)和(IP) 先后壓棧(3) 從物理地址為4*m和4*m+2的地方分別取2個字節(jié)送到IP和CS2簡述基于窗口的Windows程序中窗口主程序WinMain()的核心工作流程。 (3分) (1) 定義窗口變量并進(jìn)行初始化,注冊窗口類(2) 創(chuàng)建窗口類(3) 裝載菜單等各種資源(4) 進(jìn)入消息循環(huán):從操作系統(tǒng)獲取與本窗口程序有關(guān)的消息,若是退出消息則返回;否則對消息進(jìn)行分析并發(fā)送到本程序的窗口消息處理函數(shù),然后轉(zhuǎn)(4)3. 設(shè)(AX)=9014H, (BX)=2014H, 在執(zhí)行指令 CMP AX, BX 后,“JG L1”的轉(zhuǎn)移條件是否成立?如果將“JG L1”換成“JA L1”,轉(zhuǎn)移條件又是否成立? (2分) JA L1成立JG L1不成立得分評卷人偏移地址00H01H02H03H04H05H06H07H08H09H四、問答題(共10分)X1X2X3X478H56H35H36H37H38H02H00H05H05H 一個數(shù)據(jù)段定義如下: DATASEGMENT USE16X1 DW 5678HX2 DB 5678LEN EQU $ - X1X3 DW X2X4 DB 2 DUP (5)DATAENDS 請?jiān)谟冶砀裰幸宰止?jié)為單位填寫該數(shù)據(jù)在存儲器的存放形式,并標(biāo)明X1、X2、X3、X4所處的位置及偏移地址。 (7分)X1、X2、X3、X4的偏移地址分別是:00H、02H、06H、08H2、執(zhí)行如下指令后,寄存器的值是什么?(3分) MOV BX, LEN (BX)= 06H MOV SI, X3 (SI)= 0002H MOV AL, SI (AL)= 35H 3、實(shí)方式下,設(shè)有如下程序: (10分)BUF DB 20 DUP (0) INVOKE ITOA, 1234H, 10, OFFSET BUF MOV DX, OFFSET BUF .ITOA PROC NEAR STDCALL NUM:WORD, RADIX:WORD, RESULT:WORD MOV AX, NUM MOV BX, RADIX . RETITOA ENDP . 生成的機(jī)器代碼,反匯編的結(jié)果如下: CS:0005 PUSH 001F CS:0008 PUSH 000A CS:000A PUSH 1234 CS:000D CALL 001B CS:0010 MOV DX, 001F CS:001B PUSH BP CS:001C MOV BP, SP CS:001E MOV AX, BP + 04 CS:0021 MOV BX, BP+ 06 試以字節(jié)為單位畫出剛進(jìn)入子程序ITOA 時的堆棧示意圖,并在圖中標(biāo)出NUM, RADIX, RESULT的位置。 (5分) 偽執(zhí)令I(lǐng)NVOKE 對應(yīng)的機(jī)器執(zhí)令是什么?參數(shù)是按什么順序壓入堆棧的?(3分) 在生成的目標(biāo)代碼中,讀取參數(shù) NUM的值的語句是什么?(2分)(BP-L)(BP-H)10H00H34H12H0AH00H1FH00H(BP)=(SP), 低地址+2+4 NUM+6 RADIX+8 RESULT高地址(2) CALL 001B, 從右到左(3) MOV AX, BP+04得分評卷人五、程序填空題(共10分,每空1分) 1. 子程序F2T16的功能是將(BX)中的內(nèi)容以4位十六進(jìn)制串的形式顯示到屏幕上,請?jiān)诔绦蚩瞻滋幪钊肟杖钡拇a。 TAB DB 0123456789ABCDEF F2T16 PROC PUSHA ;將8個16位通用寄存器壓棧 MOV CX, 4 F2T16_LP:ROL BX, 4;將BX循環(huán)左移4位 MOV SI, BX AND SI, 0FH MOV DL,TABSI MOV AH, 02H INT 21H DEC CX JNZ F2T16_LP POPA ;將8個字從堆棧彈出,送相應(yīng)的寄存器 RET F2T16 ENDP2、 下面程序段的功能是統(tǒng)計MSG中所含字符A的個數(shù),并送入變量COUNT中,請?jiān)诔绦蚩瞻滋幪钊肟杖钡拇a。MSG DB ASSEMBLY LANGUAGE PROGRAMMINGLEN EQU $ - MSG COUNT DB 0MOV CX,LEN MOV BL, 0 _ MOV SI, OFFSET MSGLP1:CMP _SI_, AJNE LP2INC BL _LP2: INCSI DEC CX JNZ LP1 MOV COUNT, BL得分評卷人六、編寫程序段(共10分)1、 設(shè)計宏指令 D_ADD,完成 (X)+(Y)-Z,其中X,Y,Z都是字類型的變量。要求調(diào)用宏指令前、后,所有通用寄存器中的內(nèi)容保持不變。(5分) D_ADD MACRO X, Y, Z PUSHAXMOVAX, X ADDAX, YMOVZ, AX POPAX ENDM2、編寫程序段(只要核心代碼,有關(guān)段定義、假定偽指令均不需要),統(tǒng)計BX中“1”的個數(shù),統(tǒng)計結(jié)果放在CX中。要求程序段中不出現(xiàn)移位操作指令(5分)MOVCX, 0LP1:CMPBX, 0JZLP3TESTBX, 8000HJZLP2INCCXLP2:ADDBX, BXJMPLP1LP3:得分評卷人七、分析程序(共10分,每題5分)1 閱讀程序,解答問題。 .386 DATASEGMENT USE16STR DB This is a test program $LENDB0DATAENDSCODESEGMENT USE16ASSUME CS:CODE, DS:DATABEGIN:MOVAX, DATAMOVDS, AXMOVSI, OFFSET STRMOVCL, 0LOP:MOVAL, SICMPAL, $JEEXITINCSIINCCLJMPLOPEXIT:MOVLEN, CLMOVAH, 4CHINT21HCODEENDSENDBEGIN() 該程序完成什么功能?(3分)統(tǒng)計字符串STR中第一個$字符前面的字符個數(shù)并存放到變量LEN中。()如果將INC SI漏寫,結(jié)果如何?(2分)若STR中的第一個字符為$,則程序正常執(zhí)行(結(jié)果為0);否則死循環(huán)。2、閱讀程序,解答問題。CODE SEGMENT USE16ASSUME CS:CODEBEGIN: CALL OUTPUTLP1: DB VERY GOOD $,0DH, 0AH, 0 LP2: CALL OUTPUT LP3: DB ASSEMBLY LANGUAGE , 0 LP4: MOV AH, 4CH INT 21HOUTPUT PROC POP SILOOPA: MOV DL, CS:SI INC SI CMP DL, 0 JZ EXIT MOV AH, 2 INT 21H JMP LOOPAEXIT: PUSH SI RETOUTPUT ENDPCODE ENDS END BEGIN(1) 運(yùn)行該程序后,屏幕上會顯示什么 ? (2分)VERY GOOD ASSEMBLY LANGUAGE(2) 第一次調(diào)用子程序,并執(zhí)行子程序的RET指令后,程序會轉(zhuǎn)移到何處?為什么?(3分)程序會轉(zhuǎn)移到LP2。因?yàn)樽映绦蛟贓XIT處SI的內(nèi)容為LP2的偏移地址,它被壓入堆棧后緊接著執(zhí)行RET指令,RET指令將從堆棧中彈出一個字到IP寄存器中,這時(IP)為LP2的偏移地址。得分評卷人八、程序設(shè)計(20分) 設(shè)以BUF1、BUF2為首地址的字節(jié)存儲區(qū)中,均存放了以數(shù)字0為結(jié)束標(biāo)志的字符串。試編寫一個完整的程序,比較兩個存儲區(qū)中的字符串是否相同。若相同,則顯示 SAME, 否則顯示 NOT SAME。要求:(1) 比較兩個串是否相同,要用子程序 STRCMP 來實(shí)現(xiàn)。兩個串的首地址要通過堆棧方式傳遞,也即子程序從堆棧中獲得兩個要比較串的首地址。若兩個串相同,子程序返回(AX)=1; 否則返回(AX)=0。 (2) 在主程序中顯示比較結(jié)果信息。(3) 寫出子程序中寄存器的使用分配情況,并給出必要的注釋。(4) 程序完整(包括數(shù)據(jù)段定義、堆棧段定義、代碼段定義等)。(5) BUF1, BUF2中字符串的內(nèi)容自己設(shè)定。STACKSEGMENT USE16 STACKDB 200 DUP(0)STACKENDSDATASEGMENT USE16BUF1DB 1234abcd, 0BUF2DB 1234abc, 0MSGOKDB SAME, $MSGERRDB NOT SAME,
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 廠房股權(quán)轉(zhuǎn)讓與新能源產(chǎn)業(yè)合作開發(fā)合同
- 商業(yè)地產(chǎn)項(xiàng)目場地標(biāo)準(zhǔn)租賃協(xié)議
- 鄰居砸墻協(xié)議書范本
- 果園采摘園承包與果樹修剪技術(shù)服務(wù)合同
- 風(fēng)險防范叉車操作工勞動合同
- 高端餐飲企業(yè)員工勞動合同范本(含績效考核)
- 分公司投資建設(shè)與產(chǎn)業(yè)園區(qū)合作協(xié)議
- 中醫(yī)情志與健康的關(guān)系
- AI教育智適應(yīng)系統(tǒng)應(yīng)用與發(fā)展
- 珍愛生命健康成長幼兒園
- 2022年版初中物理課程標(biāo)準(zhǔn)解讀-課件
- 2024年建筑業(yè)10項(xiàng)新技術(shù)
- MOOC 大學(xué)物理實(shí)驗(yàn)-鄭州大學(xué) 中國大學(xué)慕課答案
- 術(shù)后病人燙傷不良事件PDCA循環(huán)分析課件
- 配電設(shè)備運(yùn)行、維護(hù)、巡回檢查制度范本
- 2024年上海外服招聘筆試參考題庫附帶答案詳解
- 工業(yè)安全教學(xué)課件
- 骨科手術(shù)后的康復(fù)輔助器具和輔助裝置
- 新員工企業(yè)文化培訓(xùn)
- 2024年江西吉安市城投公司招聘筆試參考題庫含答案解析
- 農(nóng)產(chǎn)品安全生產(chǎn)技術(shù)
評論
0/150
提交評論