Машинно-ориентированные языки (Автокод — Ассемблер)
Программа-переводчик, которая автоматически распределяет память, распознает мнемонические обозначения команд и в конечном итоге получает готовую к исполнению программу на машинном языке, называется Ассемблер (Автокод).
Язык ассемблера естественным образом связан с ЯМК машины и поэтому называется машинно-ориентированным. В качестве примера рассмотрим Ассемблер СМ «Малютка»и Автокод УК «Нейман».
Пример (программа с линейной структурой).
Вычислить выражение 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; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!