Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Asm: Общие вопросы > int 21h меняет регистр ax


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

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

mov ah,9
lea dx,cout
int 21h

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



Спасибо.

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

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

Автор: IKM2007 7.12.2008, 15:05
Цитата(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 не изменился. Но иногда неправильно получается.

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

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

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

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

Автор: Mikl_ 8.12.2008, 04:28
IKM2007, а почему бы не написать вот так?
Код
num db '0123456789',10,13,10,13,'$'
...
mov ah,9
lea dx,num
int 21h
Произойдет вывод строки "0123456789" и перевод курсора на две строки вниз  smile 

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

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

Почитаю. smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)