王爽組合語言 檢測點9 1

2021-09-07 20:40:55 字數 1108 閱讀 9312

(1)程式如下

assume cs:code

data segment

?data ends

code segment

start:

mov ax, data

mov ds, ax

mov bx, 0

jmp word ptr [bx+1]

code ends

end start

若要使程式中的jmp指令執行後,cs:ip指向程式的第一條指令,在data段中應該定義哪些資料?

若要指向第一條指令,則要使ip的值為0000h即可,而jmp word ptr為段內轉移指令,相當於把ip值賦值為後面記憶體單元的值,故只需要第乙個位元組為0即可。

答案:db 8 dup(0)

(2)補全程式,使得jmp指令執行後,cs:ip指向第一條指令

assume cs:code

data segment

dd 12345678h

data ends

code segment

start:

mov ax, data

mov ds, ax

mov bx, 0

mov [bx], __

mov [bx+2], __

jmp dword ptr ds:[0]

code ends

end start

由於執行jmp指令後指向第一條指令,cs段沒有改變,只需要改變ip值為0000h。而段間轉移相當於把記憶體位址開始的前兩個位元組賦值給ip,後面的兩位元組賦值給cs,按順序填入0和cs值即可。

答案:bx    cs

(3)

;記憶體資料如下

2000:1000 be 00 06 00 00 00 ……

;此時cpu執行指令

mov ax, 2000h

mov es, ax

jmp dword ptr es:[1000h]

後,(cs) = ? (ip) = ?

把前兩個位元組賦值給ip,後面的兩位元組賦值給cs

答案:cs = 0006h     ip = 00beh

王爽組合語言檢測點 9 1

1 若要使程式中的jmp指令執行後,cs ip指向程式中的第一條指令,在data段中應該定義哪些資料?assume cs code data segment data ends code segment start mov ax,data mov ds,ax mov bx,0 jmp word pt...

《組合語言》(王爽)檢測點1 1

1.乙個cpu的定址能力為8kb,那麼他的位址匯流排寬度為13。2 n 1024 8 n為匯流排寬度。已知2 10 1024 因此n 13 2.1kb的儲存器有1024個儲存單元。儲存單元的編號從0到1023 2 10 1kb 1024 3.1kb的儲存器可以儲存 8192個bit,1024 個by...

王爽組合語言 檢測點9 3

補全程式設計,利用loop指令,實現在記憶體2000h段中查詢第乙個值為0的位元組,找到後,將它的偏移位址儲存在dx中。assume cs code code segment start mov ax,2000h mov ds,ax mov bx,0 s mov cl,bx mov ch,0 inc...