跳转至

13.转移指令offset、jmp

1.offset

offset用于获取标识的起始处偏移量

QQ_1724550926983

assume cs:codesg
codesg segment
    s:  mov ax,bx
        mov si, offset s
        mov di, offset s0
        mov dx,cs:[si]
        mov cs:[di],dx
    s0: nop
        nop
codesg ends
end s

我们可以利用cs段地址加偏移量,用dx作为中间变量实现

运行之后可以发现完成了复制:

QQ_1724553965017

2.jmp

  • jmp short/far

  • jmp本身是不可以直接跳转到标识的,但是jmp short可以做到,例如:jmp short s

  • jmp far同理,只不过是跳到更远的地方
  • jmp word/dword ptr

  • jmp word ptr:段内转移

    • QQ_1724554900158
    • jmp dword ptr:段间转移

    • QQ_1724554923738

  • jcxz

  • 有条件的jmp,相当于if((cx)==0) jmp short 标号