Консультация онлайн # 160931

Раздел: Assembler
Автор вопроса: Stazher
Дата: 19.02.2009, 21:26 Консультация неактивна
Поступило ответов: 1
Доброго времени суток.
Вопрос по книге Калашникова, а точнее по поводу следующего исходника:

CSEG segment
org 100h

_beg:
mov ax,0B800h
mov es,ax
mov di,0

mov ah,31
mov al,1
mov es:[di],ax

mov ah,10h
int 16h

int 20h

CSEG ends
end _beg

Который должен вывести на мой экран весёлую рожицу.

Дабы отбросить сомнения по поводу правильности набора, я по итогу содрал код из прилагаемого диска с исходниками. Однако весёлой рожицы в углу экрана так и не узрел.

В чём может быть проблема? Лично сам склоняюсь к мысли, что данный код работает только под ДОСом (У меня Виндос ХР). Однако предидущие программки у меня работали. Опять же с оговоркой на то, что "Hello, world" проскакивало очень быстро. Однако из положения я вышел дописав код остановки программы до нажатия клавиши. Т.е. без этой доработки код в принципе работает. Но реакция что бы его углядеть нужна как у мангуста.

З.Ы. очень прошу помочь, потому как речь идёт не только о отсутствии на экране одной довольной рожици. Но и присутствии перед экраном одной недовольной-)
Здравствуйте, Stazher!

Проблема в том, что у Вас ХР, а не Win9x.
ХР не устанавливает нужный текстовый режим, у которого сегментный адрес равен 0B800h.
Поставте такие строки в начале программы:
_beg:mov ax,3
int 10h

И наслаждайтесь работой программы.
Удачи!

Зенченко Константин Николаевич

Старший модератор
19.02.2009, 21:33
Нет оценки ответа

Мини-форум консультации # 160931

Зенченко Константин Николаевич

Старший модератор

ID: 31795

177038

= общий =    19.02.2009, 21:44
автоматическое завершение программы это ещё одна особенность ХР, но Вы её решили.
На будущее, пользуйтесь поиском в архиве рассылки, по книге О.Калашникова там есть ответы практически на все возникающие вопросы.
=====
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.
smile
Возможность оставлять сообщения в мини-форумах консультаций доступна только после входа в систему.
Воспользуйтесь кнопкой входа вверху страницы, если Вы зарегистрированы или пройдите простую процедуру регистрации на Портале.