我收到错误消息“ 64位模式不支持32位绝对寻址”

问题描述

我是新成员。我正在尝试组装成型三角形。编译时,出现“ 64位模式下不支持32位绝对寻址”错误。你能解释我想念的吗?这是我做对的方式

#include <stdio.h>

int main()
{
    int a,b,c;

    scanf("%d %d %d",&a,&b,&c);
    if(c < a + b && b < a + c && a < b + c)
        printf("yes");
    else
        printf("no");
}

这是我的代码

.data
.yes: .string "Yes"
.no: .string "No"
.global main


tri:
    push %rsi
    push %rdx

    add %rdi,%rsi # a + b
    cmp %rdx,%rsi # a + b > c
    jle no
    pop %rsi
    add %rsi,%rdx # c + a 
    cmp %rdi,%rdx # c + a > b
    jle no
    pop %rdx
    add %rdx,%rdi # b + c
    cmp %rsi,%rdi # b + c > a
    jle no 

    mov $.yes,%rdi
    mov %rax,%rsi
    xor %rax,%rax
    call printf
    ret
no:
    mov $.no,%rax
    call printf
    ret

main:
    mov $2,%rsi
    mov $2,%rdi
    mov $3,%rdx
    call tri




 

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)