Assembler, Детальна інформація

Assembler
Тип документу: Реферат
Сторінок: 15
Предмет: Комп`ютерні науки
Автор:
Розмір: 66.8
Скачувань: 2495
m1: :

В этом примере если значение tab_size больше или равно 50, то результат в al равен 0ffh, а если tab_size меньше 50, то al равно 00h. Команда cmp сравнивает значение al с нулем и устанавливает соответствующие флаги в flags/eflags. Команда je на основе анализа этих флагов передает или не передает управление на метку m1.



Рис. 7. Синтаксис операторов сравнения

Таблица 1. Операторы сравнения

Оператор Значение

eq ИСТИНА, если выражение_1 равно выражение_2

ne ИСТИНА, если выражение_1 не равно выражение_2

lt ИСТИНА, если выражение_1 меньше выражение_2>ИСТИНА, если выражение_1 не равно выражение_2

le ИСТИНА, если выражение_1 меньше или равно выражение_2

gt ИСТИНА, если выражение_1 больше выражение_2

ge ИСТИНА, если выражение_1 больше или равно выражение_2

Логические операторы выполняют над выражениями побитовые операции (рис. 8). Выражения должны быть абсолютными, то есть такими, численное значение которых может быть вычислено транслятором. Например:

      

flags   equ     10010011

         mov    al,flags xor 01h        ;al=10010010;пересылка в al поля flags с

                                        ;инвертированным пр

авым битом





Рис. 8. Синтаксис логических операторов

Индексный оператор [ ]. Не удивляйтесь, но скобки тоже являются оператором, и транслятор их наличие воспринимает как указание сложить значение выражение_1 за этими скобками с выражение_2, заключенным в скобки (рис. 9). Например,



Рис. 9. Синтаксис индексного оператора

Заметим, что в литературе по ассемблеру принято следующее обозначение: когда в тексте речь идет о содержимом регистра, то его название берут в круглые скобки. Мы также будем придерживаться этого обозначения.

К примеру, в нашем случае запись в комментариях последнего фрагмента программы mas + (si) означает вычисление следующего выражения: значение смещения символического имени mas плюс содержимое регистра si.

Оператор переопределения типа ptr применяется для переопределения или уточнения типа метки или переменной, определяемых выражением (рис. 10).

Тип может принимать одно из следующих значений: byte, word, dword, qword, tbyte, near, far. Например,

d_wrd   dd      0

...

The online video editor trusted by teams to make professional video in minutes