- •Исследование процессов ввода/вывода информации и системы команд микропроцессоров семесйства intel 80×i86
- •Введение
- •1.Цель работ
- •2.1. Архитектура микропроцессора Intel 8086.
- •2.2. Адресация памяти и данных.
- •2.3. Синтаксис операндов языка assembler
- •2.4. Команды передачи данных.
- •Mov ax,segment
- •3) Mov [bx],dx переслать (dx) в ячейку адресованную (вх)
- •Mov al,es:[si]; ds заменен на es
- •Команды lea, lds, les.
- •Lea reg, memr
- •Команда xchg
- •Стековые команды push и рор
- •2.5 Префикс программного сегмента (psp)
- •2.6 Арифметические команды
- •Команды сложения и вычитания
- •0015 65А0
- •0037 1D3e
- •0004 В837
- •0001 F0f8
- •Команды расширения знака.
- •Команды inc, dec, neg, cmp.
- •Команды двоичного умножения и деления.
- •Дополнительные сведения.
- •2.7 Основные правила при разработке программ на языке assembler.
- •Int 21h
- •Int 21h
- •Int 21h
- •Int 21h
- •Int 21h
- •Int 21h
- •Int 21h
- •3. Лабораторные работы
- •Контрольные вопросы
- •Лабораторная работа № 2
- •Контрольные вопросы
- •Лабораторная работа № 3
- •Дополнительная информация для составления программы по данному заданию.
- •Лабораторная работа № 4
- •Контрольные вопросы
- •Лабораторная работа № 5
- •Контрольные вопросы
- •Лабораторная работа № 6
- •Контрольные вопросы
- •Лабораторная работа № 7
- •Рекомендации по выполнению лабораторной работы.
- •4.1. Тексты подпрограмм вывода на экран.
- •Int 21h
- •Int 21h
- •Контрольные вопросы
- •Лабораторная работа № 8
- •Контрольные вопросы
- •Лабораторная работа № 9
- •Контрольные вопросы
- •Лабораторная работа № 10
- •Контрольные вопросы
- •Контрольные вопросы
- •Лабораторная работа № 14
- •Контрольные вопросы
- •6. Требования к отчетам
- •7. Библиографический список
2.5 Префикс программного сегмента (psp)
Все программы для рассматриваемой системы работают под управлением DOS. В связи с этим при вызове командной строкой программы пользователя, DOS выполняет следующие действия:
1) создает копию блока "окружения среды";
2) резервирует область оперативной памяти ЭВМ для программы пользователя;
3) создает префикс программного сегмента (РSР);
4) загружает программу пользователя (программа загружается сразу за PSP);
5) производит настройку программы пользователя (если это необходимо) и сегментных регистров на область оперативной памяти, где расположена программа пользователя;
6) передает управление программе пользователя.
Наибольший интерес для прикладных программ представляет PSP. Расположение программы пользователя и PSP в оперативной памяти ЭВМ показано на рис.6.
Префикс программного сегмента это особая область памяти, предназначенная для связи программы пользователя с "родительским" процессом, т.е. работой всей системы под управлением DOS. Размер этой области равен 256 байт и имеет строгий формат. Из них первые 128 байт используются для непосредственной связи с головной программой и в дан- ном методическом руководстве рассматриваться не будут. Следующие 128 байт используются для размещения некоторых параметров, переданных программе пользователя из командной строки. Эти параметры можно использовать во время работы прикладной программы.
Рис.6. Расположение PSP в оперативной памяти ЭВМ
Например, прикладная программа была запущена из командной строки:
primer.exe t s / F:5 пример
В PSP эта строка будет расположена так, как приведено на рис.7.
Рис. 7. Расположение строки t s / F:5 пример в PSP
Отметим, что при запуске программы DOS производит настройку сегментных регистров по следующему правилу ЕХЕ программы:
в CS-загружается сегментный адрес запускаемого сегмента кода программы пользователя;
в SS-загружается сегментный адрес запускаемого сегмента стека программы пользователя;
в DS и ES- загружается сегментный адрес PSP.
По адресу хх080 расположена длина переданной программе строки (18 байт), а начиная с адреса хх081 расположена строка параметров, включая первый пробел (‘ ’), расположенный после названия программы. Необходимо отметить, что строка параметров заканчивается символами возврата каретки (0DH) и перевода строки (ОАН), необходимых для того, чтобы следующая выведенная на экран компьютера строка начиналась с новой строки. Признаком конца строки является Zero-бaйт (00H по адресу ххО93). Вся оставшаяся часть PSP, включая байт по адресу xxOFF, как правило, будет заполнена DOSom Zero-байтом. Таким образом, через PSP можно передать программе первые 124 байта из командной строки, следующие за названием программы. Также отметим, что копия параметров из командной строки в другую область памяти будет полной, включая знаки препинания, знаки псевдографики и национального алфавита.
2.6 Арифметические команды
Система команд рассматриваемого микропроцессора включает в себя команды для выполнения арифметических операций над двоичными, упакованными и неупакованными двоично-десятичными числами (BCD – числами). При этом над двоичными и неупакованными BCD – числами можно выполнять все четыре арифметические операции, а с упакованными BCD – числами только сложение и вычитание. Так как неупакованные BCD – числа удобно вводить и выводить в вычислительную систему, а сами арифметические операции проще выполнять в двоичной системе счисления, то чаще всего применяется алгоритм их преобразования:
1. числа вводятся в ЭВМ в неупакованном BCD – формате;
1. неупакованный BCD – формат преобразуется в двоичный формат;
2. в двоичном формате выполняются операции, заданные в программе;
3, результат, представленный в двоичном формате преобразуется в неупакованный BCD – формат и выводится из ЭВМ.