匯編語言習(xí)題答案_第1頁
匯編語言習(xí)題答案_第2頁
匯編語言習(xí)題答案_第3頁
匯編語言習(xí)題答案_第4頁
匯編語言習(xí)題答案_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、第3章 自測練習(xí)一、選擇題(四選一)1.表示一條處理器指令所在存儲單元的符號地址是 C 。A 變量 B 常量 C 標(biāo)號 D 偏移量2.匯編語言中的變量有多種類型屬性,但錯誤的類型是 B 。A 字節(jié)型byte B 字符型charC 字型word D 雙字型dword3.執(zhí)行mov bx,seg var指令,BX得到變量var的 B 。A 物理地址 B 段地址 C 偏移地址 D 內(nèi)容4.MASM語句中,采用 C 分隔標(biāo)號和指令。A 逗號 B 分號 C 冒號 D 空格5.欲設(shè)定從偏移地址100H開始安排程序,可使用 A 偽指令。A org 100h B start=100hC start db 10

2、0h D start equ 100h6.與“mov bx,offset var”指令等效的指令是 D 。A mov bx,var B 1ds bx,varC les bx,var D 1ea bx,var7.下條語句 buf db l0 dup(3 dup(?,10),3,10)匯編后,變量buf占有的存儲單元字節(jié)數(shù)是 B 。A 100 B 80 C 40 D 208.數(shù)據(jù)定義語句“numl dw(12 or 6 and 2) ge 0eh”,定義的num1單元的內(nèi)容是 B 。 A 0 B 0FFFFH C 1 D 0FFH9.要求將A、B兩個字符的ASCII碼41H和42H順序存放在連續(xù)兩

3、個字節(jié)存儲單元中,可選用的語句是 A 。A dbAB B dw AB C db 0ABH D dw 0ABH10.在匯編語言程序中,對END語句敘述正確的是 C 。A END語句是一可執(zhí)行語句B END語句表示程序執(zhí)行到此結(jié)束C END語句表示源程序到此結(jié)束D END語句在匯編后要產(chǎn)生機(jī)器碼11.下面的數(shù)據(jù)傳送指令中,錯誤的操作是 D 。A mov ss:bx+di,byte ptr 10h B mov dx,l000hC mov word ptrbx,1000h D mov ds,2000h12.下面指令執(zhí)行后,變量dab中的內(nèi)容是 C 。daw dw 2A05hdab db 0Fah mo

4、v al,byte ptr daw sub dab,alA 0DAH B 0FAH C 0F5H D 0D0H 13根據(jù)下面的語句序列,AX寄存器的內(nèi)容是 C 。 tab db 1,2,3,4,5,6 entry equ 3 mov bx,offset tab add bx,entry mov ax,bx A 0405H B 0304H C 0504H D 0403H14.假設(shè)V1和V2是用DW定義的變量,下列指令中正確的是 A 。 A mov V1,20h B mov V1,V2 C mov al,V1 D mov 2000h,V2 15若定義xyz dwA,則xyz字存儲單元中存放的數(shù)據(jù)是

5、 A 。 A 0041H B 4100H C 0061H D 6100H16使用偽指令定義: val db 2 dup (1,2,3dup(3),2dup(1,0),1)則在val存儲區(qū)內(nèi)前10個字節(jié)單元的數(shù)據(jù)是 D 。 A 1,2,3,3,2,1,0,1,2,3 B 1,2,3,3,3,3,2,1,0,1 C 2,1,2,3,3,2,1,0,2,1 D 1,2,3,3,3,1,0,1,0,1二、填空題1.用匯編語言編寫的程序稱為 匯編語言源程序 ,它必須由_匯編_程序?qū)⑺D(zhuǎn)換成二進(jìn)制的機(jī)器語言程序,這種機(jī)器語言程序被稱為_目標(biāo)代碼程序_ ,而轉(zhuǎn)換的過程稱為_匯編_。它還必須用_連接_程序連接

6、,才能生成可執(zhí)行的程序2.匯編語言源程序的擴(kuò)展名是_ASM _,目標(biāo)程序的擴(kuò)展名是_OBJ_,通常產(chǎn)生的可執(zhí)行程序的擴(kuò)展名是_EXE_·3.匯編語言語句中,源操作數(shù)和目的操作數(shù)采用 ,(逗號) 分隔。4.指令“cmp ax,80h”中源操作數(shù)的尋址方式是 立即尋址方式 。5.若定義“datavar db 0a5h,5bh”,填空指令“mov bx,_word ptr datavar”,使該指令無語法錯誤。6.若操作結(jié)果為零轉(zhuǎn)向標(biāo)號goon,應(yīng)使用的語句為_jz goon (或je goon)_。7.與指令“l(fā)oop again”功能等效的兩條指令依次是_dec cx_ 和_jnz a

7、gain_。8.用“dw 1234h”語句定義的一個字,如果改用db定義時,語句應(yīng)為_db 34h,12h_。9.定義wdata dw l020h,則執(zhí)行mov al,byte wdata指令后,AL=_20h_。10.如下數(shù)據(jù)定義: V1 db 4dup(2),2 count equ 10 V2 dd count dup(?)為變量V1分配 5 個字節(jié)存儲;為變量V2分配 40 個字節(jié)存儲11.現(xiàn)有變量定義如下: ary dw 10 dup(?)試填寫執(zhí)行如下指令的結(jié)果: mov ax,type ary ;AX=_2_ mov bx,length ary ;BX=_10_ mov cx,si

8、ze ary ;CX=_20_12.已知數(shù)據(jù)段如下: org 0100h ary dw 3,$+4,5,6 cnt equ $-ary db 1,2,cnt,3則執(zhí)行如下指令后,AX=_0106h_,BX=_0308h_。 mov ax,ary+2 mov bx,ary+10MASM的操作符“$”表示當(dāng)前偏移地址,所以ary定義的$+4=102h+4=106h。同理,cnt=$-ary=108h-100h=813.程序段如下: blk db 46h,84h,34h,-5,20h,22h,73h mov cx,7 lea si,blk next: mov al,si inc si test al

9、,81h loopz next mov bl,si該程序段運行后,AL=_84h_、BL=_34h_。第一次順序執(zhí)行到test指令時,al=84h. 84h和81h相邏輯與的結(jié)果是80h,將使zf=0。隨后執(zhí)行l(wèi)oopz指令,因為zf1而終止循環(huán);此時al=84h,因為si已經(jīng)加1指向后一個數(shù)據(jù),所以bl=34h。14.如下源程序 ;數(shù)據(jù)段 avar dw 0 bvar dw 0 cvar dw 10,20,30 ;代碼段lea bx,cvarmov ax,bxmov bvar,axmov ax,bx+2add ax,bvarmov avar,ax執(zhí)行后,avar= 30 。三、問答題1.匯編

10、語言中,偽指令語句與硬指令語句的本質(zhì)區(qū)別是什么?硬指令:每個硬指令就是一個處理器指令,在CPU執(zhí)行時產(chǎn)生相應(yīng)功能;偽指令:偽指令并不產(chǎn)生處理器指令,它通常用于輔助匯編程序?qū)υ闯绦蜻M(jìn)行匯編。2.匯編語言程序的開發(fā)有哪4個步驟,分別利用什么程序完成、產(chǎn)生什么輸出文件。編輯:用純文本編輯程序源程序,產(chǎn)生ASM源程序。匯編:用匯編程序匯編源程序,產(chǎn)生OBJ目標(biāo)程序。連接:用連接程序?qū)⒛繕?biāo)程序轉(zhuǎn)換為EXE可執(zhí)行程序。調(diào)試:用調(diào)試程序調(diào)試可執(zhí)行程序。3.源程序中如何指明程序執(zhí)行的起始點?通常在起始指令設(shè)置一個標(biāo)號(例如START),然后用“END START”偽指令說明該標(biāo)號的指令為起始點。4.標(biāo)號有哪三

11、個屬性?其含義是什么?段地址:表示標(biāo)號所在代碼段的段地址。偏移地址:表示標(biāo)號所在代碼段的段內(nèi)偏移地址。類型:引用該標(biāo)號時,表示它所在同一個段NEAR類型,還是另外一個段FAR類型。5.說明如下兩條語句的區(qū)別:xyz1 db 75xyz2 equ 75“xyz1 db 75”語句定義了一個字節(jié)變量xyz1,在主存存放了一個75的數(shù)據(jù)?!皒yz2 equ 75”語句說明了一個常量xyz2,它代表75,它在主存中并沒有存放任何內(nèi)容。6.下列語句在存儲器中分別為變量數(shù)據(jù)區(qū)分配多少個字節(jié)單元?var5 dd 10 分配4個字節(jié)單元var6 dw 4 dup(?),2 分配10個字節(jié)單元四、程序閱讀題1下

12、述程序段運行后,從Bxyz單元開始依次存放的數(shù)據(jù)是什么? Axyz db 0F8h Bxyz db 3dup(?)lea di,Bxyz mov cx,3 mov al,Axyz lop: sar al,1 mov di,al inc di loop lop從Bxyz單元開始依次存放0FCH、0FEH、0FFH2.現(xiàn)有源程序如下: ;數(shù)據(jù)段 org 100h block dw l,2,3,4,5,6,7,8,9 count equ ($-block)/2result dw count,? ;代碼段 lea bx,block-2 mov cx,result xor ax,ax goon: add

13、 bx,2 cmp ax,bx jae next mov ax,bx next: loop goon mov result+2,ax該程序段執(zhí)行完后:result+2字存儲單元的內(nèi)容是什么?result+2字存儲單元的內(nèi)容是9(最大值)BX等于多少?BX等于110H程序循環(huán)了多少次?程序循環(huán)了9次3.現(xiàn)有下列數(shù)據(jù)段: string dbABCDEFGHIJKL count equ $-string buffer db count dup(0)下面程序段是實現(xiàn)把string中所有字符逆向傳送到buffer緩沖區(qū)(即將string中第一個字符送到buffer的最后一個單元,sting中最后一字符送

14、到buffer的第一個單元,)。請把程序中所空缺的指令填上。 mov si,offset buffer-1 mov di,offset buffermov cx,count cld again: movsb _sub si, 2_ loop again本題中目的存儲區(qū)用DI指示首地址,源存儲區(qū)用SI指示尾地址,以便實現(xiàn)逆向傳送。如果串傳送指令MOVSB采用增量方式(CLD指令)則DI和SI都自動加1,而實際上SI需要的是減1,所以第二個空缺位置應(yīng)該填上“SUB SI,2”。4說明如下程序段完成什么功能 dxyz1 db 300 dup(?) dxyz2 db l00 dup(?)mov cx,

15、100 mov bx,200 mov si,0 mov di,si next: mov al,dxyz1bxsi mov dxyz2di,al inc si inc di loop next 將dxyz1 后100個數(shù)據(jù)傳送到dxyz2緩沖區(qū)。 五、程序設(shè)計題 1.分別用一個說明性語句完成如下要求: 將數(shù)據(jù)56h、78、0b3h、100依次存放在字節(jié)變量onebyte中; onebyte db 56h、78、0b3h、100 字變量twoword依次存放數(shù)據(jù)3721h、l0h、100、4936h;twoword dw 3721h、l0h、100、4936h;將字符串“How are you!”

16、存入變量fourmsg; fourmsg db How are you!以fivemulti為首地址,連續(xù)存放字節(jié)數(shù)據(jù),2個23h,5個A,10個1和2,25個預(yù)留單元。 fivemulti db 2 dup (23h), 5 dup (A), 10 dup (1,2) , 25 dup (?)2.分別用一個執(zhí)行性語句完成如下要求:棧頂內(nèi)容彈出送字變量stkw; pop stkw雙字變量memd存放的地址指針?biāo)虴S和SI; les si, memd 變量vars類型屬性送AX; mov ax, type vars取字符串變量msg00的首地址送BX; mov bx , offset msg00

17、3按照給定的條件為程序定義一個數(shù)據(jù)段: datal是字符串THIS IS A DATA_SEGMENT; data2是字節(jié)變量,初值為23、4BH、126、D3H; data3是16位數(shù)據(jù)變量,初值為100、255、3、5、3、5、3、5; data4是16位數(shù)據(jù)變量,但只知需要占有100個存儲單元;data5變量存放data4變量的數(shù)據(jù)個數(shù)dataseg segmentdata1 db THIS IS A DATA_SEGMENTdata2 db 23, 4BH, 126, 0D3Hdata3 dw 100, 255, 3dup(3、5)data4 dw 50 dup(?)data5 dw

18、length data4dataseg ends4.假設(shè)有一個數(shù)據(jù)段: buf1 db l00dup(z) buf2 dw 1234h,5678,0abh buf3 db 20 dup (?) buf4 db 9,8,7,6,5 請分別用一條語句完成如下操作: 將buf1的偏移地址送入BX; mov offset buf1將buf2的第4個字節(jié)數(shù)據(jù)送DH; mov dh ,byte ptr buf24將數(shù)據(jù)9fh送入buf3的第10個存儲單元; mov buf310 , 9fh將buf4中最后一個單元內(nèi)容加1,但不能改變標(biāo)志CF的狀態(tài); inc buf4+4計算buf1和buf3兩者所占存儲單元字節(jié)個數(shù)送CX。Mov cx,size buf1+size buf3 5.現(xiàn)要將具有20個字符的string1字符串移到同一個數(shù)據(jù)段的string2中,請定義數(shù)據(jù)段,編寫代碼段 String1 db abcdefghijklmnopqrst ; 假設(shè)一個字符串 String2 db 20 dup (?) ; 代碼段(也可以用串傳送指令) mov cx, 20 mov si ,offset string1 mov di ,offset string2 mov ds, axmov es, axcldrep movsb6.從鍵盤輸入一個字符串(不超過

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論