Итак, я создаю программу в сборке 8086, которая позволяет пользователю вводить массив символов, пока он не введет «$», затем из этого массива отфильтровать его, оставить только цифры и создать из них новый массив.номера, но сгруппировать их в 3 цифрыНапример:
Пользователь вводит: 34km12ap111cs345o $ Массив результата: 341,211,134
И, наконец, я хочу, чтобы ind переменная "zbir" сохраняла сумму первого и последнего числа в массиве результатовв этом случае: 341 + 134 = 475
Вот код:
.model small
.stack 100
.data
niza db 50 dup (?)
broj dw 0
index db ?
nizaA dw 50 dup(?)
zbir dw ?
prv dw ?
vtor dw ?
.code
mov ax, data
mov es, ax
mov ds, ax
mov bx, 0
Vnes:
mov ah, 1
int 21h
mov niza[bx], al
inc bx
cmp al, 36
jne Vnes
mov bx, 0
mov index, 0
Premestuvanje:
mov cl, niza[bx]
cmp cl, 36
je Exit
cmp cl, 48
jl Skok
cmp cl, 57
jg Skok
sub cl, 48
mov ch, 0
mov ax, broj
mov dx, bx
mov bx, 10
mul bl
add ax, cx
mov broj, ax
mov bx, dx
cmp ax, 100
jl Skok
mov dx, bx
mov bl, index
mov bh, 0
mov ax, broj
mov nizaA[bx], ax
mov broj, 0
mov bx, dx
inc index
Skok:
inc bx
jmp Premestuvanje
Exit:
dec index
mov bx, 0
mov ax, nizaA[bx]
mov prv, ax
mov bl, index
mov bh, 0
mov cx, nizaA[bx]
mov vtor, cx
add ax, cx
mov zbir, ax
mov ax, 4c00h
int 21h
ends
Однако проблема заключается в следующем.В целях тестирования я поместил первое число в массиве в переменную «prv» и последнее число в переменную «vtor».Переменная «vtor», кажется, содержит правильное значение, а переменная «prv» - нет.Вместо этого он содержит то же значение, что и значение переменной nizaA, и, таким образом, вычисляет неверный результат.
Может кто-нибудь помочь?