ОБЗОР ПРИЕМОВ ПРОГРАММИРОВАНИЯ НА АССЕМБЛЕРЕ

1.1. Программирование арифметических выражений.

Программа на языке Ассемблер состоит из операторов (команд) . Каждый оператор занимает одну строку. Общий вид оператора:

<оператор> <операнд1>,<операнд2>

Некоторые операторы могут содержать только один из операндов.

Пример наиболее часто встречающейся команды:

Mov ax,x

Команда копирует содержимое переменной (операнда) x в регистр процессора ax. Соответствует команде в языке Паскаль:

Ax:=x;

Операторы языка Ассемблер не допускают использования двух переменных в качестве операндов для команды, т. е. команда

mov x,y { в Паскале x:=y}

где x и y – переменные, недопустима. Следует писать:

Mov ax,x

Mov y,ax

В данном курсе рассмотрена арифметика для целых двоичных чисел. В табл. 1 представлены основные команды для выполнения арифметических операции, а в табл. 2 — дополни тельные .

Таблица 1 Двоичная арифметика.

 

Обозначения, используемые в таблице :

on 1, on 2, on — операнды, т.е. содержимое, стоящее по первому (оп 1), вто­рому (оп 2) адресам или единственный операнд (on); al, ah, ax, dx, eax, edx — регистры, при­чем eax, edx допустимы только для процессоров 80386 и выше.

Как видно из табл. 1, в командах умножения и деления задается один операнд, второй сомножитель или делимое в фиксированных регистрах. Ко­манда умножения возвращает результат в два раза длиннее сомножителей, команда деления требует, чтобы делимое было в два раза длиннее делителя. Ре­зультатом выполнения команды деления являются частное (регистр, запи­санный первым в таблице) и остаток (регистр, запи­санный вторым).

Если перед кодом стоит буква i(imul, idiv, i-integer-целый), операции выполняются с учетом знаков исходных данных, в противном случае — без­знаковые операции.

ПРИМЕР: Вычислить значение выражения x=y+(z-u*v)/w, если исход­ные данные занимают одно слово.



php"; ?>