王爽組合語言檢測點 9 1

2021-10-11 03:17:50 字數 1236 閱讀 1944

(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 ptr [bx+1]

code ends

end start

解答:本題中,執行jmp word ptr [b+1]指令後,會將data段[bx+1]中的資料賦值給ip,題目要求指向程式中的第一條指令,因此ip需等於0,所以只需data[1]中的資料為0即可。

答案:db 8 dup(0) (這裡定義八個位元組的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指令後,跳到第一條指令(將ip置為0),jmp dword ptr ds:[0]指令執行完,會從ds:[0]開始,取出兩個字的資料,把前面兩個位元組的資料賦值給ip,後面兩個位元組的資料賦值給cs,所以要將data[0]存放0,data[2]存放cs。

答案:bx cs

(3)用debug檢視記憶體,結果如下:

2000:1000 be 00 06 00 00 00 ……

此時cpu執行指令

mov ax, 2000h

mov es, ax

jmp dword ptr es:[1000h]

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

因 jmp dword ptr es:[1000h] 的功能是將從es:10000h開始的兩個字(四個位元組),前面的兩個位元組賦值給ip,後面兩個賦值給cs。

則該程式執行後cs= 0060,ip=00be

王爽組合語言 檢測點9 1

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...

《組合語言》(王爽)檢測點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...