这个 NASM 汇编加法器有什么问题?

What is wrong with this NASM assembly adder?

最近开始接触汇编,一直在用NASM因为很容易找到教程。由于它的困难,我决定从很小的地方开始,通过编写一个程序来添加 1 和 3 并输出 4。我已经完成了足够的工作以至于我没有收到错误或警告消息,但除了sh-4.3$.

segment .text
    global _start
_start:
    mov eax, '1'
    sub eax, '0'

    mov ecx, '3'
    sub ecx, '0'

    add ecx, eax
    add ecx, '0'

    mov edx, 1
    mov ebx, 1
    mov eax, 4
    int 0x80

    mov eax, 1
    int 0x80

将你的结果移到一个变量中,然后显示变量:

section .data
    result : db ' ',10          ◄■■ VARIABLE
segment .text
    global _start
_start:
    mov eax, '1'
    sub eax, '0'

    mov ecx, '3'
    sub ecx, '0'

    add ecx, eax
    add ecx, '0'
    mov [result], cl          ◄■■ MOVE RESULT INTO THE VARIABLE.

    mov ecx, result           ◄■■ DISPLAY THIS VARIABLE.
    mov edx, 1
    mov ebx, 1
    mov eax, 4
    int 0x80

    mov eax, 1
    int 0x80    

您必须在 ECX 中存储变量的地址,而不是值本身。