И 64 килобайта для них
Программы, написанные на "чистом" Ассемблере, очень компактны. И 64 килобайта для них довольно большой объем.
Помнится, писал когда-то я антивирусную оболочку типа "а-ля Нортон Коммандер" на Ассемблере. Так она заняла у меня примерно 40 килобайт, хотя и не выполняла всех функций NC, но делала кое-что другое. Еще пример: Volcov Commander поздних версий. Практически копия NC, но занимает всего 64000 байт (в отличие от Нортона). Я подозреваю, что писали ее если не на "чистом" Ассемблере, то хотя бы большую часть кода так точно. Да и работает Volkov гораздо быстрее Нортона.
Вернемся. Если есть желание поэксперементировать, то попробуйте перед вызовом 21h-ого прерывания загрузить в DS какое-нибудь число. Например, так:
... mov dx,offset My_string mov ax,10h mov ds,ax mov ah,9 int 21h ...
Вы увидите, что программа выведет не нашу строку, а какой-то "мусор" на экран, хотя в DX мы и загружаем адрес нашей строки, но сегмент другой. Только не забудьте восстановить DS после выполнения данной функции:
mov ax,cs mov ds,ax
Итак, полное описание:
Функция 09h прерывания 21h - вывод строки символов на экран в текущую позицию курсора:
Вход: |
AH = 09h
DS:DX = адрес ASCII-строки символов, заканчивающийся '$'
|
Выход: | ничего |
Ну, разобрались с этим окончательно...
Новые операторы.
Содержание Назад Вперед