Content #
NASM的分段程序中,默认情况下,引用某个标号时,该标号的汇编地址是从整个程序的起始位置开始的偏移。
section a
mov ax,1
mov ax,2
a_label:
mov ax,3
section b
mov ax,4
mov ax,5
b_label:
mov ax,6
b_label:
b_label的值是从section a的开始位置开始的偏移,值为0x12,表示距离开始位置18个字节。
为了获取b_label距离当前段起始位置段的偏移量,这个时候就需要加vstart=0,代码如下:
section a
mov ax,1
mov ax,2
a_label:
mov ax,3
section b vstart=0
mov ax,4
mov ax,5
b_label:
mov ax,6
b_label: ;此时该位置的值是0x06,说明距离段b的距离是6个字节