Есть код который считает сумму элементов массива. но как вывести сумму если она больше 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 ;конец программы
массивы, где ошибка
Модератор: Andy
-
- Сообщения: 270
- Зарегистрирован: 09 янв 2010, 04:14
- Контактная информация:
Ну так все правильно, алгоритм вывода результата менять надо. И данный вопрос уже встречался.
Циклически делить на 10. к остатку от деления добавлять 30h и печатать перед предыдущим на печатаным символом. а результат сравнивать с 0. если не равен то повторить деление иначе на выход.
Циклически делить на 10. к остатку от деления добавлять 30h и печатать перед предыдущим на печатаным символом. а результат сравнивать с 0. если не равен то повторить деление иначе на выход.
-
- Сообщения: 3
- Зарегистрирован: 11 май 2010, 12:06
спасибо за ответ. но всё же не могли бы ВЫ показать где и что именно вписать. что-то у меня ничего не получаается!
icq:3(один)7748666
mail:airyashov( а)inbox.ru
mail:airyashov( а)inbox.ru