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

Низкоуровневое программирование портов, микроконтроллеров и т.д.

Модератор: Andy

Ответить
sereja_2009
Сообщения: 3
Зарегистрирован: 11 май 2010, 12:06

Есть код который считает сумму элементов массива. но как вывести сумму если она больше 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 ;конец программы
BulldozerBSG
Сообщения: 270
Зарегистрирован: 09 янв 2010, 04:14
Контактная информация:

Ну так все правильно, алгоритм вывода результата менять надо. И данный вопрос уже встречался.
Циклически делить на 10. к остатку от деления добавлять 30h и печатать перед предыдущим на печатаным символом. а результат сравнивать с 0. если не равен то повторить деление иначе на выход.
sereja_2009
Сообщения: 3
Зарегистрирован: 11 май 2010, 12:06

спасибо за ответ. но всё же не могли бы ВЫ показать где и что именно вписать. что-то у меня ничего не получаается!
airyashov
Сообщения: 441
Зарегистрирован: 02 ноя 2007, 10:31

icq:3(один)7748666
mail:airyashov( а)inbox.ru
Ответить