Пример выполнения задания.

 

1. Рассмотрим команду MOV A, D

а)Команда MOV A, D относится к группе команд пересылок

б) Формат команды -1 байт;

в) Структура кода команды – 01 ri rj

г) Выполняемая операция – ri ← (rj)

По этой команде содержимое регистра rj передается в регистр ri.

В команде MOV A, Dв качестве регистра riиспользуется регистр А, а в качестве регистра rj используется регистр D,т.е.содержимое регистра Dпередается в регистр A.

д) Байт B1 является байтом кода операции, и он строится в соответствии со структурой кода команды, т.е. вместо ri. подставляем код регистра A111,а вместо регистра rj подставляем код регистра D010,тогда двоичный код команды равен:

B1 01 111 010 2;

е) Для получения шестнадцатиричного кода восемь разрядов двоичного кода B1 разбиваем на две группы по четыре разряда и каждую группу записываем в виде шестнадцатирричной цифры или буквы.

Шестнадцатиричный код равен:

B1 7A 16

 

2. Рассмотрим команду MVI B, 4A

а)команда MVI B, 4A относится к группе команд пересылок

б) Формат команды -2 байта;

в) Структура кода команды – 00 ri 110

г) Выполняемая операция – ri←<B2>

По этой команде число, записанное во втором байте, записывается в регистр rj .

В команде MVI B, 4A в качестве регистра ri используется регистр В, а 4Aявляется шестнадцатиричным числом, которое помещается в регистр В,т.е. 4A16записывается в регистр В.

д) Байт B1 является байтом кода операции, и он строится в соответствии со структурой кода команды, т.е. в нем вместо ri записывается трехразрядный код регистраВ000.

В байтеВ2 запишем двоичный код шестнадцатиричного числа 4A16.

Для этого каждую цифру и букву шестнадцатиричного числа необходимо записать в виде четырехразрядного двоичного кода , т.е. 4A16= 0100 10102. , тогда двоичный код команды равен:

B1 00 0001102

B2 010010102

е) Шестнадцатиричный код равен:

B1 0616

B2 4A16

 

3. Рассмотрим команду STA F053

а)Команда STA F053 относится к группе команд пересылок

б) Формат команды -3 байта;

в) Структура кода команды – 00K1010

г) Для мнемоники STA код K1=110 и выполняемая операция –

[<B3B2>]← (A).

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

В команде STA F053в качестве номера ячейки используется число F05316 , т.е. содержимое аккумуляторапомещается в ячейку с номером F05316.

д) Байт B1 является байтом кода операции, и он строится в соответствии со структурой кода команды, т.е. в нем вместо K1 записывается трехразрядный код 110.

В байтах B2 и B3 записывается двоичный код шестнадцатиричного числа F053, причем во втором байте B2 записываются младшие разряды шестнадцатиричного числа – 5316., а в третьем байте B3 записываются старшие разряды шестнадцатиричного числа – F016.

Для этого каждую цифру и букву шестнадцатиричного числа необходимо записать в виде четырехразрядного двоичного кода, тогда двоичный код команды равен

B1 00 110 0102

B2 0101 00112

B3 1111 00002

е) Шестнадцатиричный код равен:

B1 3216

B2 5316

B3 F016

 

Практическая работа № 14

Тема: Программирование последовательных участков алгоритмов

Цель работы:Получить практические навыки составления линейных программ в машинных кодах и на языке ассемблера.

 

Задача № 1.Составить фрагмент программы сложения двух чисел, первое число хранится в ячейке с № 123, второе число хранится в ячейке с № 4567, результат поместить в регистр D. Начальный адрес фрагмента программы ячейка с № 89А.

Задача № 1.Составить фрагмент программы сложения двух чисел, первое число хранится в ячейке с № 5678, второе число хранится в регистре Н, результат поместить в регистр D. Начальный адрес фрагмента программы ячейка с № 8035

Задача № 2.Составить фрагмент программы сложения двух чисел, первое число хранится в ячейке с № АВС, второе число хранится в регистре L, результат поместить в ячейку с № 1234. Начальный адрес фрагмента программы ячейка с № CDEF.

Задача № 3.Составить фрагмент программы вычитания двух чисел, первое число хранится в ячейке с № АВ, второе число хранится в регистре С, результат поместить в регистр Н. Начальный адрес фрагмента программы ячейка с № 8156

Задача № 4.Составить фрагмент программы вычитания двух чисел, первое число хранится в ячейке с № 78АВ, второе число хранится в регистре D, результат поместить в ячейку с № 2345. Начальный адрес фрагмента программы ячейка с № 8123.

Задача № 5.Составить фрагмент программы конъюнкции двух чисел, первое число хранится в ячейке с № 567, второе число хранится в регистре L, результат поместить в регистр D. Начальный адрес фрагмента программы ячейка с № 81DF

Задача № 6.Составить фрагмент программы конъюнкции двух чисел, первое число хранится в ячейке с № 56C, второе число хранится в регистре C, результат поместить в ячейку с № 789. Начальный адрес фрагмента программы ячейка с № 82AD.

Задача № 7.Составить фрагмент программы дизъюнкции двух чисел, первое число хранится в ячейке с № 6789, второе число хранится в регистре L, результат поместить в регистр D. Начальный адрес фрагмента программы ячейка с № 81EF

Задача № 8.Составить фрагмент программы дизъюнкции двух чисел, первое число хранится в ячейке с № ABCD, второе число хранится в регистре C, результат поместить в ячейку с № 1EF. Начальный адрес фрагмента программы ячейка с № 800B.

Задача № 9.Составить фрагмент программы сложения двух чисел, первое число хранится в регистре B, второе число хранится в регистре Н, результат поместить в регистр D. Начальный адрес фрагмента программы ячейка с № 1035

Задача № 10.Составить фрагмент программы сложения двух чисел, первое число хранится в регистре C , второе число хранится в регистре L, результат поместить в ячейку с № DE34. Начальный адрес фрагмента программы ячейка с № 12EF.

Задача № 11.Составить фрагмент программы вычитания двух чисел, первое число хранится в регистре B, второе число хранится в регистре С, результат поместить в регистр Н. Начальный адрес фрагмента программы ячейка с № 8DA6

Задача № 12.Составить фрагмент программы вычитания двух чисел, первое число хранится в регистре E, второе число хранится в регистре D, результат поместить в ячейку с № AB45. Начальный адрес фрагмента программы ячейка с № 8179.

Задача № 13.Составить фрагмент программы конъюнкции двух чисел, первое число хранится в регистре H, второе число хранится в регистре D, результат поместить в регистр L. Начальный адрес фрагмента программы ячейка с № 8ABC

Задача № 14.Составить фрагмент программы конъюнкции двух чисел, первое число хранится в регистре L, второе число хранится в регистре B, результат поместить в ячейку с № D67. Начальный адрес фрагмента программы ячейка с № 84AB.

Задача № 15.Составить фрагмент программы дизъюнкции двух чисел, первое число хранится в регистре B, второе число хранится в регистре D, результат поместить в регистр E. Начальный адрес фрагмента программы ячейка с № 81E

Задача № 16.Составить фрагмент программы дизъюнкции двух чисел, первое число хранится в регистре C, второе число хранится в регистре B, результат поместить в ячейку с № 31EF. Начальный адрес фрагмента программы ячейка с № 800C.

Задача № 17.Составить фрагмент программы сложения числа хранящегося в ячейке с № 678, с числом AB16 , результат поместить в регистр D. Начальный адрес фрагмента программы ячейка с № 8035

Задача № 18.Составить фрагмент программы сложения числа хранящегося в ячейке с № DF8, с числом 1216 , результат поместить в ячейку с № 1234. Начальный адрес фрагмента программы ячейка с № CDEF.

Задача № 19.Составить фрагмент программы вычитания числа хранящегося в ячейке с № AB8, с числом 3416 ,, результат поместить в регистр Н. Начальный адрес фрагмента программы ячейка с № 8156

Задача № 20.Составить фрагмент программы вычитания числа хранящегося в ячейке с № F78, с числом A516 ,, результат поместить в ячейку с № 2345. Начальный адрес фрагмента программы ячейка с № 8123.

Задача № 21.Составить фрагмент программы конъюнкции числа хранящегося в ячейке с № ABC, с числом 4B16 ,, результат поместить в регистр L. Начальный адрес фрагмента программы ячейка с № 81DF

Задача № 2.Составить фрагмент программы конъюнкции числа хранящегося в ячейке с № 12F, с числом C616 ,, результат поместить в ячейку с № 789. Начальный адрес фрагмента программы ячейка с № 82AD.

Задача № 23.Составить фрагмент программы дизъюнкции числа хранящегося в ячейке с № 124A, с числом 7D16 ,, результат поместить в регистр B. Начальный адрес фрагмента программы ячейка с № 81EF

Задача № 24.Составить фрагмент программы дизъюнкции числа хранящегося в ячейке с № BC01, с числом EF16 ,, результат поместить в ячейку с № 1EF. Начальный адрес фрагмента программы ячейка с № 800B.

Задача № 25.Составить фрагмент программы сложения числа хранящегося в регистре B, с числом CB16 , результат поместить в регистр D. Начальный адрес фрагмента программы ячейка с № 8A35

Задача № 26.Составить фрагмент программы сложения числа хранящегося в регистре C, с числом F216 , результат поместить в ячейку с № DF34. Начальный адрес фрагмента программы ячейка с № CD52.

Задача № 27.Составить фрагмент программы вычитания числа хранящегося в регистре D, с числом A416 ,, результат поместить в регистр Н. Начальный адрес фрагмента программы ячейка с № 8AD6

Задача № 28.Составить фрагмент программы вычитания числа хранящегося в регистре E, с числом C516 ,, результат поместить в ячейку с № AD45. Начальный адрес фрагмента программы ячейка с № 81F.

Задача № 29.Составить фрагмент программы конъюнкции числа хранящегося в регистре H, с числом 4B16 ,, результат поместить в регистр L. Начальный адрес фрагмента программы ячейка с № 845D

Задача № 30.Составить фрагмент программы конъюнкции числа хранящегося в регистре L, с числом C916 ,, результат поместить в ячейку с № A89. Начальный адрес фрагмента программы ячейка с № 8A5D.

Задача № 31

Составить фрагмент программы дизъюнкции числа хранящегося в регистре B, с числом 7D16 ,, результат поместить в регистр D. Начальный адрес фрагмента программы ячейка с № 86EA