實驗8 分析乙個奇怪的程式

2021-08-07 23:46:12 字數 680 閱讀 3274

仔細閱讀9.3節依據位移進行轉移的jmp指令,然後理解下面的這個很奇怪的程式就容易多了,當然要看著機器碼去分析。

assume cs:codesg

codesg segment

mov ax, 4c00h

int 21h

start: mov ax, 0

s: nop

nopmov di, offset s

mov si, offset s2

mov ax, cs:[si]

mov cs:[di], ax

s0: jmp short s

s1: mov ax, 0

int 21h

mov ax, 0

s2: jmp short s1

nopcodesg ends

end start

為便於分析**,下面列出其機器碼:

分析:0a-14行:把s2一行的機器碼複製到s處;

16行:ip跳到8,此時機器碼是:ebf6,f6就是-0ah,也就是十進位制的-10,也就是說要執行此行**,ip要向前移動10個位置,此時ip是a,所以跳到第一行**上,因此本段**能夠順利返回。

實驗8 分析乙個奇怪的程式

分析 assume cs codesg codesg segment mov ax,4c00h int 21h start mov ax,0 s nop nopmov di,offset s mov si,offset s2 mov ax,cs si mov cs di ax s0 jmp shor...

組合語言實驗8 分析乙個奇怪的程式

答案 可以正常執行。我們來逐步分析 這是我們的程式對應的機器指令!首先我們的 cs ip 指向的是076a 005,由此我們可以看出來076a 000 076a 004這段位址儲存的彙編指令應該是 mov ax,4c00h int21h 然後我們逐步執行,nop 是空指令,佔乙個位元組,做完實驗後我...

彙編實驗八 分析乙個奇怪的程式

assueme cs codesg codesg segment mov ax,4c00h int 21h start mov ax,0 s nop nopmov di,offset s mov si,offset s2 mov ax,cs si mov cs di ax s0 jmp short ...