Помощь - Поиск - Пользователи - Календарь
Полная версия: Com программы и резервирование памяти
Форум «Всё о Паскале» > Delphi, Assembler и другие языки. > Assembler
MixRin.RU$
Если я резервирую пустую память на 256 байт например, то размер выполняемого фала увеличивается соответственно на 256 байт sad.gif Как-нибудь можно резервировать память, чтобы при этом размер выполняемого .COM файла не увеличивался на размер этой памяти? dry.gif

Я понял как!!! Можно удалить топик и оставить где нибудь это как совет...
Раньше я выделял память так:
Buff db 256 DUP (0)
Но если вместо 0 поставить '?' (неизвестно), то размер файла увеличиватся не будет good.gif
Buff db 256 DUP (?)
xds
Причём все неинициализированные данные (директивы db, dw и т. п. с ?) должны располагаться либо в конце единственного сегмента, либо в секции .data?:

TEXT	segment
assume cs:TEXT,ds:TEXT

org 100h
startup:
lea dx,msg
mov ah,9
int 21h
mov ax,4C00h
int 21h

;--- Инициализированные переменные ---
msg db 'Hello, World!',13,10,'$'

;--- Неинициализированные переменные ---
dummy dw 256 dup(?)

TEXT ends
end startup


.model tiny

.code
.startup
lea dx,msg
mov ah,9
int 21h
mov ax,4C00h
int 21h

;--- Инициализированные переменные или константы ---
msg db 'Hello, World!',13,10,'$'

;--- Неинициализированные переменные ---
dummy dw 256 dup(?)

end


В случае использования расширенного набора директив определения сегментов, редактор связей сам расположит сегменты оптимальным образом:

.model tiny

;--- Инициализированные переменные ---
.data
msg db 'Hello, World!',13,10,'$'

;--- Неинициализированные переменные ---
.data?
dummy dw 256 dup(?)

.code
.startup
lea dx,msg
mov ah,9
int 21h
mov ax,4C00h
int 21h

end
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.