我正在用汇编语言编写一个程序,该程序将计算客户端输入的整数的数字之和。该号码将始终为 10 位数字。我对组装很陌生,我不知道如何进行。这是我到目前为止所写的:
SECTION .data
msg1: db "Enter a number 10 digits long: "
len1: equ $-msg1
msg2: db "The sum of the digits is "
len2: db $-msg2
SECTION .bss
num: resb 10
sum: resb 3
SECTION .text
global _start
_start: nop
start:
;prompt for number
mov eax, 4
mov ebx, 1
mov ecx, msg1
mov edx, len1
int 080h
;input number
mov eax, 3
mov ebx, 0
mov ecx, num
mov edx, 10
int 080h
init:
mov esi, num
mov edi, sum
add_digits:
;loop 10 times
;retrieve next digit
;add '0' to convert to number
;add to sum
;subtract 0 to sum
;print results
mov eax, 4
mov ebx, 1
mov ecx, msg2
mov edx, len2
int 080h
mov eax, 4
mov ebx, 1
mov ecx, sum
mov edx, 3
int 080h
;exit
exit:
mov eax, 1
mov ebx, 0
int 080h
我只需要知道如何在“add_digits”中实现伪代码。另外,如果我写了上面的任何代码很差/错误,请告诉我。非常感激。