这个 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 中存储变量的地址,而不是值本身。
最近开始接触汇编,一直在用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 中存储变量的地址,而不是值本身。