




已閱讀5頁(yè),還剩4頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
2013-2014學(xué)年第2學(xué)期匯編語(yǔ)言程序設(shè)計(jì)考試試卷 A卷 閉卷 考試時(shí)間: 2014年5月 15 日 專(zhuān)業(yè) 班級(jí) 學(xué)號(hào) 學(xué)生姓名 題號(hào)一二三四五六七八總分核對(duì)人題分1010102010101020100得分得分評(píng)卷人一、填空題(共10分,每空1分)1、訪問(wèn)存放在內(nèi)存中的數(shù)據(jù)時(shí),需要知道該數(shù)據(jù)的物理地址。在實(shí)方式下,設(shè) (DS)=1000H, 則指令 MOV AX, DS:200H 中源操作數(shù)的物理地址是 10200H 。2、堆棧也是內(nèi)存中的一片數(shù)據(jù)存儲(chǔ)區(qū)域,要訪問(wèn)棧頂元素,同樣要知道其物理地址。在實(shí)方式下,設(shè)(SS)= 2000H, (SP)= 100 H,則棧頂元素的物理地址是 20100H 。 3、一個(gè)內(nèi)存單元的物理地址是唯一的,但是在寫(xiě)指令時(shí),可以由多種方式表達(dá)出同一個(gè)單元的地址。例如,設(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、在訪問(wèn)一個(gè)內(nèi)存單元時(shí),除了知道其物理地址外,還應(yīng)明確其類(lèi)型,即明確以該地址取一個(gè)字節(jié)、一個(gè)字,還是一個(gè)雙字。設(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指令來(lái)訪問(wèn)。從端口地址60H輸入一個(gè)字節(jié)到AL中的指令為: IN AL, 60H 。而“OUT 70H, AL” 的功能是 將AL的內(nèi)容輸出到端口地址為70H的外設(shè)寄存器 。得分評(píng)卷人二、選擇題(共10分,每空1分)1、指令 MOV DI, WORD PTR SI 的錯(cuò)誤原因是 C 。(A) DI不能用于寄存器間接尋址方式 (B) WORD PTR的用法錯(cuò)誤 (C) 兩個(gè)操作數(shù)不能同時(shí)為存儲(chǔ)器操作數(shù) (D) 源操作數(shù)的類(lèi)型不明確2、指令 ADD CX, AL 的錯(cuò)誤原因是 D 。(A) 兩個(gè)操作數(shù)不能同時(shí)為存儲(chǔ)器操作數(shù) (B) 兩個(gè)操作數(shù)的類(lèi)型均不明確(C) 兩個(gè)操作數(shù)的類(lèi)型不匹配 (D) CX 不能用于寄存器間接尋址方式3、指令 ADD BX, 1000H 的錯(cuò)誤原因是 B 。(A) 兩個(gè)操作數(shù)不能同時(shí)為存儲(chǔ)器操作數(shù) (B) 兩個(gè)操作數(shù)的類(lèi)型均不明確(C) BX 不能用于寄存器間接尋址方式 (D) 源操作數(shù)不能用立即尋址方式4、指令 ADD AH, BX 的錯(cuò)誤原因是 B 。(A) BX, AH 的位置寫(xiě)反了 (B) 兩個(gè)操作數(shù)的類(lèi)型不匹配(C) 兩個(gè)操作數(shù)不能同時(shí)為存儲(chǔ)器操作數(shù) (D) 兩個(gè)操作數(shù)的類(lèi)型均不明確5、下面語(yǔ)句中,源操作數(shù)在堆棧段中且語(yǔ)法正確的指令是 A 。(A) MOV AX, SS:SI (B) MOV BYTE PTR BP, $(C) MOV SS:SI, AX (D) MOV BYTE PTR SI, BP6、 設(shè)LEN為符號(hào)常量,BUFW 為字變量,下面語(yǔ)句中有語(yǔ)法錯(cuò)誤的語(yǔ)句是 D 。(A) MOV BX, BUFW (B) MOV BUFW , LEN(C) LEA BX , BUFW (D) MOV LEN , BUFW7、不能用來(lái)訪問(wèn)外部設(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號(hào)功能調(diào)用輸入一個(gè)串到BUFB緩沖區(qū)中。現(xiàn)要將實(shí)際輸入串的長(zhǎng)度送入BX中,正確的語(yǔ)句是 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得分評(píng)卷人三、簡(jiǎn)答題(共10分)1 描述實(shí)方式下,CPU執(zhí)行指令 INT m 時(shí),會(huì)進(jìn)行哪些操作(包括從何處得到m號(hào)中斷處理程序的入口段地址及偏移地址)。(5分) (1) 狀態(tài)寄存器壓棧(2) 斷點(diǎn)的(CS)和(IP) 先后壓棧(3) 從物理地址為4*m和4*m+2的地方分別取2個(gè)字節(jié)送到IP和CS2簡(jiǎn)述基于窗口的Windows程序中窗口主程序WinMain()的核心工作流程。 (3分) (1) 定義窗口變量并進(jìn)行初始化,注冊(cè)窗口類(lèi)(2) 創(chuàng)建窗口類(lèi)(3) 裝載菜單等各種資源(4) 進(jìn)入消息循環(huán):從操作系統(tǒng)獲取與本窗口程序有關(guān)的消息,若是退出消息則返回;否則對(duì)消息進(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不成立得分評(píng)卷人偏移地址00H01H02H03H04H05H06H07H08H09H四、問(wèn)答題(共10分)X1X2X3X478H56H35H36H37H38H02H00H05H05H 一個(gè)數(shù)據(jù)段定義如下: DATASEGMENT USE16X1 DW 5678HX2 DB 5678LEN EQU $ - X1X3 DW X2X4 DB 2 DUP (5)DATAENDS 請(qǐng)?jiān)谟冶砀裰幸宰止?jié)為單位填寫(xiě)該數(shù)據(jù)在存儲(chǔ)器的存放形式,并標(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é)為單位畫(huà)出剛進(jìn)入子程序ITOA 時(shí)的堆棧示意圖,并在圖中標(biāo)出NUM, RADIX, RESULT的位置。 (5分) 偽執(zhí)令I(lǐng)NVOKE 對(duì)應(yīng)的機(jī)器執(zhí)令是什么?參數(shù)是按什么順序壓入堆棧的?(3分) 在生成的目標(biāo)代碼中,讀取參數(shù) NUM的值的語(yǔ)句是什么?(2分)(BP-L)(BP-H)10H00H34H12H0AH00H1FH00H(BP)=(SP), 低地址+2+4 NUM+6 RADIX+8 RESULT高地址(2) CALL 001B, 從右到左(3) MOV AX, BP+04得分評(píng)卷人五、程序填空題(共10分,每空1分) 1. 子程序F2T16的功能是將(BX)中的內(nèi)容以4位十六進(jìn)制串的形式顯示到屏幕上,請(qǐng)?jiān)诔绦蚩瞻滋幪钊肟杖钡拇a。 TAB DB 0123456789ABCDEF F2T16 PROC PUSHA ;將8個(gè)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個(gè)字從堆棧彈出,送相應(yīng)的寄存器 RET F2T16 ENDP2、 下面程序段的功能是統(tǒng)計(jì)MSG中所含字符A的個(gè)數(shù),并送入變量COUNT中,請(qǐng)?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得分評(píng)卷人六、編寫(xiě)程序段(共10分)1、 設(shè)計(jì)宏指令 D_ADD,完成 (X)+(Y)-Z,其中X,Y,Z都是字類(lèi)型的變量。要求調(diào)用宏指令前、后,所有通用寄存器中的內(nèi)容保持不變。(5分) D_ADD MACRO X, Y, Z PUSHAXMOVAX, X ADDAX, YMOVZ, AX POPAX ENDM2、編寫(xiě)程序段(只要核心代碼,有關(guān)段定義、假定偽指令均不需要),統(tǒng)計(jì)BX中“1”的個(gè)數(shù),統(tǒng)計(jì)結(jié)果放在CX中。要求程序段中不出現(xiàn)移位操作指令(5分)MOVCX, 0LP1:CMPBX, 0JZLP3TESTBX, 8000HJZLP2INCCXLP2:ADDBX, BXJMPLP1LP3:得分評(píng)卷人七、分析程序(共10分,每題5分)1 閱讀程序,解答問(wèn)題。 .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)計(jì)字符串STR中第一個(gè)$字符前面的字符個(gè)數(shù)并存放到變量LEN中。()如果將INC SI漏寫(xiě),結(jié)果如何?(2分)若STR中的第一個(gè)字符為$,則程序正常執(zhí)行(結(jié)果為0);否則死循環(huán)。2、閱讀程序,解答問(wèn)題。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)行該程序后,屏幕上會(huì)顯示什么 ? (2分)VERY GOOD ASSEMBLY LANGUAGE(2) 第一次調(diào)用子程序,并執(zhí)行子程序的RET指令后,程序會(huì)轉(zhuǎn)移到何處?為什么?(3分)程序會(huì)轉(zhuǎn)移到LP2。因?yàn)樽映绦蛟贓XIT處SI的內(nèi)容為L(zhǎng)P2的偏移地址,它被壓入堆棧后緊接著執(zhí)行RET指令,RET指令將從堆棧中彈出一個(gè)字到IP寄存器中,這時(shí)(IP)為L(zhǎng)P2的偏移地址。得分評(píng)卷人八、程序設(shè)計(jì)(20分) 設(shè)以BUF1、BUF2為首地址的字節(jié)存儲(chǔ)區(qū)中,均存放了以數(shù)字0為結(jié)束標(biāo)志的字符串。試編寫(xiě)一個(gè)完整的程序,比較兩個(gè)存儲(chǔ)區(qū)中的字符串是否相同。若相同,則顯示 SAME, 否則顯示 NOT SAME。要求:(1) 比較兩個(gè)串是否相同,要用子程序 STRCMP 來(lái)實(shí)現(xiàn)。兩個(gè)串的首地址要通過(guò)堆棧方式傳遞,也即子程序從堆棧中獲得兩個(gè)要比較串的首地址。若兩個(gè)串相同,子程序返回(AX)=1; 否則返回(AX)=0。 (2) 在主程序中顯示比較結(jié)果信息。(3) 寫(xiě)出子程序中寄存器的使用分配情況,并給出必要的注釋。(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. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 頸椎康復(fù)護(hù)理科普
- 2025年高中化學(xué)實(shí)驗(yàn)題專(zhuān)項(xiàng)訓(xùn)練卷:化學(xué)實(shí)驗(yàn)實(shí)驗(yàn)報(bào)告格式規(guī)范
- A-Level生物(A2)2024-202年模擬試卷:生態(tài)學(xué)生態(tài)足跡與生物技術(shù)可持續(xù)發(fā)展
- 2025年跨境電商師中級(jí)考試模擬試題:跨境電商團(tuán)隊(duì)協(xié)作與溝通
- 口腔護(hù)理教案模板
- 2025年自然災(zāi)害防范安全培訓(xùn)考試題庫(kù)解析
- 人教版數(shù)學(xué)八年級(jí)上冊(cè)課件-多邊形的內(nèi)角和
- 2025年執(zhí)業(yè)藥師考試藥學(xué)專(zhuān)業(yè)知識(shí)(一)真題精講與備考策略指南
- 房顫患者護(hù)理
- 急性失血的護(hù)理
- 2025年湖北省初中學(xué)業(yè)水平考試地理模擬卷(三)(學(xué)生版)
- 園林綠化安全培訓(xùn)課件
- 2025屆江蘇省南京市南京師范大學(xué)附屬中學(xué)高三下學(xué)期“揚(yáng)帆起航”數(shù)學(xué)試題
- DB14T 3231-2025安全風(fēng)險(xiǎn)分級(jí)管控和隱患排查治理雙重預(yù)防機(jī)制建設(shè)通則
- 腔隙性腦梗塞護(hù)理常規(guī)
- 2025年入團(tuán)積極分子培訓(xùn)考試題庫(kù)及答案
- 人工智能在價(jià)格預(yù)測(cè)中的應(yīng)用-深度研究
- 《新聞傳播學(xué)》課件
- Unit 3 The world of Science 大單元教學(xué)設(shè)計(jì)-2023-2024學(xué)年高中英語(yǔ)外研版(2019)必修第三冊(cè)
- 延邊大學(xué)《物聯(lián)網(wǎng)技術(shù)1》2023-2024學(xué)年第二學(xué)期期末試卷
- 貨物破損回復(fù)函
評(píng)論
0/150
提交評(píng)論