массивы, где ошибка
Добавлено: 11 май 2010, 12:12
Есть код который считает сумму элементов массива. но как вывести сумму если она больше 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 ;конец программы
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 ;конец программы