这是一种声明变量的方法还是只是一个标签 (Nasm)?
Is that a way to declare a variable or it just a label (Nasm)?
据我所知,当我想保留内存(变量)时,我会执行以下操作:
msg db 'Hello world!',0
num db 10
但是这个呢:
str: db "Welcome to my OS", 0
我的代码(非常简单的引导程序):
org 0x7c00
mov bp, 0x7c00
mov sp, bp
mov ax, str
call printString
jmp $
printString:
mov al, [str]
mov ah, 0eh
int 10h
str db 'W', 0 ; <-- str must to be str:
times 510-($-$$) db 0
dw 0xaa55
:
也是用来声明变量还是那只是一个标签?
因为我用这种方式str:
在bios模式下预留内存
这是 MASM/TASM 功能的雏形,NASM 中不存在。基本原理是在使用某些指令时可以在标签名称后省略冒号。
在MASM/TASM中曾经有放置冒号和不放置冒号的区别,但在NASM中没有这种区别。
据我所知,当我想保留内存(变量)时,我会执行以下操作:
msg db 'Hello world!',0
num db 10
但是这个呢:
str: db "Welcome to my OS", 0
我的代码(非常简单的引导程序):
org 0x7c00
mov bp, 0x7c00
mov sp, bp
mov ax, str
call printString
jmp $
printString:
mov al, [str]
mov ah, 0eh
int 10h
str db 'W', 0 ; <-- str must to be str:
times 510-($-$$) db 0
dw 0xaa55
:
也是用来声明变量还是那只是一个标签?
因为我用这种方式str:
在bios模式下预留内存
这是 MASM/TASM 功能的雏形,NASM 中不存在。基本原理是在使用某些指令时可以在标签名称后省略冒号。
在MASM/TASM中曾经有放置冒号和不放置冒号的区别,但在NASM中没有这种区别。