ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 07.11.2023
Просмотров: 57
Скачиваний: 2
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Лабораторное задание 1 Тема : Изучение команд пересылки данныхВариант 6 Задание 1Содержимое регистра флагов поместите в переменную x:integerProgram hh; //23.pas// Лабораторное задание 1// изучение команд пересылки { $ ASMMODE Intel} // подключение ассемблера var x:integer;// целочисленная переменная хbeginasm // указано ключевое слово определяющее блок команд ассемблераxor bx,bx // обнуляем значение регистра bxxor ax,ax // обнуляем значение регистра axmov al,2// ax=0002mov bl,1// bx=0001add al,bl//ax=0003pushf // al=0002pop x //извлечь из стека в переменную хend;writeln (‘x=’,x);end.P=1 флаг четности, он устанавливается если младший байт результата имеет четное число ненулевых разрядов. ( в данном случае 2 )В данном случае p=1.Пример операции сложения двух чиселСложение двух чисел 01111111(127)00000001 10000000 (-128) 7 разрядов переполнились и был задействован знаковый разряд Sf (знака)- s=1, когда старший бит результата равен 1. Иными словами S=0 для положительных чисел, и S=1 для отрицательных чисел.Команды пересылки данныхКоманды пересылки данных осуществляют обмен данными или адресами между регистрами МП и ячейками памяти или портами ввода/вывода. Их можно разделить на следующие подгруппы:1) команды пересылки общего назначения;2) команды загрузки адресных значений;3) команды обращения к стеку;4) команды пересылки флагов;5) команды ввода/вывода.Команды пересылки общего назначенияК этой подгруппе относятся команды MOV, XCHG и XLAT.Команда MOV является основной командой пересылки общего назначения. Она имеет следующий формат:MOV приемник, источники осуществляет пересылку байта или слова данных из источника в приемник. В качестве приемника и источника данных могут использоваться регистры МП или ячейки памяти. Кроме того, источник может быть и непосредственным значением.
В команде MOV допустимо большинство из возможных сочетаний операндов.Пример 3.43:MOV AX, Table ; Пересылка из памяти в регистрMOV Table, AX ; и наоборотMOV ES:[BX],DX ; Пересылка из регистра в памятьMOV DS,AX ; Пересылка между 16-битнымиMOV BL,AL ; или 8-битными регистрамиMOV CL,30 ; Пересылка константы в регистрMOV [BX+SI],25h ; или в памятьНекоторые из сочетаний операндов в команде MOV недопустимы.1. Нельзя переслать данные из одной ячейки памяти в другую. При необходимости они пересылаются через промежуточный регистр.Пример 3.44:MOV Alpha,[BX] ; Ошибка - обращение типа; "память" - "память"MOV AX,[BX] ; Пересылка данных из ячейки,MOV Alpha,AX ; адресуемой BX, в ячейку Alpha2. Нельзя загрузить непосредственный операнд в сегментный регистр. При необходимости эта загрузка осуществляется через промежуточный регистр.Пример 3.45:MOV DS,0ABCDh ; Ошибка - загрузка константы; в регистр DSMOV AX,0ABCDh ; Загрузка константыMOV DS,AX ; в регистр DS3. Нельзя переслать данные между сегментными регистрами. При необходимости такая пересылка осуществляется через промежуточный регистр.Пример 3.46:MOV ES,DS ; Ошибка - пересылка между; сегментными регистрамиMOV AX,ES ; Пересылка между сегментнымиMOV DS,AX ; регистрами (из ES в DS)4. В качестве приемника данных не может использоваться регистр CS, так как его изменение эквивалентно передаче управления, что не является пересылкой данных.Команда обмена XCHG имеет формат:Xchg приемник, источники осуществляет обмен байтами или словами данных между источником и приемником. В качестве источника и приемника данных могут использоваться регистры МП, либо регистр и ячейка памяти.
В команде MOV допустимо большинство из возможных сочетаний операндов.Пример 3.43:MOV AX, Table ; Пересылка из памяти в регистрMOV Table, AX ; и наоборотMOV ES:[BX],DX ; Пересылка из регистра в памятьMOV DS,AX ; Пересылка между 16-битнымиMOV BL,AL ; или 8-битными регистрамиMOV CL,30 ; Пересылка константы в регистрMOV [BX+SI],25h ; или в памятьНекоторые из сочетаний операндов в команде MOV недопустимы.1. Нельзя переслать данные из одной ячейки памяти в другую. При необходимости они пересылаются через промежуточный регистр.Пример 3.44:MOV Alpha,[BX] ; Ошибка - обращение типа; "память" - "память"MOV AX,[BX] ; Пересылка данных из ячейки,MOV Alpha,AX ; адресуемой BX, в ячейку Alpha2. Нельзя загрузить непосредственный операнд в сегментный регистр. При необходимости эта загрузка осуществляется через промежуточный регистр.Пример 3.45:MOV DS,0ABCDh ; Ошибка - загрузка константы; в регистр DSMOV AX,0ABCDh ; Загрузка константыMOV DS,AX ; в регистр DS3. Нельзя переслать данные между сегментными регистрами. При необходимости такая пересылка осуществляется через промежуточный регистр.Пример 3.46:MOV ES,DS ; Ошибка - пересылка между; сегментными регистрамиMOV AX,ES ; Пересылка между сегментнымиMOV DS,AX ; регистрами (из ES в DS)4. В качестве приемника данных не может использоваться регистр CS, так как его изменение эквивалентно передаче управления, что не является пересылкой данных.Команда обмена XCHG имеет формат:Xchg приемник, источники осуществляет обмен байтами или словами данных между источником и приемником. В качестве источника и приемника данных могут использоваться регистры МП, либо регистр и ячейка памяти.