王爽 匯編 檢測點9.1(2) 補全程序,使jmp指令執行后,CS:IP指向程序的第一條指令


一、如題

assume cs:code,ds:data

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] mov ax,4c00h int 21h code ends end start

二、代碼實現

assume cs:code,ds:data

data segment
    dd 12345678H
data ends

code segment
start:  mov ax,data
        mov ds,ax
        mov bx,0
        mov [bx],offset start    ;偏移地址
        mov [bx+2],word ptr cs ;取出代碼段地址,mov [bx+2],cs 也可以
        jmp dword ptr ds:[0]
        
        mov ax,4c00h
        int 21h
code ends
end start

三、上機調試

1.執行三條指令后,各個寄存器狀態

 

2.標記A:偏移地址賦值到數據段中,標記B:代碼段地址賦值給數據段

 執行完標記AB兩條指令后查看數據段中的數據:word ptr ds:[2]的字型數據是0B39(段地址),

word ptr ds:[0]的字型數據是0000(偏移地址)

 3.執行完jmp指令后,跳轉到了第一條指令,至此我們成功了!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM