Операторы в Assembler
Далее будут описаны операторы ассемблера, их параметры и "минимальная" архитектура процессора, поддерживающая данную операцию. Так же будут приведены примеры использования операторов в ассемблере.
ADD
Предназначен для сложения двух чисел
Оператор |
Перевод |
Назначение |
Процессор |
ADD приемник, источник |
ADDition - сложение |
Сложение |
8086 |
Пример:
add al,15h ; присвоим регистру al число 15h
CALL
Предназначен для вызова подпрограммы
Оператор |
Перевод |
Назначение |
Процессор |
CALL метка |
call - вызов |
Вызов подпрограммы |
8086 |
Пример:
call Wait_key ; вызываем подпрограмму
DEC
Предназначен для уменьшения регистра на 1
Оператор |
Перевод |
Назначение |
Процессор |
DEC приемник |
DECrement - декремент |
Уменьшение на 1 |
8086 |
Команда DEC уменьшает
на единицу регистр.
Пример:
mov al,15 ; присвоим регистру al число 15h
dec al ; теперь AL = 14
INC
Предназначен для увеличения регистра процессора на 1
Оператор |
Перевод |
Назначение |
Процессор |
INC приемник |
INCrement - инкремент |
Увеличение на единицу |
8086 |
Команда INC
увеличивает на единицу регистр. Она эквивалентна команде: ADD источник, 1
только выполняется быстрее на старых компьютерах (до 80486) и занимает меньше
байт.
Пример:
mov al,15 ; присвоим регистру al число 15h
inc al ; теперь AL = 16
INT
Предназначен для вызова прерывания
Оператор |
Перевод |
Назначение |
Процессор |
INT приемник |
INT |
Вызов прерывания |
8086 |
Оператор INT вызывает
прерывание
Пример:
mov ah,10h
int 16h ; вызываем прерывание
JMP
Предназначен для перехода на указанную метку
Оператор |
Перевод |
Назначение |
Процессор |
JMP метка |
jump - прыжок |
Безусловный переход |
8086 |
Команда jmp просто переходит
на указанную метку в программе.
Пример использования оператора jmp в ассемблере:
(1) mov ah,9
(2) mov dx,offset Str
(3) int 21h
(4) jmp Label_2 ; переходим на строку 7
(5) add cx,12 ; строка 5 и 6 работать не будут!
(6) dec cx
(7) Label_2:
(8) int 20h
LOOP
Предназначен для организации циклов
Оператор |
Перевод |
Назначение |
Процессор |
LOOP метка |
Loop - петля |
Организация циклов |
8086 |
Количество повторов задается
в регистре CX (счетчик).
Пример использования операторов ассемблера:
mov cx,3 ; число повторов
Label_1: ; создаем метку
mov ah,9
mov dx,offset Str
int 21h
loop Label_1 ; если не 0, то снова переходим на метку
MOV
Оператор MOV предназначен для загрузки числа в регистр
Оператор |
Перевод |
Назначение |
Процессор |
MOV приемник, источник |
MOVe - движение |
Присваивание |
8086 |
Пример:
mov al,35h ; присвоим регистру al число 35h
mov ax,35 ; присвоим регистру ax число 35
ORG
Определяет, с какого места отсчитывать смещение
Оператор |
Перевод |
Назначение |
Процессор |
ORG приемник |
ORG - |
Отсчитывание смещения |
8086 |
Пример:
org 100h ; отсчитываем смещение отсюда
POP
Достает число из стека
Оператор |
Перевод |
Назначение |
Процессор |
POP приемник |
pop - вытолкнуть |
Достать из стека число |
8086 |
Пример:
mov ax,345h
push ax
mov ah,10h
int 16h
pop ax
PUSH
Помещает число в стек
Оператор |
Перевод |
Назначение |
Процессор |
PUSH приемник |
push - втолкнуть |
Поместить в стек число |
8086 |
Пример:
mov ax,345h
push ax
SUB
Предназначен для загрузки числа в регистр
Оператор |
Перевод |
Назначение |
Процессор |
SUB приемник, источник |
SUBtraction - вычитание |
Вычитание |
8086 |
Пример:
sub al,7h ; вычитаем из регистра al число 7h
В данной статье приведены лишь базовые операторы языка Ассемблер, после будут добавлены и расширенные команды.