|
|
|
|
Типы кодирования
Для большинства основных программ на любом языке программирования программист редко интересуется подробностями выполнения программы процессором.
Подробности обработки в/в, управления памятью, размещения программы в памяти при ее выполнении, как правило, предоставляются для управления операционной
системе. Однако, имеется ряд моментов, когда требуется более непосредственное управление программной средой. В эти моменты программисту может
потребоваться знание и готовность принять ответственное решение по вопросам механизма загрузки, размещения и выполнения программы. Примерами, когда
это требуется, могут служить: написание автономных программ, функционирующих без присутствия MS-DOS; поддержка оверлейных (перекрываемых) программ
для использования больших программ в ограниченной физической памяти; и написание драйверов прерывания или рекурсивных программ.
Во время выполнения программы размещение ее в памяти отражается двумя путями. Во первых, для связи счетчика программы (также называемого как
указатель инструкции) или адреса ссылки памяти с блоком физической памяти используются регистры сегмента. Затем внутри этого блока формируется
действительная ссылка, используя смещение от начала этого блока. Это смещение появляется в счетчике программы, в ссылках на память и внутри косвенных
ссылок на память через регистры.
Что это означает для выполнения программ с различными типами кодирования? Эти типы ссылок и случаи, когда они используются, определяют как
программа загружается в память, какие особенности она может использовать и как программа может быть структурирована. Рассмотрим как создаются эти
ссылки и как их использовать для создания более совершенных программ.
|
|