クライアントが入力する整数の桁数の合計を計算するアセンブリ言語のプログラムに取り組んでいます。番号は常に 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」で疑似コードを実装する方法を知る必要があるだけです。また、上記のコードのいずれかが不十分/間違って書かれている場合はお知らせください。大変感謝しています。