segment



Автор Noname noname задал вопрос в разделе Другие языки и технологии

Что такое segment? и получил лучший ответ

Ответ от Денис Евдоченко[гуру]
@Это что значит программа не сможет использовать больше памяти? @
по умолчанию в дос программе выделяются ВСЕ свободные сегменты, все, и если не освободишь ненужную память и запустишь другое приложение (из себя) , то выдаст ошибку о недостатке памяти.
ASSUME CS:CSEG означает ассоциировать регистр сегмента кода с сегментом кода: ) это нужно только для ассемблера (tasm.exe или что там у тебя, fasm, nasm, masm...) и на конечный файл не влияет.
ехе проги строются по принцепу много сигментности. DB 256 DUP(?) эта означает, что в сегменте стека должно быть минимум 256, хотя это не так, реально под стэк отводится целый сегмент. 1 сегмент весит 65 кб. переполнение стэка раньше использовалось в дос-вирусологии для вышибания дебагеров, вирус работал первым и знал о переполнении и всё было нормально, потом востанавливал значение sp и выполнял код заражённого хозяина. реально, под данныекод может быть выделено несколько сегментов,
mov ax,ds:[2] прямое обращение к памяти, без переменных.
и кстати, стек можно перевести на сегмент данных: ) иногда может потребоваться: )
существуют локальные переменные.
они создаются так, в вр сохраняется в стеке и в него помещается значение sp, от sp вычитают размер всех локальных переменных (помни, джедай, стек растёт вниз!). обращение такое:
mov ax,[bp]
mov ax,[bp-4]
эх зачем я это всё рассказываю?.. .
если есть вопросы по ассемблеру (не по портам и прерываниям дос и его архитектуре и архетиктуре защитного режима и ssemmx3d now! расширениям) , обращайся)

Ответ от Мозг[гуру]
Вообще ассемблер не знаю, когда-то читал вкратце теорию по 16-битной части. ASSUME указывает компилятору, где, по каким адресам в памяти начинаются сегменты кода, данных и стека.
DB 256 DUP(?) означает выделить память ( define byte DB - определить байт) в 256 байт и заполнить эту память символом "?".
SSEG, если не изменяет память, это сегмент для хранения стека. То есть, максимально в стеке может храниться до 256 байт информации. Нужно учесть, что командой push в стек помещаются данные, а командой pop оттуда извлекаются. При помещении стек использует выделенную память, а при извлечении освобождает. То есть, в программе нельзя допускать, чтобы команда push внесла в стек больше 256 байт памяти подряд, без извлечения данных оттуда. Иначе произойдет переполнение стека, и в лучшем случае программа выдаст ошибку и завершится. А в худшем - будет работать неправильно, и не дай бог ( что вряд ли) повредит операционную систему. Стек - это самая важная тема в ассемблере. Так что изучи хорошенько.

Ответ от 3 ответа[гуру]
Привет! Вот подборка тем с ответами на Ваш вопрос: Что такое segment?
спросили в Ключи
Ключ для программы Scanitto Pro 2.0.6.76
Scanitto Pro v2.0.6.76

Name: TEAM BLZ Key: 1323344850597186889092949698100102104106подробнее...

Что такое Skynet? ЧТО ТАКОЕ СКАЙНЕТ ПО ВАШЕМУ?
Скайнет (англ. SkyNet — «небесная сеть» ) — искусственный интеллект, персонаж фильмов о
подробнее...
спросили в Sabellida
Split Second Online у кого получилось пишите
Их сервера прекратили свою работу, проект split second закрыт, не будет ни продолжения ни серверов
подробнее...
спросили в Diageo
Как переводится выражение "SAKAMOTO DESU GA?"
Я думаю, что это ответ на вопрос собеседника:

SAKAMOTO-SAN DESU KA? - Вы г-н Сакамото?
подробнее...

Английский. Чем отличаются друг от друга Zero,First,Second,Third Conditionals ?
реальностью / нереальностью условий и временем.
First Conditional - используется, когда вы
подробнее...
Ответ от 3 ответа[гуру]
Привет! Вот еще темы с похожими вопросами:
спросили в Second Life
Не могу зарегистрироваться в Second Life!
Second Life иногда имеет проблемы со своими серверами, бывает не только зарегистрироваться нельзя,
подробнее...
спросили в Honda Hyundai
Есть ли в Москве CASUAL Second Hand ?
Ха ха!! ! А откуда по твоему одежда в бутиках? Перед тем как попасть в магазин Second Hand,
подробнее...
спросили в Second Life
Ток что зарегилась в second life, скажите пожалуйста, как найти жилье и работу?)
Second Life это Вам не Sims.
Хотя там многие покупают участки земли для личного дома, жильё
подробнее...
спросили в Second Life
Вопрос по игре Second life
Это не совсем игра, поскольку разработчики предоставляют лишь движок и базового аватара. Все
подробнее...
спросили в People by name
Почему идиома "Second to none" переводится как "Непревзойденный", хотя в ней есть порядковое числительное "второй"?
Всё логично. Он ведь второй за никем, то есть нет никого перед ним, следовательно он получается
подробнее...

Где действительно бесплатно скачать Scanitto Pro?
Thank you...

Это ?

Scanitto Pro v2.0.5.54 ML Russian
Scanitto Pro - новая профессиональная
подробнее...

Как перевести: I'm second guessing myself.
По смыслу это значит: я принял какое-то решение, но сейчас у меня появились сомнения в его
подробнее...

Какая разница: aroma,odour,smell,scent and fragrance?
aroma -- (приятный) аромат (например, кофе)

scent и fragrance -- приблизительно одно и
подробнее...

Что значит фраза: "i am second to one - you are second to none"
i am second to one - буквально: Я второй после первого (после Спасителя) ; you are second to none -
подробнее...
Сегмент на Википедии
Посмотрите статью на википедии про Сегмент
 

Ответить на вопрос:

Имя*

E-mail:*

Текст ответа:*
Проверочный код(введите 22):*