IPB
ЛогинПароль:

> ПРАВИЛА РАЗДЕЛА!!!

1. Заголовок или название темы должно быть информативным
2. Все тексты программ должны помещаться в теги [CODE=asm] [/CODE]
3. Прежде чем задавать вопрос, см. "FAQ",если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно, такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Ассемблера. Исключение только с согласия модератора.
5. НЕ используйте форум для личного общения! Все, что не относиться к обсуждению темы - на PM!
6. Проверяйте программы перед тем, как выложить их на форум!!

 
 Ответить  Открыть новую тему 
> Вывод чисел на экран, Неправильно выводит
сообщение
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 146
Пол: Мужской

Репутация: -  0  +


Программа вычисляет значение формулы и должна вывести числа из регистров 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
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Пионер
**

Группа: Пользователи
Сообщений: 58
Пол: Мужской
Реальное имя: Андрей

Репутация: -  2  +


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


Пионер
**

Группа: Пользователи
Сообщений: 146
Пол: Мужской

Репутация: -  0  +


Цитата(spill @ 18.03.2008 22:30) *

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


Спасибо, исправил. smile.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 1.12.2020 18:03
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name