Страница 1 из 1

массивы, где ошибка

Добавлено: 11 май 2010, 12:12
sereja_2009
Есть код который считает сумму элементов массива. но как вывести сумму если она больше 9. после 9 он отображает символы, а не цифры.
MASM
MODEL small
STACK 256
.data
mes db 0ah,0dh,'rezult: ','$'
mas db 4 dup (?) ;исходный массив
i db 0
sum db 0

.code
main:
mov ax,@data
mov ds,ax
xor ax,ax ;обнуление ax
mov cx,5 ;значение счетчика цикла в cx
mov si,1 ;индекс начального элемента в cx

mov dh,sum

go: ;цикл инициализации
mov bh,i ;i в bh
mov mas[si],bh ;запись в массив i
add dh,mas[si]
inc i ;инкремент i
inc si ;продвижение к следующему элементу массива
loop go ;повторить цикл

;вывод на экран получившегося массива


mov ah,02h ;функция вывода значения из al на экран
mov dl,dh
add dl,30h ;преобразование числа в символ
int 21h

exit:
mov ax,4c00h ;стандартный выход
int 21h
end main ;конец программы

Re: массивы, где ошибка

Добавлено: 11 май 2010, 13:36
BulldozerBSG
Ну так все правильно, алгоритм вывода результата менять надо. И данный вопрос уже встречался.
Циклически делить на 10. к остатку от деления добавлять 30h и печатать перед предыдущим на печатаным символом. а результат сравнивать с 0. если не равен то повторить деление иначе на выход.

массивы, где ошибка

Добавлено: 11 май 2010, 19:01
sereja_2009
спасибо за ответ. но всё же не могли бы ВЫ показать где и что именно вписать. что-то у меня ничего не получаается!

Re: массивы, где ошибка

Добавлено: 12 май 2010, 09:23
airyashov