请教jmp段内转移的一道习题
assume cs:codedata segment
?
data ends
code segment
start: mov ax,dtat
mov ds,
mov bx,0
jmp word ptr
code ends
end start
王爽《汇编语言》9.1检测题若要使jmp指令执行后,CS:IP指向程序的第一条指令,在data段中应该定义哪些数据?
答案这样解释:
jmp word ptr 为段内转移,要CS:IP指向程序的第一条指令,应设置ds:的字单元(2个字节)存放数据应为0,则(ip)=ds:=0
对于红色划线部分我一直想不通它的关系,请教一下,谢谢!
想通了,assume cs:code
data segment
?
data ends
code segment
start: mov ax,dtat
mov ds,ax
mov bx,0
jmp word ptr
code ends
end start
jmp word ptr 为段内转移,要CS:IP指向程序的第一条指令,而第一条指令地址即为ds:0,应设置ds:指向ds:0,即:(ip)=ds:=0,而内存单元的值做为地址用,所以就是将偏移地址所指的的字单元(2个字节)存放数据应为0。“只要ds:起始地址的两个字节为0就可以了”,所以会有多个答案:答案①db 3 dup (0) 放3个字节的0答案②dw 2 dup (0) 放4个字节的0答案③dd 0 放4个字节的0 只要让ds:起始地址的字单元为0就可以了,让下一地址的单元内存为0也没关系。
无师自通了。很好啊 不错,其实很多问题,我们只要多用心,就会迎刃而解的 俺也不知道
页:
[1]