我现在正在学习汇编,我意识到该符号@data未在 NASM 中定义。这是我的代码:
section .data
var1 db 0x3
var2 db 0x4
section .text
global main
main:
mov eax, @data
mov ds, eax
mov eax, var1
mov ebx, var2
mov eax, 0
Run Code Online (Sandbox Code Playgroud)
我在网上搜索替代符号,但没有找到任何东西。那么有什么替代方法@data吗?谢谢你的帮助。
符号在某些汇编器中@data表示段的第一个字节的data段地址。另请参阅NASM 第 9 章中的 16 位 .EXE 文件示例。在DOS 或 Windows 3 的实模式 16 位程序中,在访问数据之前加载段寄存器是必不可少的。当这样的程序启动时,它的 DS 和 ES 指向程序段前缀结构,而不是data你程序的段。当段被声明时,汇编器还创建了一个具有相应名称的可重定位符号,例如@data或data,可以在您的程序中用于初始化段寄存器。其他汇编器可能使用不同的语法,例如MOV AX,PARA# [data]。
当一个扁平的 32|64 位保护模式程序启动时,它的段寄存器已经预先加载了段描述符表的有效索引,你根本不必关心段寄存器。
| 归档时间: |
|
| 查看次数: |
75 次 |
| 最近记录: |