Программа вычисляет значение формулы и должна вывести числа из регистров AL и AH. Я вывод регистра AH выводится какой-то непонятный символ. Подскажите плиз почему так? И как мне вывести значение регистра AL ?
model small stack 100h .data a db 8 b db -3 delt1 db 8 mnozh db 2 delt2 db 8 slag1 dw 0 slag2 dw 0 slag3 dw 0 slag12 dw 0 rez1 dw 0 rez2 dw 0 d db 0 .code start: mov ax,@data mov ds,ax xor ax,ax mov al,a add al,b cbw mul mnozh div delt1 mov slag1,ax xor ax,ax mov al,a cbw mul ax mov rez1,ax xor ax,ax mov al,b cbw imul ax mov rez2,ax xor ax,ax mov ax,rez1 sub ax,rez2 div delt2 mov slag2,ax xor ax,ax mov ax,slag1 sub ax,slag2 mov slag12,ax xor ax,ax mov al,b cbw idiv a mov slag3,ax xor ax,ax mov ax,slag12 sub ax,slag3
mov d, 10 mov dl, d idiv dl
mov dl, al add dl, 30h mov al, ah
mov ah, 0 push ax mov ah, 2 int 21h mov dl, 10
mov ah, 0 mov al, d idiv dl mov d, al pop ax
mov ax,4c00h int 21h end start
spill
19.03.2008 2:30
2-я функция 21h прерывания выводит на дисплей в текущую позицию курсора символ с кодом, хранящимся в DL. То есть она выведет не число, а символ который имеет в ASCII таблице такой номер. Поэтому, если тебе понадобится вывести число, то нужно сначала разбить его на цифры и вывести каждую по отдельности..
Neon6868
19.03.2008 4:37
Цитата(spill @ 18.03.2008 22:30)
2-я функция 21h прерывания выводит на дисплей в текущую позицию курсора символ с кодом, хранящимся в DL. То есть она выведет не число, а символ который имеет в ASCII таблице такой номер. Поэтому, если тебе понадобится вывести число, то нужно сначала разбить его на цифры и вывести каждую по отдельности..
Спасибо, исправил.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.