关于程序集我很新,我正在尝试使用程序。因此,每当我尝试编译它时,我都会得到该行的错误,如代码中的注释所列。
我想知道当我为其余的汇编代码定义一些内容时,是否有人知道为什么NASM会检测到这些错误?
也许它必须对主要定义方式做些什么?
P.S。我列出了代码的第一部分,因为程序很长。
感谢您的帮助
.xlist ;attempt to define a local label before any non-local labels
include stdlib.a ; parser: instruction expected
includelib stdlib.lib ; parser: instruction expected
.list
.286
dseg segment para public 'data'
; Unknown section attribute 'public' ignored on declaration of section `para'
h word ?
i word ?
cseg segment para public 'code'
assume cs:cseg, ds:dseg
Main
答案 0 :(得分:2)
在NASM中,以dot开头的标签称为本地标签。它附加到最后一个全局标签,例如
L:
.l2: ; it is really L.l2
所以你不能在任何全球标签之前拥有本地标签
答案 1 :(得分:2)
根本不是NASM代码。正如@Jester所说,它可能是TASM或MASM。
NASM doesn't ASSUME
,因此您可以100%确定这不是NASM代码。
它绝对不是Linux代码。请注意.286
指令。这意味着它将是16位代码。即使您将语法转换为NASM,生成的二进制文件也不会对您的Linux系统执行任何有用的操作。
(这个问题没有提到Linux,但是the followup does)。