Форум программистов «Весельчак У»
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
Начало
Наши сайты
Галерея
Весельчак У
Наша Вики
Хранилище
Проекты
Правила
Правила форума
Правила русского языка
Помощь
Поиск
Календарь
Почта
Войти
Регистрация
Форум программистов «Весельчак У»
>
Программирование
>
Ассемблер
(Модератор:
Tuborg
) > Тема:
Размеры сегментов
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Размеры сегментов (Прочитано 9057 раз)
0 Пользователей и 1 Гость смотрят эту тему.
kvych
Гость
Размеры сегментов
«
:
24-10-2008 10:57 »
У меня два вопроса:
1)
Я объявляю сегменты данных, кода и стека:
stack segment word 'STACK'
db ..... ;объявления данних
stack ends
data segment word 'DATA'
db ..... ;объявления данних
data ends
text segment word 'CODE'
..... ;код
mov ax, 4c00h
int 21h
text ends
>Сколько памяти выделится для каждого сегмента: целый сегмент (64 кб) или столько, сколько занимает сегмент с объявленными переменными?
2)Есть ли какая-то закономерность относительного размещения этих сегментов в памяти, и могут ли они перекрываться?
(Речь идёт о EXE-программе под DOS)
Спасибо зарание.
Записан
RXL
Технический
Администратор
Offline
Пол:
Re: Размеры сегментов
«
Ответ #1 :
26-10-2008 13:02 »
Подумай - разве запрещено сделать так:
Код:
mov ax, 1000h
mov ss, ax
mov ax, 1001h
mov ds, ax
В файле будет выделено место ровно столько, сколько понадобится для размещения (не забывай про выравнивание - оно вносит коррективы).
Записан
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
kvych
Гость
Re: Размеры сегментов
«
Ответ #2 :
26-10-2008 18:18 »
То есть, если я напишу
Код:
data segment word 'DATA'
matrix db 400 dup(0)
data ends
то будет выделено 400 байт и вся последующая память будет считаться свободной?
«
Последнее редактирование: 26-10-2008 18:20 от ...kvych...
»
Записан
RXL
Технический
Администратор
Offline
Пол:
Re: Размеры сегментов
«
Ответ #3 :
26-10-2008 18:23 »
Что такое свободная память?
Записан
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
kvych
Гость
Re: Размеры сегментов
«
Ответ #4 :
27-10-2008 16:48 »
Свободная со сторони ОС, и она может быть выделена другому процессу.
Записан
Basurman
Опытный
Offline
Пол:
Re: Размеры сегментов
«
Ответ #5 :
28-10-2008 05:03 »
Вот как раз в последующей памяти и может сидеть другой процесс, а свободная память будет где то в другом месте.
Записан
kvych
Гость
Re: Размеры сегментов
«
Ответ #6 :
28-10-2008 17:51 »
Спасибо, я узнал всё, что хотел.
Записан
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Форум программистов «Весельчак У»
>
Программирование
>
Ассемблер
(Модератор:
Tuborg
) > Тема:
Размеры сегментов
Загружается...