流浪江湖 发表于 2022-1-3 23:23:25

检测点9.1求助


我看很多同学做这题都是使用的 db 0,0,0
我用的dw 0,0,0不知道对不对,我用debug跳转后的ip地址是0啊,哪个大佬解释下这什么情况?





assume cs:code,ds:data
       
data segment

        dw 0,0,0
data ends

code segment
start:mov ax,data
        mov ds,ax
        mov bx,0
        jmp word ptr

        mov ax,4c00h
        int 21h
code ends
end start
       

三樱霞五七 发表于 2022-1-10 08:33:29

你这是段内转移改变的是偏移地址。你的data字型数据段里都是0,所以ip也就是0。进行jmp word ptr 转移的话db是字节型会取两位,dw是字型只会取一位

流浪江湖 发表于 2022-1-24 00:21:46

三樱霞五七 发表于 2022-1-10 08:33
你这是段内转移改变的是偏移地址。你的data字型数据段里都是0,所以ip也就是0。进行jmp word ptr 转移的话db ...

字节型数据是取的两位16进制,那字型数据应该是取4位16进制才对啊

三樱霞五七 发表于 2022-1-24 12:20:28

可能是我没说清楚,我这是从源代码的角度看的,而你说的是内存的角度。结果而言是一样

三樱霞五七 发表于 2022-1-24 12:25:50

如果,还不清楚的话,可以定义两个数据段 用debug 调试看一下

DDLYZH 发表于 2023-7-27 15:04:53

程序的第一条指令是data中的第一个数据吗
页: [1]
查看完整版本: 检测点9.1求助