本文目录一览:

jmp far ptr和 jmp word ptr的区别

指令“jmp far ptr 标号”实现的是段间转移,又称为远转移

指令“jmp far ptr 标号” 功能如下:

(CS)=标号所在段的段地址;

(IP)=标号所在段中的偏移地址。

far ptr指明了指令用标号的段地址和偏移地址修改CS和IP。

指令“JMP DWORD PTR XXXX”实现的是段间间接寻址

由xxxx的寻址方式求得偏移地址(假如是adress后),【adress】和【adress+2】分别就是转移目的地址得偏移地址和段地址

汇编指令jmp word ptr 详细讲解下怎么用?最好带个例子~~

跳到指定的地址~ word ptr是限定符,标识后面地址的长度是word,jmp没什么好解释就是跳转,只是要理解,jmp是相对跳转后面跟的地址是偏移,而非绝对地址

jmp word ptr 【bx】 和 jmp bx的区别是什么呢

jmp word ptr [bx]

是以BX这个寄存器内容开始的内存单元为JMP的IP

即:IP=DS:BX

例:

mov ax,20h

mov ds,ax

sub bx,bx

jmp word ptr [bx]

到了JMP,就会跳到程序的开始执行,就是把IP设置为0。

因为DS=20,BX=0,而20:0里面的内容是0,所以IP为0。

而JMP BX

则是把寄存器BX的内容设置为IP。

即:IP=BX

例子:

mov bx,0

jmp bx

执行后,IP=0,很好理解吧?

JMP指令包括什么

jmp指令用法总结: 1.直接用法(只能在Debug下使用的汇编指令):

jmp 段地址:偏移地址

功能:修改CS、IP的内容

例子:jmp 55BA:8

执行后:(CS)=55EAH, (IP)=0008H 2.根据标号进行转移的用法:

(1).转移的目的地址不在指令中,依据位移进行转移(段内转移)

a.jmp short 标号(IP的修改范围为-128至127)

功能:(IP)=(IP)+8位位移 b.jmp near ptr 标号(IP的修改范围为-32768至32767)

功能:(IP)=(IP)+16位位移注:依据位移进行的转移是段内转移,位移=标号处的地址-jmp指令后的第一个字节的地址。(2).转移的目的地址在指令中(段间转移)

jmp far ptr 标号

功能:用标号的段地址和偏移地址修改CS和IP

(CS)=标号所在段的段地址;(IP)=标号所在段的偏移地址

例子:略

3.转移地址在寄存器中的用法:

jmp 某一合法寄存器

功能:用寄存器中的值修改IP

例子:jmp ax

执行后:(IP)=(ax)

注意:合法寄存器是指通用寄存器。一个有趣的现象:jmp ip在debug下调试也是

错误的。字面上理解:(IP)=(IP),但CPU并不支持4.转移地址在内存中的用法:

(1).jmp word ptr 内存单元地址(段内转移)

功能:从内存单元地址出开始存放着一个字,是转移的目的偏移地址

例子:mov ax,0123H

mov [bx],ax

jmp word ptr [bx]

执行后:(IP)=0123H(2).jmp dword ptr 内存单元地址(段间转移)

功能:从内存单元地址处开始存放着两个字,高地址处的字是转移的目的段地址,低地址处是转移的目的偏移地址

例子:mov ax,0123H

mov [bx],ax

mov word ptr [bx+2],0

jmp dword ptr [bx]

执行后:(CS)=0, (IP)=0123H