1、跳转就是修改IP,或同时修改CS,这样达到指令到另一位置执行的目的。
2、offset偏移量
就是段开始到标号处处的相对距离,,这个段不一定非得是CS
mov ax,offset s
mov cx, offset s - offset send ;可见可以运算
3、三级跳远
段内: 短跳(jump short, -128--127) 近跳(jump near, -32768--32767)
段间: 远跳(jump far)
4、跳的形式
jmp 标号
jmp short 标号 ;相对位移,两个字节,后8位为相对位移
jmp near ptr 标号 ;三个字节,后两个为16位相对位移
jmp far ptr 标号 ;5个字节。后四个字节为移动处,前两个为偏移量,后两个为段地址
jmp 16位reg ;16位相对位移
jmp word ptr [内存单元] ;内存单元的内容作为16位偏移量
jmp dword ptr [内存单元] ;内存单元的内容作为偏移量和段地址
5、jcxz 短跳
直接判断cx是否为0,为0就短跳到标号处。(-128--127)
6、loop 循环
先对cx减1,看结果,结果为0就循环到标号处。
7、这么多跳来跳去,会眼花么?
不会,如果跳用错了,编译器自然会报错,所以放心用,错得多了就记得住了:)
8、回味过去
Dos为25X80屏幕,25行,每行80字符,字符对应的视内存地址为B8000到BFFFF,每个字单元显示一个字符,字中第一单元为字符ASC码
第二个字节为颜色。