2010-2011組合語言程式設計期末試卷a卷
一、填空題(每空1分,共計10分)
1.「mov ax,0」可暫存器ax清0。另外再寫出三條可使暫存器ax清0的指令。
(1(2(32.標號可以有兩種型別屬性。它們是___ ___和____ ___。
3.程式設計的三種基本結構是
4.分別用一條語句實現下述指明的功能
(1)雙字變數dwvar存放的位址指標送es和si
(2)位址表示式var[4]的偏移位址送字變數addr
二、判斷下列指令的正確性。如果錯誤,請指出錯誤的原因。(每題1分,共計10分)
(1)mov cx,dl
(2)xchg [si],3
(3)mov ax, bx+3
(4)pop cs
(5)shl ax, cx
(6)mul 16
(7)and 7fffh,ax
(8)mov cs,ax
(9)sub [si],[di]
(10)mov [si], 20h
三、簡答題(每題5分,共計20分)
1. 簡述指令and和test、not和neg之間的區別?
2. 簡述段內轉移和段間轉移的區別?
3. 儲存器定址方式可分為哪幾種?儲存單元的有效位址有什麼意義?
4. rep字首的作用是什麼?能否用指令rep lodsb讀取ds:si所指記憶體中的每個字元來進行處理?若不能,試說明原因。
四、指令分析題(每題10分,共計20分)
1. 下列程式段中,各指令執行後ax、cf、of、zf和sf的內容如何變化。
mov ax, 0
dec ax
not ax
and ax, 0ffffh
cmp ax, 0ffffh
sub ax, 1200h
mov cl , 5
sar ax, 1
sar ax, cl
add ax, 0ffffh
neg ax
2. 假設各暫存器及實體地址中的內容如下,(ds)=2000h,(bx)=0100h,(si)=0002h,(20100h)=12h,(20101h)=34h,(20102h)=56h,(20103h)=78h,(21200h)=2ah,(21201h)=4ch,(21202h)=b7h,(21203h)=65h,指出各條指令源運算元的定址方式,以及完成後ax暫存器中的內容
(1mov ax,1200h
(2mov ax,bx
(3mov ax,[1200h]
(4mov ax,[bx]
(5) mov ax,1100h[bx]
(6mov ax,[bx][si]
(7mov ax,1100h[bx][si]
五、程式分析題(每題5分,共計20分)
1.下列程式段執行後,y單元開始的儲存區存放的資料是什麼?
x db 78h
y db 3 dup(?)
…lea si, y
mov cx, 3
mov al, x
lp: sar al, 1
mov [si], al
inc si
loop lp
2.分析下列程式段的功能
or dx, dx
jns l1
not dx
not ax
add ax, 1
adc dx, 0
l1:3.下列程式片段完成什麼功能,試採用堆疊的操作實現同樣的功能。
xchg ax,[si]
xchg ax,[di]
xchg ax,[si]
4. 下列程式段執行後,dat2的前5個單元的內容是什麼?
dat1 db 『123456789』
dat2 db 10 dup(?)
…lea si, dat1
lea di, dat2
mov cx, dat2-dat1
add si, cx
dec si
lp: mov al, [si]
mov [di], al
dec si
inc di
loop lp
hlt六、程式設計題(每題10分,共計20分)
1.把下列c語言的語句改寫成等價的組合語言程式段(不考慮運算過程中的溢位)
if(a<1 || b/4>10 && c%8==5)
else
其中:變數a、b和c都是有符號的16位整形(int)變數
2. 編寫程式完成求 1+2+3+…+n的累加和,直到累加和超過1000為止。統計被累加的自然數個數從cn字單元,累加和送sum字單元。
2010-2011組合語言程式設計期末試卷a卷參***
一、填空題(每空1分,共計10分)
1.(1) xor ax, ax
(2) and ax, 0
(3) sub ax, ax
2.near, far
3.順序結構、分支(條件選擇)結構、迴圈結構
4.(1)les si,dwvar
(2)mov addr, offset var[4]
二、判斷下列指令的正確性。如果錯誤,請指出錯誤所在(每題1分,共計10分)
(1)錯誤!暫存器大小不一致
(2)錯誤!不能與立即數進行交換
(3)錯誤!表示式錯誤
(4)錯誤!pop指令的物件不能是cs,push可以
(5)錯誤!第二個運算元,表示移動次數。可以使用cl,但不能是cx
(6)錯誤!乘法指令運算元不可以使用立即數
(7)錯誤!立即數不能是目的運算元
(8)錯誤!**段暫存器cs不能為目的運算元
(9)錯誤!如果指令的運算元有兩個,只能有乙個是儲存器運算元
(10)錯誤!必須說明目的運算元資料儲存型別
三、簡答題(每題5分,共計20分)
1. 簡述指令and和test、not和neg之間的區別?
答:test檢測位指令把兩個運算元進行邏輯「與」(and)運算,並根據運算結果設定相應的標誌位。test指令並不儲存該運算結果,不會改變指令中的運算元。
與and在運算結果的處理上有不同。
neg求補指令,功能相當於「運算元=0-運算元」,即改變運算元的正、負號。not是邏輯非運算,作用是將運算元按位求反。
2. 簡述段內轉移和段間轉移的區別?
答:段間轉移和段內轉移的本質區別是有沒有對cs進行設定,如果設定了新的cs**暫存器,程式將轉移到另乙個段中,即實現了段間轉移;否則cs和原來一致,則在同一**段中。
3. 儲存器定址方式可分為哪幾種?儲存單元的有效位址有什麼意義?
答:儲存器定址方式可分為7種:
(1)立即定址;
(2)直接定址;
(3)暫存器定址;
(4)暫存器間接定址;
(5)暫存器相對定址;
(6)基址加變址定址;
(7)相對基址加變址定址;
儲存器的有效位址是乙個16位的無符號數;用來表示儲存單元的位址與所在段的起始位址的差值,又稱稱偏移位址(offset)。
4. rep字首的作用是什麼?能否用指令rep lodsb讀取ds:si所指記憶體中的每個字元來進行處理?若不能,試說明原因。
答:rep是重複字首指令,其作用是重複其後字串操作指令,重複次數由cx決定。
採用rep lodsb雖然可以讀取ds:si所指記憶體中的一連串字元,但是由於其他指令無法處理取出的所有資料。指令結束後留在al中的僅為最後乙個取出的字元的ascii碼。
四、指令分析題(每題10分,共計20分)
1. 下列程式段中,各指令執行後ax、cf、zf和sf的內容如何變化。
mov ax, 0
1)(ax) =0, cf、zf、sf無影響
dec ax
2)(ax)=0ffffh, cf無影響, zf=0, sf=1
not ax
3)(ax)=0, cf無影響, zf=0, sf=1
and ax, 0ffffh
4)(ax)=0, cf=0, zf=1,sf=0
cmp ax, 0ffffh
5)(ax)=0, cf=1, zf=0, sf=0
sub ax, 1200h
6)(ax)=0ee00h, cf=1, zf=0, sf=1
mov cl , 5
sar ax, 1
7)(ax)=0f700h, cf=0, zf=0, sf=1
sar ax, cl
8)(ax)=0ffb8h, cf=0, zf=0, sf=1
add ax, 0ffffh
9)(ax)=0ffb7h, cf=1, zf=0, sf=1
neg ax
10)(ax)=0049h, cf=1, zf=0, sf=0
2. (1)立即定址方式 (ax)=1200h
(2)暫存器定址,(ax)=0100h
(3)直接定址,(ax)=4c2ah
(4)暫存器間接定址,(ax)=3412h
(5)暫存器相對定址,(ax)=4c2ah
(6) 基址加變址定址,(ax)=7856h
(7) 相對基址加變址定址,(ax)=65b7h
五、程式分析題(每題5分,共計20分)
1. 3ch ,1eh,0fh
2. 對32位數(高位在dx,低位在ax)求補(絕對值)
3. 程式實現[si]和[di]中的內容交換;ax中內容不變;
堆疊操作指令完成同樣功能,如下所示:
push [si]
push [di]
pop [si]
pop [di]
4. 39h,38h,37h,36h,35h。 (數字『98765』對應的ascii碼)
六、程式設計題(每題10分,共計20分)
1. 參考程式
a dw ?
b dw ?
c dw ?
…mov bx, b
mov cl, 2
sar bx, cl計算b/4,結果存在bx中
mov cx, c
and cx, 0007h計算c%8,結果存在cx中
cmp bx, 10
jbe next1
cmp cx, 5
jne next1
next2a<1||b/4>10&&c%8==5)計算為真
mov bx, b
mov ax, 20
add ax, bx
mov a, ax
inc bx
mov b, bx
mov cx, c
sal, cx, 1
sal, cx, 1
mov c, cx
jmp next3
組合語言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分 ...
組合語言 第3章巨集組合語言
第三章巨集組合語言 一 巨集組合語言格式 3.1.1 指令語句格式 指令語句的一般格式如下 標號 指令助記符運算元 注釋 1 標號 標號是機器指令語句存放位址的符號表示,代表該指令目標 的第乙個位元組位址,後面必須緊跟冒號 2 指令助記符 指令助記符為語句的核心成分,表示了該語句的操作型別。3 運算...
成教《組合語言》試卷B答案
佛山科學技術學院2007 2008學年第二學期 組合語言程式設計 課程期末考試b卷試題解答及評分標準 專業 班級任課教師 雷曉平 一 單項選擇題 每小題1分,共15分 1 b 2 b 3 c 4 a 5 b 6 c 7 a 8 d 9 b 10 c 二 填空題 每空1分,共10分 1 0 1 2 3...