初学汇编,请问关于jmp的问题
请问 jmp near ptr "标号" 这种格式的jmp是怎么用的?我看书上的怎么也看不懂,没有例子
我有这个疑问
assume cs:code
code segment
s: mov ax,20h
mov ax,0
mov ax,1
jmp s
//////////////////////////////
assume cs:code
code segment
s: mov ax,20h
mov ax,0
mov ax,1
jmp near ptr s
上面有两个代码段
第一个就是用的jmp "标号",而第二个就是用的jmp near ptr "标号",可是我比较了一下,他们实现的功能是一样的,而后面那种写起来要复杂得多,为什么还需要后面那种写法呢?
第二个问题:
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语句要跳到我们程序的开始处,请问我们应该定义data段中的数据?主要问题是我们应该把我们数据段中的数据的前四个字节,高位存代码的段地址,低位存第一条指令偏移地址,可是程序还没有编译运行,我怎么知道我的程序的段地址以及偏移地址啊?
求高手解答,谢了