如何在汇编中打印一个双字?

How to print a DWord in assembly?

我正在学习汇编,如果能够在屏幕上输出一个数字而不只是一串文本对我来说会很好。我知道如何使用 mov eax, 1 打印字符,但这不适用于双字。

我使用的是 64 位Ubuntu。

生成文件:

all:
    nasm -f elf64 asm.s -o asm.o
    ld asm.o -o asm
    rm asm.o

打印内容的一种简单方法是使用 printf,你问的是如何打印双字,这很简单:

extern _printf

SECTION .data
    msg:     db "Printing a dword: %d",10,0
    number:  dd  123456789

SECTION .text
    global start

start:
    push dword [number]
    push dword msg
    call _printf
    add esp, 8
    mov eax, 0
    ret