【发布时间】:2019-04-30 12:38:23
【问题描述】:
简而言之:当我尝试组装我的代码时,我得到了这个Error: invalid char '[' beginning operand 2 '[esp+4]'
和Error: invalid char '[' beginning operand 1 '[edx]'
最相关的代码已经在错误中,但是我从here 获得了代码。要重现错误,只需在.section .text 中使用这个小模式,命令如下所示:
mov edx, [esp + 4]
lidt [edx]
sti
ret
我正在使用gcc -m32 -c -o idtasm.o idtasm.S 组装。
谢谢你的回答,
真诚的 G3bE
【问题讨论】:
-
这不是 gnu 汇编语法。您将需要对其进行调整。使用该文件,您可能会通过传递
-masm=intel并将global更改为.global(带点)并删除所有extern行。或者,您可以只使用该代码可能用于的nasm。 -
谢谢。我使用了
nasm -f elf -o idtasm.o idtasm.S,它成功了! -
@G3bE 非常好!将此作为您自己问题的答案发布,以便其他人注意到。