組合語言期末考試

2023-01-05 20:33:02 字數 4467 閱讀 6599

一,單項選擇題(每小題1分,共20分)

1.指令jmp far ptr done屬於( c )

a.段內轉移直接定址b.段內轉移間接定址

c.段間轉移直接定址d.段間轉移間接定址

2.下列敘述正確的是( c )

a.對兩個無符號數進行比較採用cmp指令,對兩個有符號數比較用cmps指令

b.對兩個無符號數進行比較採用cmps指令,對兩個有符號數比較用cmp指令

c.對無符號數條件轉移採用jae/jnb指令,對有符號數條件轉移用jge/jnl指令

d.對無符號數條件轉移採用jge/jnl指令,對有符號數條件轉移用jae/jnb指令

3.乙個有128個字的資料區,它的起始位址為12abh:00abh,請給出這個資料區最末乙個字單元的實體地址是( c )

a.12csbh b.12b6bh c.12c59h d.12bfeh

4.在下列指令的表示中,不正確的是( c )

a.mov al,[bx+sib.jmp short doni

c.dec [bxd.mul cl

5.在進行二重迴圈程式設計時,下列描述正確的是( a )

a.外迴圈初值應置外迴圈之外;內迴圈初值應置內迴圈之外,外迴圈之內

b.外迴圈初值應置外迴圈之內;內迴圈初值應置內迴圈之內

c.內、外迴圈初值都應置外迴圈之外

d.內、外迴圈初值都應置內迴圈之外,外迴圈之內

6.條件轉移指令jne的測試條件為( a )

a.zf=0b.cf=0c.zf=1d.cf=1

7.8086cpu在基址加變址的定址方式中,變址暫存器可以為( da.bx或cxb.cx或sic.dx或si

d.si或di

8.已知bx=2000h,si=1234h,則指令mov ax,[bx+si+2]的源操作在 ( a)中。

a.資料段中偏移量為3236h的位元組

b.附加段中偏移量為3234h的位元組

c.資料段中偏移量為3234h的位元組

d.附加段中偏移量為3236h的位元組

9.執行如下程式:( )

mov ax,0

mov ax,0

mov bx,1

mov cx,100

a:add ax,bx

inc bx

loop a

hlt執行後(bx)=( )

a.99b.100c.101d.102

10.上題的程式執行後(ax)=( b )

a.5000b.5050c.5100d.5150

11.對於下列程式段:( a )

again:mov al,[si]

mov es:[di],al

inc si

inc di

loop again

也可用______指令完成同樣的功能a.rep movsb b.rep lodsb c.rep stosb d.repe scasb

12.下面指令序列執行後完成的運算,正確的算術表示式應是( d )

mov al,byte ptr x

shl al,1

dec al

mov byte ptr y,al

a.y=x2+1b.x=y2+1c.x=y2-1 d.y=x2-1

13.在一段匯程式設計序中多次呼叫另一段程式,用巨集指令比用子程式實現起來。( b )

a.佔記憶體空間小,但速度慢 b.佔記憶體空間大,但速度快

c.佔記憶體空間相同,速度快 d.佔記憶體空間相同,速度慢

14.在程式執行過程中,ip暫存器中始終儲存的是( b )

a.上一條指令的首位址b.下一條指令的首位址

c.正在執行指令的首位址 d.需計算有效位址後才能確定位址

15.psw暫存器中共有______位條件狀態位,有______位控制狀態位

a.6、3b.3、6 c.8、4 d.4、8

16.下列指令執行時出錯的是( )

a.add buf1,buf2

b.jmp dword ptr dat [bx]

c.mov ax,[bx+di] num

d.test al,08h

17.已知(ax)=1234h,執行下述三條指令後,(ax)=( )

mov bx,ax

neg bx

add ax,bx

a.1234hb.0edcch c.6dcch d.0000h

18.在下列指令中,______指令的執行會影響條件碼中的cf位a.jmp next b.jc next c.inc bx

d.shl ax,1

19.串指令中的目的運算元位址是由______提供。( )

a.ss:[bpb.ds:[sic.es:[di

d.cs:[ip]

20.將dx的內容除以2,正確的指令是( )

a.div 2b.div dx,2c.sar dx,1

d.shl dx,1

二,簡答題(每小題4分,共12分)

1.假定(dx)=10111001b,(cl)=0.3,(cf)=1,試確定下列各條指令單獨執行後, dx中的值。

(1)shr dx,1

(2)rcr dl,1

(3)rcl dx,cl

2.寫出完成下述功能的程式段:

(1)傳送25h到al暫存器

(2)將al的內容乘以2

(3)傳送15h到bl暫存器

(4)al的內容乘以bl的內容

並請寫出最後(ax)=?

3.寫一程式段,求雙字長數dx∶bx的相反數。

三,程式分析題(每小題6分,共36分)

1.現有如下程式段:

data segment da3 equ 1234h

org 0020h da4 equ $-da2

da1 dw 12h,23h da5 db 31h,32h

da2 db 11h,21h data ends

請回答:(1)該程式段已占有的儲存位元組數是多少?

2.執行下列程式段後,回答問題。

org 1221h mov bx,offset num

num dw 12h mov cl,byte ptr num+1

… mov ch,type num

mov ax,num hlt

請問:(axbxcx

3.閱讀如下程式:

adrr db xxh,xxh,……,xxh cmp adrr[bx],0

num equ $ -adrr loopz don

rett db? jnz next

… mov bl,offh

mov cx,num next:mov rett,bl

mov bx,-1 hlt

don:inc bx

請問:(1)該程式完成的功能是什麼?

2)程式執行後指出rett位元組單元中的內容是什麼?

4.現有一子程式:

sub1 proc plus:test bl,80h

test al,80h je exito

je plus xchange:xchg al,bl

test bl,80h exito:ret

jne exito sub1 endp

jmp xchange

試回答:(1)子程式的功能是什麼?

(2)若呼叫子程式前al=9ah,bl=77h,則返回主程式時,al=___

bl=______。

5.閱讀程式段:

block db 20h,1fh,08h,81h,offh… lop1:cmp al,[si+1]

result db? jng next

mov al,[si+1]

start:lea si,block next:inc si

mov cx,[si] loop lop1

inc si mov result,al

mov al,[si] hlt

請問:(1)該程式完成的功能是什麼?

(2)該程式迴圈的次數是多少?

6.閱讀如下程式段,回答所提出的問題,假定x1,x2,xn為無符號數。

org 100h

blok dw x1,x2,…,xn

count equ($-blolok)/2

result dw count,?

lea bx,blok-2

mov cx,result

xor ax,ax

goon:add bx,2

cmp ax,[bx]

jae next

mov ax,[bx]

next:loop goon

mov result+2,ax

程式段執行完,回答下述問題

result+2字儲存單元的內容=______

bx=______

組合語言 第3章巨集組合語言

第三章巨集組合語言 一 巨集組合語言格式 3.1.1 指令語句格式 指令語句的一般格式如下 標號 指令助記符運算元 注釋 1 標號 標號是機器指令語句存放位址的符號表示,代表該指令目標 的第乙個位元組位址,後面必須緊跟冒號 2 指令助記符 指令助記符為語句的核心成分,表示了該語句的操作型別。3 運算...

組合語言總結

一 乙個完整的源程式的結構 乙個源程式一般由若干個段組成,每個分段可以是棧段 資料段和 段。乙個源程式可以有多個棧段 資料段和 段,從語法規則上來看,棧段是有明顯標誌的 段最好的型別為 code 的標記,並用cs作為段界暫存器,只有資料段不要求標誌。完整的源程式的結構一般形式如下 程式名稱 二 源程...

組合語言總結

組合語言學習體會 大一大二期間學寫了一些高階語言,如c語言和c 在對一些實際問題的程式設計處理上使用這些高階語言顯得很是方便。於是在剛接觸這門課的時候就對其實用性產生了懷疑和一些的牴觸情緒。再學習了一段時間後,雖然對一些繁雜的指令有些討厭 但還是硬著頭皮學著下來了 但後來再經過實驗課的學習感覺組合語...