Войти

Показать полную графическую версию : адресация в памяти


clop1000
09-10-2007, 13:54
а как в исолняемых программах указан адрес в памяти? смещение?(типа от первого элемента проги 100шагов?)или как то иначе?

dmitryst
09-10-2007, 14:14
clop1000, вообще-то, для разных процессоров по-разному. В некоторых надо было грузить программу точно по нужному адресу, в других можно было грузить куда влезет, а потом "перемещающим загрузчиком" двигать её куда надо.

CyberDaemon
09-10-2007, 14:23
dmitryst, угу. А еще сами исполняемые файлы разного формата бывают. COM, EXE.... BAT тоже можно считать исполняемой программой.
clop1000, что есть "исполняемая программа"? Файл на диске? Или уже сформированный машинный код в памяти?
А то в таком виде, как ты задал - это вопрос из серии "Какой командой процессора Колобок съедает Чёрта?". :)

dmitryst
09-10-2007, 14:26
А еще сами исполняемые файлы разного формата бывают. COM, EXE » а у "БК-0010" или "Радио-86РК" какие были? :lol:

clop1000
09-10-2007, 14:28
если тупо
ввёл в DOS 125.exe
куда это в память пихается?

dmitryst
09-10-2007, 14:37
clop1000, в заголовке файла должно быть написано, куда идёт код, а куда - данные (на 86-й архитектуре, на других всё это валится в один кусок памяти)

clop1000
09-10-2007, 14:47
дык а если в этом адресе уже прога есть?

dmitryst
09-10-2007, 14:58
дык а если в этом адресе уже прога есть? » - а нафиг её! :). Соответственно, будет фрагментация памяти, что не есть хорошо. В более продвинутых вариантах - в свап (и, соответственно, потом обратно) сваливается ненужная в данный момент программа.

CyberDaemon
09-10-2007, 15:48
а у "БК-0010" или "Радио-86РК" какие были?
Такое не пользовал :) Только х86 архитектуру. А если ты про COM, то у меня в SYSTEM32 у WINXP лежит файлик command.com :)

дык а если в этом адресе уже прога есть?
А нет в этом адресе проги. DOS не позволит - если у него не окажется достаточной области свободной памяти для размещения программы - будешь вежливо послан на "Program too big to fit in memory". Адреса-то в заголовке EXE относительные, а не абсолютные.

dmitryst
09-10-2007, 15:51
Только х86 архитектуру. » хе-хе... А я не только... Вот для калькуляторов еще не программировал :). Вот на БК как раз и было затирание предыдущей программы, адреса там только абсолютные.

CyberDaemon
09-10-2007, 16:08
dmitryst, ну программируемые калькуляторы-то я еще застал. Самым навороченный был со встроенным бейсиком - на нем так здорово было на парах в игрухи играть :). А из ПМ у меня были только машинки x86 архитектуры, начиная с советской Электроники-МС1502.

Хотя вру - в школе информатику изучал на зверюге УКНЦ - но в школе ассемблеру не учат, поэтому я не в курсе, как там интерпретатор бейсика работает :) Как, впрочем, и интерпретатор бейсика на x86 :)

dmitryst
09-10-2007, 16:29
в школе информатику изучал на зверюге УКНЦ » - оооооо, это ж святое... Там целых ДВА процессора было! (КР1801ВМ2) - один -ЦП, второй на звуке, SoundBlaster :lol:. БК из той же оперы :)




© OSzone.net 2001-2012