5. Ознакомление с системой команд
Выбор группы команд определённого типа
Открыть меню команды
Выбрать тип команд. Выбранный тип команд будет выделен в таблице.
Кнопкой ОК завершить работу с системой команд.
Определение машинного кода команды по таблице
Выбрать нужную команду на таблице.
Цифра соответствующая строке команды является первым полубайтом машинного кода.
Цифра соответствующая столбцу команды является вторым полубайтом машинного кода.
Получение кратких сведений о команде
Выбрать нужную команду на таблице.
Дважды кликнуть указателем мыши по интересующей команде.
В появившемся окне получить информацию.
Кнопкой Понял! закрыть окно.
Рис. 3 Система команд
Рис. 4 Пример информации о команде: Команда NOP
6. Команды
1. Команда LDA addr
LDA addr (load direct) - загрузить аккумулятор с прямой адресацией.
2. Команда MOV r1, r2
MOV r1, r2 (move register) -передать с регистра на регистр.
3. Команда ADD r
ADD r (add register)- сложить с регистром.
4. Команда STA r
STA addr (store A direct) - запомнить содержимое аккумулятора.
5. Команда RST n
RST n (restart) – повторный пуск
6. Команда SUB r
SUB r (subtract register) – вычесть содержимое регистра
7. Команда ADI data 8
ADI data (add immediate) – сложить с непосредственным операндом
8. Команда SUI data 8
SUI data (subtract immediate) – вычесть непосредственный операнд
9. Команда HLT
HLT (halt) - стоп
7. Задание и исходные данные
Вычислить (M-N)+K.
Переменная |
Данные |
Адрес |
M N K |
7910 3210 2510
|
00A1 00A0 00A2 |
8. Расчеты контрольных сумм
Переводим заданные числа и адреса из десятичной системы счисления в шестнадцатеричную систему счислению.
Данные:
7910 = 4F16 10 –> 16 79:16=4(F) |
3210 = 2016 10 –> 16 32:16=2(0) |
2510 = 1916 10 –> 16 25:16=1(9) |
(7910 -3210) + 2510 = 7210 = 4816 10 –> 16 72:16=4(8) |
9. Расчеты контрольных сумм c помощью ЭВМ
I. Прямая адресация
При этом способе адресации, каждая команда содержит полный адрес той ячейки памяти, где находятся используемые данные. Для представления команды с прямой адресацией требуется три байта. Первый байт содержит код операции, второй - младший байт адреса, третий — старший байт адреса.
Мнемокод |
Комментарии |
LDA 00A0 MOV B,A LDA 00A1 SUB B MOV B,A LDA 00A2 ADD B STA 00A3 HLT |
Получить число из ячейки с адресом 00A0 Перенести из регистра А в регистр В Получить число из ячейки с адресом 00A1 Вычесть число в регистре В из числа в регистре А Перенести из регистра А в регистр В Получить число из ячейки с адресом 00A2 Сложить регистр А с регистром В Запомнить содержимое аккумулятора в ячейке 003A Прервать выполнение программы |
Адрес |
Число |
Комментарии |
0000 |
3A |
Код команды |
0001 |
A0 |
Младший байт адреса |
0002 |
00 |
Старший байт адреса |
0003 |
47 |
Код команды |
0004 |
3A |
Код команды |
0005 |
A1 |
Младший байт адреса |
0006 |
00 |
Старший байт адреса |
0007 |
90 |
Код команды |
0008 |
47 |
Код команды |
0009 |
3A |
Код команды |
000A |
A2 |
Младший байт адреса |
000B |
00 |
Старший байт адреса |
000C |
80 |
Код команды |
000D |
32 |
Код команды |
000E |
A3 |
Младший байт адреса |
000F |
00 |
Старший байт адреса |
0010 |
76 |
Код команды |
Рис. 5 Программа с введенным кодом
Рис. 6 Программа с введенными данными
Рис. 7 Программа после выполнения кода
II. Непосредственная адресация
При данном способе адресации, реальные данные помещаются непосредственно в саму команду. Элемент данных может иметь длину, равную 8 или 16 бит. В первом случае команда имеет двухбайтовый формат, во втором - трёхбайтовый.
Мнемокод |
Комментарии |
ADI 4F SUI 20
ADI 19
HLT |
Содержимое регистра А суммируется с 4F От содержимого регистра А отнимается 20 и помещается в регистр А Содержимое регистра А складывается с 19 и помещается в регистр А Прерывает выполнение команды |
Адрес |
Число |
Комментарии |
0000 |
C6 |
Код команды |
0001 |
4F |
Второй байт команды |
0002 |
D6 |
Код команды |
0003 |
20 |
Второй байт команды |
0004 |
C6 |
Код команды |
0005 |
19 |
Второй байт команды |
0006 |
76 |
Код команды |
Рис. 8 Программа с введенным кодом
Рис. 9 Программа после выполнения кода
III. Косвенная адресация
В этом случае адрес ячейки памяти, где находятся используемые данные, задается содержимым регистровой пары. В командах, использующих данный способ адресации, нет необходимости в двух дополнительных байтах. Таким образом, экономится память ЭВМ, увеличивается и скорость выполнения команды, так как не затрачивается время на считывание из памяти дополнительных байтов. Адреса регистров приведены в таблице 2.
Таблица 2
Регистр |
В |
C |
D |
Е |
H |
L |
M |
А |
Адрес регистра, используемого в командах |
000 |
001 |
010 |
011 |
100 |
101 |
110 |
111 |
Под М понимается ячейка оперативной памяти, адресом которой служит содержимое пары регистров - HL .
Мнемокод |
Комментарии |
LDAX B
MOV D,A MOV A,C ADD L MOV C,A LDAX B
SUB D MOV D,A MOV A,C ADD L MOV C,A LDAX B
ADD D HLT
|
Загрузка А с косвенной адресацией из ячейки 00A0(пара регистров В и С) Перенести из регистра А в регистр D Перенести из регистра С в регистр А Сложить регистр А с регистром L Перенести из регистра A в регистр C Загрузка А с косвенной адресацией 00A1 (пара регистров В и С) Вычесть из регистра А регистр D Перенести из регистра A в регистр D Перенести из регистра С в регистр A Сложить регистр А с регистром L Перенести из регистра A в регистр C Загрузка А с косвенной адресацией 00A2 (пара регистров В и С) Сложить регистр А с регистром D Стоп |
Адрес |
Число |
Комментарии |
0000 |
0A |
Код команды |
0001 |
57 |
Код команды |
0002 |
79 |
Код команды |
0003 |
85 |
Код команды |
0004 |
4F |
Код команды |
0005 |
0A |
Код команды |
0006 |
92 |
Код команды |
0007 |
57 |
Код команды |
0008 |
79 |
Код команды |
0009 |
85 |
Код команды |
000A |
4F |
Код команды |
000B |
0A |
Код команды |
000C |
83 |
Код команды |
000D |
76 |
Код команды |
Рис.10 Программа с введенным кодом
Рис.10 Программа с введенными данными
Рис.11 Программа после выполнения кода
