Добавлено: 20 мар 2004, 14:01
Размер расчитывается немного по-разному для .exe и .com программ. Стоит заметить, что оставлять резидентно "экзешники" полное извращение, так как это очень не экономно по отношению к 640кБайт памяти. Поэтому я расскажу про .com программу (если все-таки нужен .exe - пишите, приведу пример для .exe).
Для .com:
В самом конце программы надо поставить метку (перед end start или ends). В dx занести размер программы + PSP. Поделить на 16 (1 параграф equ 16 байт). Следующий примитивный пример ничего не делает, кроме того, чтобы остаться резидентом.
, только зарегистрируйтесь на форуме, плиз.
Для .com:
В самом конце программы надо поставить метку (перед end start или ends). В dx занести размер программы + PSP. Поделить на 16 (1 параграф equ 16 байт). Следующий примитивный пример ничего не делает, кроме того, чтобы остаться резидентом.
Код: Выделить всё
.model tiny
.code
org 100h
_start:
mov ah,31h
mov dx,offset last_byte ; адрес метки (== размер программы + PSP (100h))
shr dx,4 ; делим на 16
inc dx ; еще один параграф добавим
int 21h
last_byte: ; метка, указывает на область "за программой"
end _start
Всегда пожалуйстадумаю это не последний мой вопросик...
