如果不注意使用jmp的Short,Near,Far除了使程序变大还有什么坏处么?

来源:百度知道 编辑:UC知道 时间:2024/06/20 11:00:00
我知道如果用MASM5不注意的话会弄出来很多NOP,其他版本也是么?
-U
0B4F:0000 EB0B JMP 000D
0B4F:0002 90 NOP
0B4F:0003 EB08 JMP 000D
0B4F:0005 EB06 JMP 000D
0B4F:0007 90 NOP
0B4F:0008 EB03 JMP 000D
0B4F:000A 90 NOP
0B4F:000B 90 NOP
0B4F:000C 90 NOP
0B4F:000D B8004C MOV AX,4C00
0B4F:0010 CD21 INT 21
-
assume cs:code
code segment
jmp s
jmp short s
jmp near ptr s
jmp far ptr s
s:mov ax,4C00H
int 21H
code ends
end

什么叫“如果不注意使用jmp的Short,Near,Far除了使程序变大还有什么坏处么?”
jmp short leb 是段内直接短转移,转移到标号leb处且只允许转移范围-127到+128
jmp near ptr oprd 段内直接近转移,(ip)=(ip)+disp16可转移到同一代码段的任意位置
jmp far ptr oprd 段间直接远转移,指令直接提供转移的段地址和偏移地址,分别取代cs和ip的内容