BG Development


Страници: (2) 1 [2]   ( Първото ново мнение ) Reply to this topicStart new topicStart Poll

> Нова статия в asm32.info, По желание на трудещите се.
GigaByte
Публикувано на: 14-12-2014, 12:23
Quote Post



Име: ГБ
Група: Потребител
Ранг: Редовен член

Мнения: 532
Регистриран на: 19.08.09



Понеже наистина обяснявша разбираемо за мен и ще продължа с питанките пак за assembler.
Та, ако можеш да обясниш значението, приложението и разликите при т.нар. плоска и сегментирана памет адресация.
PMEmail PosterUsers Website
Top
johnfound
Публикувано на: 14-12-2014, 19:39
Quote Post


Group Icon
Име:
Група: VIP
Ранг: Почетен член

Мнения: 6944
Регистриран на: 27.05.04



QUOTE (GigaByte @ 14-12-2014, 13:23)
Понеже наистина обяснявша разбираемо за мен и ще продължа с питанките пак за assembler.
Та, ако можеш да обясниш значението, приложението и разликите при т.нар. плоска и сегментирана памет адресация.

Сегментите и сегментните регистри имаха голямо значение в DOS и в реален режим на паметта. Идеята зад тях беше да може да се адресира повече от 64К памет и все пак да се използват 16 битови регистри. "Истинският адрес" се изчислява като Сегмент*16+отместване. Сегментния регистър се зарежда с някаква стойност и обработваме 64К парче, адресирайки примерно със EDI.

Всичко това има общо взето историческа стойност, или най-много ако пишеш boot-loader.

В защитен режим, начина на работа на сегментните регистри се променя значително. Сега вече те не съдържат част от адреса, а съдържат номер в таблицата с дескриптори (глобална или локална) в която таблица е описан сегмента - на кой физически адрес се намира, колко е голям, какъв е достъпа до него и т.н.

Добрата новина е, че всичко това касае единствено и само операционната система. Всички приложения при стартирането си получават един сегмент заемащ цялото адресно пространство и не могат да променят сегментните регистри. Това се нарича плосък модел на паметта.

Трябва да се отбележи специално, че това не намалява възможностите за адресиране, защото в защитен режим регистрите са 32/64 битови и могат да адресират цялото адресно пространство.


--------------------
asm32 - Приложно програмиране на асемблер.
Tox: 2B446ADCEC7E180CD4C59391D81D4CAB3E99CA7AE767DB3AB45AF976F8A2050FF071DDB733F1
PMEmail PosterUsers Website
Top
0 потребители преглеждат тази тема в момента (0 гости, 0 анонимни потребители)
Потребители, преглеждащи темата в момента:

Topic Options Страници: (2) 1 [2]  Reply to this topicStart new topicStart Poll

 


Copyright © 2003-2018 | BG Development | All Rights Reserved
RSS 2.0