Поиск:

Ответ в темуСоздание новой темы Создание опроса
> int 21h меняет регистр ax, почему? 
V
    Опции темы
IKM2007
Дата 7.12.2008, 12:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зима близко
**


Профиль
Группа: Участник
Сообщений: 702
Регистрация: 26.4.2008
Где: olmedreca

Репутация: нет
Всего: 40



Доброго дня. ИНтересует такой вопрос. Почему иногда (не всегда) во время преривания int 21h меняется регистр ax? 

Допустим пишу:
Код

mov ah,9
lea dx,cout
int 21h

mov ah,9;если эту строчку не писать, то иногда не работает
lea dx,endl
int 21h



Спасибо.


--------------------
"К чёрту обстоятельства, я создаю возможности."
Брюс Ли
PM MAIL Skype   Вверх
MAKCim
Дата 7.12.2008, 12:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 1
Всего: 207



Цитата(IKM2007 @  7.12.2008,  12:31 Найти цитируемый пост)
Почему иногда (не всегда) во время преривания int 21h меняется регистр ax? 

где написано, что он не должен меняться?


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
IKM2007
Дата 7.12.2008, 15:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зима близко
**


Профиль
Группа: Участник
Сообщений: 702
Регистрация: 26.4.2008
Где: olmedreca

Репутация: нет
Всего: 40



Цитата(MAKCim @  7.12.2008,  12:42 Найти цитируемый пост)
где написано, что он не должен меняться?

Ну, например, в этом коде:
Код

name2    segment 'data'
        num db '0123456789$'
        endl db 10,13,'$'
name2    ends
...
mov ah,9
lea dx,num
int 21h

lea dx,endl
int 21h

lea dx,num
int 21h
...

Все печатается нормально, значит ah не изменился. Но иногда неправильно получается.


--------------------
"К чёрту обстоятельства, я создаю возможности."
Брюс Ли
PM MAIL Skype   Вверх
MAKCim
Дата 7.12.2008, 15:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 1
Всего: 207



IKM2007, 
я имею в виду где в документации DOS говориться о том, что int 21h не изменяет ax?


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
IKM2007
Дата 7.12.2008, 16:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зима близко
**


Профиль
Группа: Участник
Сообщений: 702
Регистрация: 26.4.2008
Где: olmedreca

Репутация: нет
Всего: 40



MAKCim,
я не читал документацию DOS-а, не говорю, что преривание 21h не меняет регистр ax,
мне просто интересно, почему не всегда меняет(то есть как работает).


--------------------
"К чёрту обстоятельства, я создаю возможности."
Брюс Ли
PM MAIL Skype   Вверх
Akina
Дата 7.12.2008, 21:38 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: нет
Всего: 454



Цитата(IKM2007 @  7.12.2008,  17:03 Найти цитируемый пост)
я не читал документацию DOS-а

Значит, пришло время почитать.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Mikl_
Дата 8.12.2008, 04:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 537
Регистрация: 9.11.2007

Репутация: 6
Всего: 14



IKM2007, а почему бы не написать вот так?
Код
num db '0123456789',10,13,10,13,'$'
...
mov ah,9
lea dx,num
int 21h
Произойдет вывод строки "0123456789" и перевод курсора на две строки вниз  smile 
PM MAIL   Вверх
IKM2007
Дата 8.12.2008, 13:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зима близко
**


Профиль
Группа: Участник
Сообщений: 702
Регистрация: 26.4.2008
Где: olmedreca

Репутация: нет
Всего: 40



Mikl_, просто иногда нужно переходить на новую строку, а иногда - нет. И чтобы путаницы не было, переход на новую строку отделил.

Добавлено через 1 минуту и 31 секунду
Цитата(Akina @  7.12.2008,  21:38 Найти цитируемый пост)
Значит, пришло время почитать.

Почитаю. smile 


--------------------
"К чёрту обстоятельства, я создаю возможности."
Брюс Ли
PM MAIL Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm: Общие вопросы"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0500 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.