Дана строка. Среди символов строки встречаются цифры. Написать программу, вычисляющую сумму всех цифр строки.

Например на ассемблере в синтаксисе fasm под дос:

 

org 100h

mov si,string

cld
mov cx,16
xor ax,ax
mov ah,02h
xor bx,bx

m1:
mov dl,[si]
push cx

mov cx,10
mov di,num
m2:
cmp dl,[di]
jnz m3
;int 21h
sub dl,30h
add bl,dl
m3: inc di
loop m2

pop cx
inc si
loop m1

xor ax,ax
mov al,bl
mov bx,10
xor cx,cx

m4:
xor dx,dx
div bx
push dx
inc cx
cmp ax,0
jnz m4

m5:
pop dx
add dx,30h
mov ah,2h
int 21h
dec cx
jnz m5

mov ah,01h
int 21h

mov ax,4C00h
int 21h

string db "1nr112t3brj9me18",0
num db "0123456789",0

 

Для строки "1nr112t3brj9me18" сумма будет равна 26.

Оцени ответ
Подпишись на наш канал в телеграм. Там мы даём ещё больше полезной информации для школьников!

Загрузить картинку