Вторник, 19.03.2024, 05:24
Приветствую Вас, Гость |
Меню сайта
Наш опрос
Нужен ли форум на этом сайте?
Всего ответов: 1296
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Операторы  в 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


В данной статье приведены лишь базовые операторы языка Ассемблер, после будут добавлены и расширенные команды. 



Форма входа
Поиск
Мы в сети
Реклама
Для того чтобы не видеть рекламу в правом верхнем углу сайта пройдите простую процедуру регистрации
ФОРУМ
У нас наконецто появился форум! Добро пожаловать! Будьте первыми, задайте направление форуму! =)
--- Не стесняемся - заходим на форум! ---