【发布时间】:2015-07-23 11:15:29
【问题描述】:
我正在尝试编写一个简单的汇编程序。出于某种原因,有条件的移动似乎给了我这个错误。如果我用普通的 mov 指令替换它们,它就可以工作。下面的代码有什么问题?
.section .data
supported:
.asciz "AVX is supported"
notsupported:
.asciz "AVX is not supported"
.section .text
.global main
main:
movq $1, %rax
cpuid
andq $0x10000000, %rcx
cmovnz $supported, %rdi
cmovz $notsupported, %rdi
callq puts
movq $0, %rax
ret
cpuid.S:15: Error: operand type mismatch for `cmovnz'
cpuid.S:16: Error: operand type mismatch for `cmovz'
【问题讨论】:
标签: assembly x86 gnu-assembler att