- •Содержание
- •Введение
- •1 Нормативные ссылки
- •2 Спецификация задачи
- •3 Формулировка задачи
- •4 Используемые регистры
- •4.2 Сегментные регистры
- •5 Используемые команды
- •5.1 Команды пересылки и загрузки
- •5.2 Арифметические команды
- •5.2.1 Сложение
- •5.2.2 Вычитание
- •5.2.3 Умножение
- •5.2.4 Деление
- •5.2.5 Изменение знака операнда
- •5.2.6 Увеличение операнда на 1
- •5.2.7 Уменьшение операнда на 1
- •5.3 Команды сдвига
- •5.4 Циклы
- •5.5 Процедуры
- •5.6 Операции над битами и байтами
- •6 Используемые функции dos
- •7 Алгоритм решения задачи
- •7.1 Разработка алгоритма основной программы
- •7.2 Разработка алгоритма процедуры поиска нулевой строки
- •7.3 Разработка алгоритма процедуры формирования слов
- •8 Описание программы
- •8. 1 Программа выбора варианта №5, формирования и записи слов (Приложение а)
- •8.2 Программа построения графика (Приложение б)
- •9 Результаты машинного тестирования
- •Заключение
- •Список используемых источников
4.2 Сегментные регистры
Сегментные регистры предназначены для хранения базовых адресов (в реальном режиме – R-MODE) или селектора (в защищенном режиме P-MODE) соответствующих сегментов памяти.
Все сегментые регистры 16 разрядные.
SS - содержит базовый адрес текущего сегмента стека.
CS - содержит базовый адрес текущего кодового сегмента.
DS - сегмент данных по умолчанию.
ES, FS, GS - дополнительные регистры, служат для дополнительной адресации сегмента данных
5 Используемые команды
5.1 Команды пересылки и загрузки
мov приёмник, источник – пересылка байта или слова из источника (непосредственное значение, РОН, сегмент или переменная) в приёмник (РОН, сегмент, кроме СS или переменная). Содержимое источника при этом не изменяется.
lea приёмник, источник - получение эффективного адреса (смещения) источника. В качестве источника используется имя переменной, а в качестве приёмника – РОН.
рush источник - занести содержимое источника в стек. Выполняет декремент указателя стека, затем заносит содержимое источника на вершину стека, куда указывает SP. В качестве источника могут выступать РОН, сегмент, непосредственное значение или переменная.
рор приёмник – извлечение данных из стека. Пересылает байт, слово или двойное слово из текущей вершины стека по адресу приемника (РОН, сегмент, кроме СS, переменная), увеличивая при этом р-р SP на размер приёмника в байтах.
5.2 Арифметические команды
В программе используются некоторые арифметические команды, с помощью которых проводятся вычисления. К арифметическим командам относят следующие:
- add приемник, источник
- sub приемник, источник
- mul источник
- div источник
- inc приемник
- dec приёмник
- neg приемник
Рассмотрим подробнее каждую из них.
5.2.1 Сложение
Схема команды: add приемник,источник
Назначение: сложение двух операндов источник и приемник размерностью в байт, слово или двойное слово.
Алгоритм работы:
- сложить операнды источник и приемник;
- записать результат сложения в приемник;
- установить флаги.
Применение:
Команда add используется для сложения двух целочисленных операндов. Результат сложения помещается по адресу первого операнда. Если результат сложения выходит за границы операнда приемник (возникает переполнение), то учесть эту ситуацию следует путем анализа флага cf и последующего возможного применения команды adc.
Команда сложения с переносом ADC - это та же команда ADD, за исключением того, что в сумму включается флаг переноса. Для любой
формы команды ADD существует сравнимая с ней команда ADC.
Обе команды сложения, как ADD, так и ADC, устанавливают равным 1 флаг переноса, если произошел перенос из старшего разряда результата. Команда ADD складывает два операнда, не обращая внимания на флаг переноса, а команда ADC учитывает и флаг переноса. Если флаг переноса равен 0, результат равен результату выполнения команды ADD. Если же флаг переноса равен 1, то результат на 1 больше результата команды ADD. Таким образом, программа может использовать флаг переноса для операций повышенной точности.