Помощь - Поиск - Пользователи - Календарь
Полная версия: Вывод чисел на экран
Форум «Всё о Паскале» > Современный Паскаль и другие языки > Ассемблер
Neon6868
Программа вычисляет значение формулы и должна вывести числа из регистров 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
2-я функция 21h прерывания выводит на дисплей в текущую позицию курсора символ с кодом, хранящимся в DL. То есть она выведет не число, а символ который имеет в ASCII таблице такой номер. Поэтому, если тебе понадобится вывести число, то нужно сначала разбить его на цифры и вывести каждую по отдельности..
Neon6868
Цитата(spill @ 18.03.2008 22:30) *

2-я функция 21h прерывания выводит на дисплей в текущую позицию курсора символ с кодом, хранящимся в DL. То есть она выведет не число, а символ который имеет в ASCII таблице такой номер. Поэтому, если тебе понадобится вывести число, то нужно сначала разбить его на цифры и вывести каждую по отдельности..


Спасибо, исправил. smile.gif
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.