Машинно-ориентированные языки (Автокод — Ассемблер)



Программа-переводчик, которая автоматически распределя­ет память, распознает мнемо­ни­чес­кие обозначения команд и в конечном итоге получает готовую к исполнению программу на машин­ном языке, называется Ассемблер (Автокод).

Язык ассемблера естественным образом связан с ЯМК ма­шины и поэтому называется машинно-ориен­тированным. В ка­честве примера рассмотрим Ассемблер СМ «Малютка»и Авто­код УК «Ней­ман».

Пример  (программа с линейной структурой).

Вычислить выражение a = b c – d e.

Решение.

Программа на Ассемблере СМ «Малютка».

A: ds 1;     — резервируем в памяти одну ячейку под переменную а;

В: dw 8; — резервируем в памяти ячейку под переменную b и заносим туда некоторое зна­че­ние

(например, число 8);

С: dw 10;  — аналогично с;

D: dw 7;    — аналогично d;

Е: dw 5;    — аналогично е;

ENT;          — начало программы;

LDA (В);   — загрузили В в сумматор (команда 0);

MULT (С); — умножили содержимое сумматора на С (команда В);

STA (А);    — сохранили содержимое сумматора в А (1);

LDA (D);   — загрузили D в сумматор (0);

MULT (Е); — умножили содержимое сумматора на С (В);

NEG;         — сменили знак содержимого сумматора (300);

ADD (A);   — сложили содержимое сумматора со значением из А (А);

STA (А);    — сохранили содержимое сумматора в А (1);

IPRT;         — печать содержимого сумматора (С00);

HLT;          — останов машины (F00).

Программа на Автокоде УК «Нейман».

INPUT В   — ввод b;

INPUT С   — ввод с;

INPUT D   — ввод d;

INPUT E   — ввод е;

MUL B,C,A — a: = b x c;

MUL D,E,R — r: = d x e;

SUB A,R,A — a: = a – r;

OUTPUT A — вывод а;

STOP        — останов машины.

Пример (программа с циклом). Вычислить f = n!

Решениe.

Программа на Ассемблере СМ «Малютка».

F: ds 1;      — резервируем в памяти одну ячейку под пере­менную f;

N: dw 9;    — резервируем в памяти ячейку под перемен­ную n и заносим туда некоторое зна­че­ние

                   (например, число 9);

ONE: dw 1; — резервируем в памяти ячейку под константу 1;

NONE: dw-1;       — резервируем в памяти ячейку под константу -1;

ENT;          — начало программы;

LDA (ONE); — загрузили константу 1 в сумматор (команда 0)

STA (F);                — сохранили содержимое сумматора в F (ко­манда 1);

M1: LDA (F);        — загрузили F в сумматор (0);

MULT (N); — умножили содержимое сумматора на N (В);

STA (F);                — сохранили содержимое сумматора в F (ко­манда 1);

LDA (N);               — загрузили N в сумматор (0);

ADD (NONE);     — сложили содержимое сумматора с констан­той -1 (А);

STA (N);               — сохранили содержимое сумматора в N (1);

JNP M2;               — передаем управление на метку М2, если содер­жимое сумматора 0 (D);

JMP Ml;           — передаем управление на метку M1 (4);

М2: LDA (F);     — загрузили F в сумматор (0);

IPRT;               — вывод содержимого сумматора (С00);

HLT;           — останов машины.

Программа на Автокоде УК «Нейман».

INPUT N  — ввод n;

MOV<1>,F       — f: = l;

LI: MUL F,N,F — f: = f x n;

SUB N,<1>,N      — n: = n – 1;

IFGO L1          — передача управления на метку L1, если n > 0;

OUTPUT F      — вывод f;

STOP               — останов машины.

9.3. Задание на лабораторную работу

Задания распределяются в зависимости от выданного преподавателем mn-кода. Если m — число нечетное, то ваш вариант 1, если четное — вариант 2.

 

Задание 1.Какова оптимальная длина кода операций (в битах) для компьютера, система ма­шин­ных команд ко­­торого состоит из:


Вариант 1

1)  10 команд;

2)  80 команд?

Вариант 2

1)  20 команд;

2)  80 команд?


 

Задание 2.Какое максимальное количество машинных команд может содержать система команд ком­пьютера, если длина поля кода операции в формате его машинных команд составляет:


Вариант 1

1) 3 бита;

2) 6 бит?

Вариант 2

1) 4 бита;

2) 1 байт?


 

Задание 3.Каков размер адресуемой памяти компьютера (в ячейках), если длина адресного поля рав­на:


Вариант 1

1) 6 бит;

2) 1 байт?

Вариант 2

1) 12 бит;

2) 2 байта?


 

Задание 4. Какова длина адресного поля компьютера (в битах), если раз­мер его адресуемой памяти сос­­тав­ля­ет:


Вариант 1

1) 8 ячеек;

2) 64 ячейки?

Вариант 2

1)  256 ячеек;

2)  4096 ячеек?

 


Задание 5.Какова длина машинной команды компьютера (в битах), если длина поля кода опера­ций 4 бита и…


Вариант 1

1) …длина адресной части 6 бит, процессор — двух­адресный;

2) …размер адресуемой памяти 256 ячеек, про­цес­сор — одноад­ресный?

Вариант 2

1) …длина адресной части 1 байт, процессор — одно­адресный;

2) …размер адресуемой памяти 16 ячеек, про­цес­сор — трехадресный?


Задание 6.Какова длина машинной команды (в битах), если размер адре­суемой памяти составляет 1024 ячей­ки и…


Вариант 1

1) …процессор — двухадресный, число ма­шин­ных команд в сис­теме команд не может пре­вы­шать 50;

Вариант 2

1) …процессор — одноадресный, число ма­шин­ных команд в сис­теме команд не может пре­вы­шать 16?


 

Задание 7.Длина машинной команды составляет 2 байта, размер

поля кода операций — 4 бита, оп­ре­делить:


Вариант 1

1) размер адресуемой памяти, если процессор двух­адресный;

2) количество адресов в команде, если длина ад­ресного поля составляет 6 битов.

 

Вариант 2

1) количество адресов в команде, если размер ад­ресуемой па­мяти 16 ячеек;

2) размер адресуемой памяти, если процессор трехадресный;


Дата добавления: 2018-04-15; просмотров: 1406; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!