Учебное пособие Санкт-Петербург Издательство спбгэту «лэти» 2006
Вид материала | Учебное пособие |
Содержание2.6. Распределение оперативной памяти в Intel 8086 для MS DOS 2.7. Организация выполняемых программ в MS DOS |
- Учебное пособие Санкт-Петербург Издательство спбгэту «лэти» 2006, 648.91kb.
- Учебное пособие Санкт-Петербург Издательство спбгэту «лэти» 2004, 1302.72kb.
- Лэти» радиотехнические цепи и сигналы лабораторный практикум санкт-Петербург Издательство, 1341.05kb.
- Учебное пособие Издательство спбгпу санкт-Петербург, 1380.47kb.
- Учебное пособие Санкт-Петербург Издательство спбгпу 2003, 5418.74kb.
- Учебное пособие Санкт-Петербург 2011 удк 621. 38. 049. 77(075) Поляков, 643.33kb.
- СПбгэту центр по работе с одаренной молодежью информационное письмо санкт-Петербургский, 63.77kb.
- 1. Обязательно ознакомиться с пакетом заранее. Все вопросы можно обсудить с редакторами, 215.48kb.
- Пособие для студентов IV-VI курсов, интернов и клинических ординаторов Санкт-Петербург, 494.12kb.
- Новые поступления за январь 2011 Физико-математические науки, 226.57kb.
2.6. Распределение оперативной памяти в Intel 8086 для MS DOS
Примерное распределение адресного пространства основной памяти, принятое в ОС MS DOS, приведено в табл. 2.1
Таблица 2.1
Границы участка, Кб | Сегмент:смещение | Назначение участка |
0..1 | 0000:0000(03FF) | 256 векторов прерываний |
1..60 | 0010:0000 | Область данных и резидентная часть DOS IO.SYS – расширитель BIOS:
MSDOS.SYS – обработчик прерываний операционной системы:
|
60..640 | | Данные, программы пользователя |
640..768 | A000:0000 | Область видеоадаптеров |
768..1016 | C000:0000 FE00:0000 | Область ПЗУ; Область BIOS. |
2.7. Организация выполняемых программ в MS DOS
При работе в среде ОС MS DOS используется три типа исполняемых файлов:
- *.bat – задают порядок выполнения некоторой последовательности программ;
- *.com – файлы исполняемых программ типа com;
- *.exe – файлы исполняемых программ типа exe.
Файлы типа *.com содержат только исполняемый код без дополнительной информации о программе, формируются в загрузочном виде и не требуют настройки. Весь код, данные и стек такой программы располагаются в одном сегменте, имеют длину не более 64 Кб и служат для организации простых модулей, ориентированных на модели памяти tiny и small (прил. 1).
Файлы типа *.exe могут иметь произвольную длину, они содержат заголовок, в котором описывается размер файла, требуемый объем памяти и таблица загрузки – список команд с абсолютными адресами, требующих настройки при загрузке в зависимости от размещения программы в памяти.
Структура размещения в памяти файла типа COM показана на рис. 2.4.
64 Кб | Стек Данные и код программы | SS:SP |
| | |
| 100h CS:IP ( директива ORG 100h) | |
| PSP | |
| | |
0 | DS, CS, ES, SS |
Рис. 2.4
В начальной части com-файла программы (а также и exe-файла) MS DOS размещает специальный блок – префикс сегмента программы (PSP-рrogram segment prefix), который содержит информацию для доступа программы к параметрам командной строки, к среде окружения, для реакции программы на критические ошибки и некоторые команды типа Ctrl+C. В начальной части PSP указан адрес обработчика прерываний для возврата в DOS. Так как после загрузки все сегментные регистры, включая CS, указывают на начало PSP, а IP = 0, то программа не может исполняться, начиная с этого адреса, и первой командой делают ORG 100h , устанавливающуую CS:IP на конец PSP.
Структура размещения в памяти файла типа EXE показана на рис. 2.5ю мых файлов. сразу за данной.., а состав основных полей ПСП – в табл. 2.2.
SS:SP
Стек
SS:00
Данные
DS (сюда его необходимо установить)
Код
100h CS:00
PSP
DS (начальное положение), ES
Рис. 2.5
Состав основных полей префикса сегмента программы (PSP) показан в табл. 2.2.
Таблица 2.2
0h | DW | Команда INT 20 ( 16-ный код: CD 20) - вызов прерывания DOS для завершения программы и возврата в DOS |
2h | DW | Размер доступной для программы памяти в параграфах |
0Eh | DD | Адрес обработчика прерывания по CtrlBreak (INT 23h) |
12h | DD | Адрес обработчика прерывания по критической ошибке (INT 24h) |
2Ch | DW | Значение сегментного адреса среды окружения |
80h | 64W | DTA –буферная область данных / адрес начала командной строки программы |