• 无条件跳转
    • 条件转移
      • 所有有条件转移都是短转移
    • 循环指令
      • 所有循环指令都是短转移
    • 过程(函数)
    • 中断

    • offset

      • 编译器处理的符号,取得标号的偏移地址
      • start: mov ax,offset start(将start在内存的偏移地址放到ax,相当于mov ax,0)
    • jmp
      • 可以只修改IP,也可以同时修改CS和IP
      • 需要的信息:转移的目的地址&转移的距离(段间转移、段内短转移、段内近转移)
      • jmp short ptr 标号:段内短转移,转移到标号(IP修改范围:IP-2^7~IP+2^7)
        • short代表位移为8位
        • 机器码中是跳转的目标地址的字节偏移量(ip根据该偏移量改变)
          • 改变后的IP按照补码决定跳转位置,负数向上跳,正数向下跳
      • jmp near ptr 标号:段内近转移
        • 代表位移为16位(-32769~32767)
      • jmp far ptr 标号:段间远转移
        • 机器码中会包含转移的目的地址
      • jmp 16位寄存器:段内转移
        • IP=(16位寄存器)
      • jmp word ptr 内存单元地址:段内转移
        • word:16位
      • jmp dword ptr 内存单元地址:段间转移
        • CS =(内存单元地址+2)
        • IP = 内存单元地址)
    • jcxz 标号
      • 如果(cx)=0,则跳转到标号处执行
    • loop 标号

      • loop s执行时是先将cx减一再与0比较)
      • (cx)=(cx)-1
      • (cx)!=0,跳转
    • 奇怪的程序:偏移地址的应用

      • 能够正常结束

    image.png

    • 编程:屏幕显色
      • 向显存写数据