如何将值从rax移至标签?

问题描述 投票:0回答:1

我正在尝试将rax中的值移动到我创建的标签。本质上,我试图弄清楚应该添加到mov label, rax的内容以使其起作用的原因。目前,我的标签被声明为四字,但是可以更改。到目前为止,我已经尝试过:

mov [label], rax-此文件可以编译,但是当我转到链接时,它给了我一个“截断为适合错误的重定位”

movq [label], rax-这将无法编译

movq label, rax-这也不会编译

mov [label], [rax]-无法编译。

无法编译的文件会给我“操作码和操作数的无效组合”。我应该怎么办?

assembly x86-64 nasm
1个回答
0
投票
extern printf

section .data
    output db "%lld",10,0

section .bss
    num1: resq 1

section .text
    global main

main:
    push rbp

    mov rax, 666
    mov [num1], rax

    xor rax, rax
    mov rdi, output
    mov rsi, [num1]
    call printf

    pop rbp
    xor rax, rax
    ret

编译和链接:

$ nasm -felf64 main.s && gcc -no-pie main.o

$ ./a.out

666

© www.soinside.com 2019 - 2024. All rights reserved.