Команды двоичной арифметики, синтаксис команд
Программирование арифметических выражений в языке Ассемблер происходит через некоторые команды такие, как: mul, div, sub, add. Эти команды называются командами арифметических операций. Add – команда сложения. Слаживает два числа. Результат заносится в первый регистр. Adc – сложение с переносом XAdd – обменять между собой и сложить Синтаксис: Add приемник, источник Sub – команда вычитания. Вычитает два числа. Результат заносится в первый регистр. Sbb – вычитание с займом Синтаксис: Sub приемник, источник Mul – команда умножения без учета знака. Она умножает регистр ax на то, что стоит после нее. IMul – умножение со знаком Синтаксис: MUL источник Div – команда деления без учета знака. Она делит регистр ax на то, что стоит после нее.. IDiv - деление со знаком Синтаксис: inc - вызывают инкременты. Увеличивает на 1. dec - декремент, уменьшает на 1 Синтаксис: INC приемник NEG - Изменение знака Синтаксис: NEG приемник CMP - Сравнение Синтаксис: CMP приемник, источник Команды логических операций, синтаксис команд. Эти команды, точно так же, как и арифметические команды, преобразуют данные, но делают это не арифметически. Логические команды работают со значениями 0 и 1, которые использует ЭВМ. Четырьмя основными логическими командами являются AND (и), OR (или), XOR (исключающее или), NOT (не). Эти четыре команды работают непосредственно с нулями и единицами двоичного кода. Простейшая функция выполняется командой NOT. Эта команда основывается на определении единицы и нуля, как истины (TRUE) и лжи (FALSE) соответственно. Действие логических команд:
Синтаксис: NOT <операнд> (логическое умножение) AND <операнд1>, <операнд2> (логическое сложение) OR <операнд1>, <операнд2> (выполняет сложение по модулю 2 ) XOR <операнд1>, <операнд2>
Сдвиговые операции:
Общий вид строк программ на языке ассемблера. Строка имеет следующий синтаксический вид: метка команда/директива операнд(ы) ;комментарии Все поля не обязательны. Метка может быть любой комбинацией английских букв и символов. Второе поле содержит команды процессора, транспортируемые в исполняемый код или директиву управляющую работой ассемблера. Если команду или директиву необходимо продолжить на следующей строке, то используется символ обратный слеш: \. По умолчанию язык ассемблера не различает заглавные и строчные буквы в написании команд или директив.
Метка: назначение, синтаксис, правила именования, директива метки, вызов метки Метка в языке ассемблера может содержать следующие символы: · все буквы латинского алфавита; · цифры от 0 до 9; · спецсимволы: _, @, $, ?. В качестве первого символа метки может использоваться точка, но некоторые компиляторы не рекомендуют применять этот знак. В качестве меток нельзя использовать зарезервированные имена Ассемблера (директивы, операторы, имена команд). Первым символом в метке должна быть буква или спецсимвол (но не цифра). Максимальная длина метки – 31 символ. Все метки, которые записываются в строке, не содержащей директиву ассемблера, должны заканчиваться двоеточием :. Когда метка стоит перед директивой ассемблера, она оказывается операндом этой директивы. Директивы, работающие напрямую с метками: LABEL, EQU и =. Директива LABEL определяет метку и задает ее тип. Тип может быть одним из: · BYTE (байт), · WORD (слово), · DWORD (двойное слово), · FWORD (6 байт), · QWORD (учетверенное слово), · TBYTE (10 байт), · NEAR (ближняя метка), · FAR (дальняя метка).
Метка получает значение, равное адресу следующей команды или следующих данных, и тип, указанный явно. В зависимости от типа команда mov метка,0 запишет в память байт , заполненный нулями, а команда call метка выполнит ближний или дальний вызов подпрограммы. Директива EQU присваивает метке значение, которое определяется как результат целочисленного выражения в правой части. Метка = выражение
Специальные предопределенные метки: · @date или ??date - это может быть текущая дата · @cpu - тип процессора · $ - текущий адрес
Псевдокоманды Псевдокоманда— это директива ассемблера, которая приводит к включению данных или кода в программу, хотя сама она никакой команде процессора не соответствует. Псевдокоманды определения переменных указывают ассемблеру, что в соответствующем месте программы располагается переменная, определяют тип переменной (байт, слово, вещественное число и т.д.), задают ее начальное значение и ставят в соответствие переменной метку, которая будет использоваться для обращения к этим данным. Псевдокоманды определения данных записываются в общем виде следующим образом:
имя_переменной d* значение где D* — одна из нижеприведенных псевдокоманд: DB — определить байт; DW — определить слово (2 байта); DD — определить двойное слово (4 байта); DF — определить 6 байт (адрес в формате 16-битный селектор: 32-битное смещение); DQ — определить учетверенное слово (8 байт); DT — определить 10 байт (80-битные типы данных, используемые FPU).
Поле значения может содержать одно или несколько чисел, строк символо, операторов ? и DUP, разделенных запятыми. Например: text_string db 'Hello world!' number dw 7
Если вместо точного значения указан знак ?, переменная считается неинициализированной и ее значение на момент запуска программы может оказаться любым. Если нужно заполнить участок памяти повторяющимися данными, используется специальный оператор DUP.
Популярное: Генезис конфликтологии как науки в древней Греции: Для уяснения предыстории конфликтологии существенное значение имеет обращение к античной... Почему человек чувствует себя несчастным?: Для начала определим, что такое несчастье. Несчастьем мы будем считать психологическое состояние... Как распознать напряжение: Говоря о мышечном напряжении, мы в первую очередь имеем в виду мускулы, прикрепленные к костям ... ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (1087)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |