“mov”的操作数类型不匹配

西蒙

我想要 eflags 值,但出现错误

operand type mismatch for `mov'

这是我的代码:

int a0 = 0, b0 = 1; short c0;
//  asm("cmp %1, %2\npushf\npop ax\nmov ax, $0": "=r" (c0): "r" (a0), "r" (b0));
asm("cmp %1, %2\n lahf\n mov %%ax, $0": "=r" (c0): "r" (a0), "r" (b0): "ax");

我也试过用movb啊但同样的错误。

模糊

您的代码中有两个错误:

  1. $前缀表示立即。mov %ax, $0试图移动ax到即时0,这是荒谬的。也许您打算改写%0,表明c0?
  2. 如果我们替换mov %%ax, $0mov %%ax, %0,第二个问题是,c0是的int,因而%0被替换一些32位寄存器,所以你喜欢的东西mov %ax, %ecx这也是错误的,因为两个操作数mov必须具有相同的大小。您可以通过解决这个问题c0unsigned char,改变mov %%ax, %0mov %%ah, %0

无论如何,使用mov内联汇编通常是错误的,但在这里很难避免,因为您不能轻易告诉 gccc0ah寄存器中期望

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

操作数类型冲突:文本与uniqueidentifier不兼容

来自分类Dev

ASM:操作数大小不匹配,输出错误

来自分类Dev

操作符<<(操作数类型std :: ostream)不匹配c ++ OOP和Point

来自分类Dev

gcc内联汇编错误“ mov的操作数类型不匹配”

来自分类Dev

mov指令奇怪的目标操作数

来自分类Dev

vpbroadcastd的操作数类型不匹配

来自分类Dev

C ++ [错误]与'operator =='不匹配(操作数类型为'Vehicle'和'const Vehicle')

来自分类Dev

运算符操作数类型不匹配

来自分类Dev

操作符!=不匹配(操作数类型是指针和对象)

来自分类Dev

与“ operator >>”不匹配(操作数类型为“ QDataStream”和“ QJsonObject”)

来自分类Dev

x86汇编编程(GAS语法):'shl'的操作数类型不匹配

来自分类Dev

操作数类型冲突:文本与uniqueidentifier不兼容

来自分类Dev

操作数类型与运算符不兼容

来自分类Dev

ASM:操作数大小不匹配,出现“输出”错误

来自分类Dev

错误的操作数类型

来自分类Dev

操作数类型冲突:bigint与时间不兼容

来自分类Dev

gcc内联汇编错误“ mov的操作数类型不匹配”

来自分类Dev

错误的操作数类型

来自分类Dev

构建Linux Kernel 2.6.10时出错,错误:“ mov”的操作数类型不匹配

来自分类Dev

不兼容的操作数类型Die和Int

来自分类Dev

'operator + ='不匹配(操作数类型为'std :: basic_ostream <char>'和'int')

来自分类Dev

C ++,编译时错误“与'operator []'不匹配(操作数类型为'someClass *'和'someClass')”

来自分类Dev

操作数类型不兼容(“ bool(*)()”和“ bool”)

来自分类Dev

错误:“operator=”不匹配(操作数类型为“PlDrustvo”和“PlDrustvo”)|

来自分类Dev

Tsql 操作数类型冲突:日期与 int 不兼容

来自分类Dev

fstcw 汇编操作数类型不匹配

来自分类Dev

'operator[]' 不匹配(操作数类型是 'std::unique_ptr<std::vector<int> >' 和 'int')

来自分类Dev

不匹配“operator=”(操作数类型为“String”和“void”)

来自分类Dev

如何修复:错误:“operator=”不匹配(操作数类型为“Estado”和“Estado*”)

Related 相关文章

  1. 1

    操作数类型冲突:文本与uniqueidentifier不兼容

  2. 2

    ASM:操作数大小不匹配,输出错误

  3. 3

    操作符<<(操作数类型std :: ostream)不匹配c ++ OOP和Point

  4. 4

    gcc内联汇编错误“ mov的操作数类型不匹配”

  5. 5

    mov指令奇怪的目标操作数

  6. 6

    vpbroadcastd的操作数类型不匹配

  7. 7

    C ++ [错误]与'operator =='不匹配(操作数类型为'Vehicle'和'const Vehicle')

  8. 8

    运算符操作数类型不匹配

  9. 9

    操作符!=不匹配(操作数类型是指针和对象)

  10. 10

    与“ operator >>”不匹配(操作数类型为“ QDataStream”和“ QJsonObject”)

  11. 11

    x86汇编编程(GAS语法):'shl'的操作数类型不匹配

  12. 12

    操作数类型冲突:文本与uniqueidentifier不兼容

  13. 13

    操作数类型与运算符不兼容

  14. 14

    ASM:操作数大小不匹配,出现“输出”错误

  15. 15

    错误的操作数类型

  16. 16

    操作数类型冲突:bigint与时间不兼容

  17. 17

    gcc内联汇编错误“ mov的操作数类型不匹配”

  18. 18

    错误的操作数类型

  19. 19

    构建Linux Kernel 2.6.10时出错,错误:“ mov”的操作数类型不匹配

  20. 20

    不兼容的操作数类型Die和Int

  21. 21

    'operator + ='不匹配(操作数类型为'std :: basic_ostream <char>'和'int')

  22. 22

    C ++,编译时错误“与'operator []'不匹配(操作数类型为'someClass *'和'someClass')”

  23. 23

    操作数类型不兼容(“ bool(*)()”和“ bool”)

  24. 24

    错误:“operator=”不匹配(操作数类型为“PlDrustvo”和“PlDrustvo”)|

  25. 25

    Tsql 操作数类型冲突:日期与 int 不兼容

  26. 26

    fstcw 汇编操作数类型不匹配

  27. 27

    'operator[]' 不匹配(操作数类型是 'std::unique_ptr<std::vector<int> >' 和 'int')

  28. 28

    不匹配“operator=”(操作数类型为“String”和“void”)

  29. 29

    如何修复:错误:“operator=”不匹配(操作数类型为“Estado”和“Estado*”)

热门标签

归档