NASM“忽略寄存器大小规范”

艾萨克·科恩

我试图用NASM汇编文件,但它指向文件中的这一行:

mov al, byte ptr es:[bx]

说:

error: comma, colon or end of line expected

在该网站上发现了一个页面,上面写着NASM不喜欢“ ptr”一词,如果我写这样的话,会很高兴:

mov al, byte es:[bx]

代替。所以我拿出“ ptr”一词,NASM仍然不高兴。当我省略“ ptr”一词时,这是NASM给我的:

warning: register size specification ignored

和:

error: invalid combination of opcode and operands

这是一个陷阱22!不管我是否输入“ ptr”一词,NASM都很生气。有人可以帮我吗?

艾萨克·科恩

我知道了!如果我写以下内容,NASM会很高兴:

mov al,byte [es:bx]

就像盖伊·西顿(Guy Sirton)所说。如果我在指令中遗漏了“字节”一词,将会发生这种情况。如果指令是这样的:

mov al, [es:bx]

NASM可以看到我要移动一个字节,因为我将其存储在al中,所以不会抱怨。但是,如果指令是这样的:

mov [es:bx],0xff

NASM无法看到我要在其中存储0xff的内存的地方,它会给您这样的错误:

error: operation size not specified

重要的是要知道,尤其是如果您使用的是教程,那么NASM不会以常规方式出现。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

NASM“忽略寄存器大小规格”

来自分类Dev

CPU寄存器的大小

来自分类Dev

Nasm将值从寄存器添加到数组

来自分类Dev

NASM 32位:通过printf打印寄存器的内容

来自分类Dev

NASM:通过寄存器在内存之间移动

来自分类Dev

nasm x86_64中的Strcmp,寄存器

来自分类Dev

NASM MOV从寄存器到缓冲区

来自分类Dev

NASM:用标志替换寄存器的特定位

来自分类Dev

Nasm将值从寄存器添加到数组

来自分类Dev

NASM将字节添加到寄存器ebx

来自分类Dev

在 NASM 编程中将数据从变量移动到寄存器

来自分类Dev

Windbg忽略更改寄存器以克服访问冲突

来自分类Dev

的情况下,gcc忽略了寄存器声明?

来自分类Dev

Windbg忽略更改寄存器以克服访问冲突

来自分类Dev

gcc如何知道用于内联汇编的寄存器大小?

来自分类Dev

Lua虚拟机寄存器大小

来自分类Dev

gcc如何知道用于内联汇编的寄存器大小?

来自分类Dev

Lua虚拟机寄存器大小

来自分类Dev

统计寄存器

来自分类Dev

带有 cx 寄存器的 NASM 汇编器无限循环

来自分类Dev

英特尔x86段寄存器和GDT(LDT)寄存器的大小

来自分类Dev

为什么nasm在寄存器之间汇编MOV指令时使用0x89?

来自分类Dev

NASM x86使用不存在的段寄存器7

来自分类Dev

从64位nasm代码中接收32位寄存器

来自分类Dev

为什么我的常数寄存器比较在NASM Assembly中不起作用?

来自分类Dev

为什么nasm在寄存器之间汇编MOV指令时使用0x89?

来自分类Dev

从64位nasm代码中接收32位寄存器

来自分类Dev

NASM从内存移动到寄存器并返回后的运行效果不理想

来自分类Dev

ebx 寄存器在 NASM 中不起作用,但 ecx 起作用