汇编语言 第九章 转移指令
转移指令的原理
修改cs:ip的值
操作符offset
取得标号处的偏移地址
比如start:mov ax,offeset start --这里的start的偏移地址为0,所以这条指令等于mov ax,0
jum无条件转移指令
jum 段内转移:
范围在-128--127之间,也就是说向前转移最多128字节,向后127字节
mov ax,0 --b80000(对应机器码)
jum short s --eb03 两字节 这里的eb是jum的机器码,03指的ip是向下移动2字节,这里的03我们就称为转移位移,一般用补码表示,有负数
inc ax --40 一字节
s:inc ax --40
综上 jum short 标号的功能:(ip)=(ip)+一字节转移位移
类似指令:jum near ptr 功能 (ip)=(ip)+两字节转移位移
jum word ptr ds:[0] 转移地址的内容存在ds:[0]里面
jum 段间转移:
jum far ptr 段间转移 此时的机器码就没有转移位移了,一般都是短地址和偏移地址了
jum ax 指的是(IP)=(16位寄存器)
jum dword ptr ds:[0] 从ds:[0]处开始有四个字节,高位字节表示段地址,低位字节表示段内偏移
jum有条件转移指令:jcxz
所有的有条件转移指令都是短指令
jcxz 标志 如果cx=0 则转移到标号处执行,如果cx!=0,什么都不做
loop指令 执行操作1.cx=cx-1 2,if cx!=0 --转移到标号处继续执行

浙公网安备 33010602011771号