gpt4 book ai didi

c - 内联汇编 : operand type mismatch for `in'

转载 作者:太空宇宙 更新时间:2023-11-04 03:42:55 25 4
gpt4 key购买 nike

我得到了错误

Error: operand type mismatch for `in'

生成这个的行是:

inb %%eax, %%edx 

我尝试了这些:inb %%eax, $0x00000064inb %%eax, $0x64

但他们都没有改变输出。我还尝试使用 in 而不是 inb,但此时我是在黑暗中拍摄的。

有什么想法吗?

最佳答案

“inb”的意思是你对size字节(8位)的操作数执行助记符命令“in”。 inw 用于字(16 位),inl 用于长字(32 位),inq 用于 quad(在 64 位机器上)。 %eax 寄存器是 32 位的,它由 %ax(16 位)组成。 %ax 寄存器又由高 8 位 (%ah) 和低 8 位 (%al) 组成。因此,如果你要使用“inb”,你应该使用 %al 或 %ah,例如,

inb %%al, %%dl # from source %%al 8-bit to destination %%dl 8-bit.

要将“in”与 %eax 一起使用,您需要将“l”附加到命令(或省略字母,因为某些编译器可以推断类型)。也就是说,

inl %%eax, %%edx

应该没问题。

关于c - 内联汇编 : operand type mismatch for `in' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27092867/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com