Программирование на Ассемблере

       

Характеристика языков ассемблерного типа


Для упрощения распределения памяти и запоминания кодов команд вместо машинных кодов используются их обозначения, а вместо конкретных адресов – символические адреса. Символические коды  для основных операций заданы в табл. 4.1

Таблица 4.1 Мнемонические коды арифметических команд

Код

Обозначение

01 (+)

ADD



02 (-)

SUB

03 (*)

MUL

04 (/)

DIV

Пусть данные занимают ячейки

D + 0 : X    D + 1:  Y    D + 2 : Z     D + 3 : U    D + 4 : V   

D + 5 : W   

Пусть программа занимает ячейки P + 0, P + 1, …

Пусть в качестве ячеек для промежуточных данных используются R + 0, R + 1, …

Текст  программы с учетом принятых обозначений задан в табл. 5.1.

Таблица 5.1. Текст  программы

Адрес

Код

1 данное

2 данное

Результат

Комментарий

P+0

ADD

D+0

D+1

R+0

X + Y ®R+0

P+1

SUB

R+0

D+2

R+1

X+Y-Z®R+1

P+2

MUL

R+1

D+3

R+1

(X+Y-Z)*U®R+1

P+3

ADD

R+!

D+4

R+1

(X+Y-Z)*U + V®R+1

P+4

DIV

R+1

R+0

D+5

Результат

Пусть   D= 0. В этом случае программа начинается с ячейки после D + 5, т.е. с ячейки 6. (P = 6). Промежуточные данные можно располагать, начиная с  P + 5,  т.е. R = 11.  Преобразование кодов и адресов в машинные коды и адреса выполняется специальной программой.

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

Ассемблер – язык, для которого одна команда преобразуется в одну команду машинного языка. Исключением являются   макросы, в этом случае одной макрокоманде может соответствовать более одной машинной команды.

Для современных компиляторов вместо относительных адресов можно использовать обозначение переменных, например  ADD X, Y, R. Для вычисления адреса можно использовать более сложные выражения



Содержание раздела