《組合語言程式設計》試卷( a卷)
2011-2012學年第2學期計算機學院二學位本科生
閉卷考試, 考試時間: 2023年6月 30 日
專業:計算機二學位2010級班級
學號姓名
一、改錯(只能對其中的乙個運算元進行修改,不必說明錯誤原因)。(共10分,每小題1分)
1. mov [si],5改正:mov byte ptr[si],5
2. mov ax, b999h改正:mov ax, 0b999h
3. mov al, bx改正:mov ax, bx
4. mov ax, [dx-1改正:mov ax, [edx-1]
5. mov cs, ax改正:mov ds, ax
6. add [bx],10改正:add byte ptr[bx], 10
7. push al改正:push ax
8. add 100h, ax改正:add ax, 100h
9. mov [bx],word ptr [si] 改正:mov bx, word ptr [si]
10. in ah,60h改正:in al, 60h
二、單項選擇題(每空1分,共10分)
1. 已知(esp)= 100h,執行「push eax」後 (esp)=__b______。
a. 0feh b. 0fch c. 102h d. 104h
2. 在一彙編源程式中,對end語句的敘述不正確的是__b______。
a. end語句後面可以帶乙個位址表示式,表示程式的啟動位址
b. end語句表示程式執行到此結束
c. end語句不可安排在彙編源程式中間
d. end語句屬於偽指令語句,所以不會產生任何目標**
3. 執行「xor ax,ax」後正確的標誌是__a_____。
a. zf=1 b. zf=0 c. cf=1 d. sf=1。
4. 若標誌為if=1,則___c_____。
(a) 不響應全部中斷請求b) 不響應可遮蔽中斷請求
(c) 響應可遮蔽中斷請求d) 不響應不可遮蔽中斷請求
5. 設var 為位元組型別變數,a為符號常量,下面四個語句中有乙個正確的,這個正確語句是___a_____。
a. mov var, ab. mov ax , var
c. mov var , axd. mov a , var
6. 已知(ax)=0f0eh,cf=1,執行指令「ror ax,4」後,(ax)和cf為________。
1,0000,1111,0000,1110 1,1101,0000,1111,0000
a. 0f0e0h,0b. 0f0e0h,1
c. 0e0f0h,0d. 0e0f0h,1
7. 指令 「push word ptr ds:[bp]」 中的源運算元在當前___a_____中。
a. 資料段 b. 附加資料段 c. 堆疊段 d. **段
8. 在子程式定義中偽指令proc必須與____c____成對出現.
a. end b. endm c. endp d. ends
9. 已知暫存器 ax、bx 中存放的是有符號數,請選擇合適的轉移指令,使得 (ax) > (bx) 時轉l1處執行。
cmp ax,bx
___c_____ l1
a. jab. jbc. jgd. jl
10. 數值表示式的計算是在 b 期間進行的。
a.執行b. 彙編c. 連線d. 裝載
三、填空題(15分,每小題1分)
1.(eax)=12345678h時,則(ax)= 5678h 。
2.位址表示式**現的變數或標號,均是取它們的偏移位址ea 參加運算。
3.已知(ax)= 0ffffh,語句 「neg ax」 執行後,(ax) =_____1______。
4. 字串傳送指令中,源串在資料ds 段中,目的串在附加資料es 段中。
5.寫出3條可使ax內容置為0的不同指令語句:
mov ax, 0
xor ax, ax
sub ax, ax
6.依次執行 mov ah, 35h
add ah, 5dh
執行完後,(ah)= _92h_ of = __1__ cf = __0__
7. 下列指令序列執行前,(ax)=1000h,(bx)=2000h,(cx)=3000h,(sp)=1008h。
push ax
push bx
pop ecx
則執行後:(cx)= __2000hsp)= ______1008h_______ 。
8. 在實模式下,設(ds)=1000h,(es)=2000h,(ss)=3000h,(bx)=200h,(si)=300h
指令語句「mov ax,[bx+si]」的源運算元的實體地址是 10500h ,源運算元的定址方式是基址加變址
四、資料段問答題(15分)
乙個資料段定義如下:
data segment use16
buf1 db 1, 12h, 34h, 56h
buf2 dw 1234h, 78h
num equ ($-buf2)/2
buf3 dw buf2
db 2 dup (10)
data ends
1. 請在右**中以位元組為單位填寫資料在儲存器中的存放形式,並標明buf1、buf2和buf3所處的偏移位址。(7分)
2. 指出執行下列各指令後,各暫存器的內容(8分)。
(1)mov al, buf1+2 (al) = ___34h2分)
(2)mov bx, buf2bx) = __1234h2分)
(3)mov ax, buf3+2 (ax) = __0a0ah2分)
(4)mov dl, numdl) = ____2h2分)
四、簡答題(20分)
1. 80x86所常用的定址方式有哪幾種?(4分)
答:1. 暫存器定址
2. 暫存器間接定址
3. 變址定址
4. 基址加變址定址
5. 直接定址
6. 立即定址
7. 某同學編寫了乙個巨集,準備在多處使用,功能是將ax中存放的有符號數的絕對值送到bx,你認為有哪些問題,如何修改(4分)
abs macro
cmp ax,0
jae exit
neg ax
exit: mov bx, ax
abs endm
abs macro
local exit
cmp ax, 0
jge exit
neg ax
exit:
mov bx, ax
endm
8. 在組合語言上機實驗中,將彙編源程式變成可執行程式,需要經過哪幾個步驟(4分)
答:1. 分析問題;
2. 畫程式框圖;
3. 編寫源程式;
4. 進行彙編,將源程式轉換成中間**;
5. 修改源程式的錯誤;
6. 進行鏈結,將中間**轉換成執行程式;
7. 除錯和執行程式,查詢執行錯誤。
9. 主程式與子程式之間傳遞引數的常用方式有哪三種?(3分)
答:1. 暫存器傳遞引數
2. 堆疊傳遞
3. 約定單元法
10. 已知子程式c2_10的功能為:將ax中的無符號二進位制數以十進位制形式輸出,該子程式的呼叫不破壞任何暫存器的內容。下列程式段的功能是什麼?(5分)
arr dw 100, 98, 99, 70, 85, 90
count equ ($-arr)/2
┇lea si, arr
mov cx, count
p1: mov ax, [si]
add si, 2
call c2_10
mov dl, 『 』
mov ah, 2
int 21h
loop p1
┇100 98 99 70 85 90
六、編寫程式段(15分)
1. 編寫乙個程式段,計算無符號數的運算:123456789 ÷ 17,並將商和餘數分別儲存到暫存器dx和ax中。(4分)
div商 ax
餘 dx
xchg ax, dx
mov ax, 0cd15h
mov dx, 75bh
mov cx, 11h
div cx
xchg ax, dx
2. 已知buf緩衝區的定義為:
buf dw 22,789,-234,333,908,-112,……
請分別用下面指定的定址方式將buf的第4個字(即333)送到ax暫存器。(6分)
(1) 直接定址方式
mov ax, buf+6
(2) 變址定址方式
lea bx, buf
mov ax, [bx+6]
mov bx, 6
mov ax, [bx+buf]
(3) 基址加變址定址方式
lea bx, buf
mov si, 6
mov ax, [bx+si]
3. 設有下述資料定義:
buf1 db 『abcdefghijklmnopqrstuvwxyz』
buf2 db 26 dup(0)
試將buf1的資料拷貝到buf2。(5分)
mov ax, seg buf1
mov ds, ax
組合語言試卷
2010 2011組合語言程式設計期末試卷a卷 一 填空題 每空1分,共計10分 1 mov ax,0 可暫存器ax清0。另外再寫出三條可使暫存器ax清0的指令。1 2 32 標號可以有兩種型別屬性。它們是 和 3 程式設計的三種基本結構是 4 分別用一條語句實現下述指明的功能 1 雙字變數dwva...
組合語言程式設計A卷
2011級組合語言程式設計課程試題 a卷 合分人複查人 1 用組合語言書寫的程式叫做masm要求該檔案的副檔名是編寫32位windows應用程式應選擇儲存模型。2 組合語言語句有兩種,分別是和3 除外設資料外的資料定址方式有3類,分別稱為 和定址。4 進行windows應用程式開發時,需要庫檔案,執...
組合語言B試卷答案
一 單項選擇題 每小題1分,共30分 1 c二 填空 每空1分,共10分 1 運算元 2 59 3 有符號數 有溢位 運算結果超出機器能表示的範圍 4 dd 56789a0bh 5 10111111 6 07 128 8 實體地址 9 and al,3f 10 1 三 判斷題 每小題1分,共10分 ...