
- •1. Преобразование систем счисления чисел в двоичную систему счисления.
- •2. Преобразование результата в различные системы счисления.
- •3. Выделение старшего и младшего байта результата и представление их в различных системах счисления.
- •Задание №2. Выполнение логических операций. Наложение масок.
- •Результат вычислений представить в следующих системах счисления: двоичная, восьмеричная, шестнадцатеричная и десятичная.
- •1. Произведем преобразование систем счисления чисел в двоичную систему счисления.
- •2. Преобразование результата в различные системы счисления.
- •3. Формирование устанавливающей маски.
- •4. Формирование сбрасывающей маски.
- •5. Формирование инвертирущей маски.
- •Задание №3. Программирование микроконтроллеров. Работа с массивами.
- •Inc r0 ; увеличиваем указатель ячейки памяти на 1
- •Inc r0 ; увеличиваем указатель ячейки памяти
- •Inc r1 ; увеличиваем указатель ячейки памяти
- •Inc b ; учитываем перенос в старшем байте суммы
- •Inc r0 ; увеличиваем указатель ячейки памяти
Министерство образования и науки Российской федерации
Государственное образовательное учреждение высшего профессионального образования
Псковский государственный политехнический университет
Задания
по курсу «Основы микропроцессорной техники»
для студентов заочной и заочно-сокращенной форм обучения
Псков, 2010
Задание №1. Системы счисления. Выполнение арифметических операций.
Задано арифметическое выражение. Числа имеют различную систему счисления. Размер чисел слово (два байта).
Требуется выполнить вычисление заданного арифметического выражения. Все вычисления произвести в двоичной системе исчисления, т. е. все числа необходимо перевести в двоичную систему счисления, а затем произвести арифметические действия. Выделить бит переноса для каждого действия.
Результат вычислений представить в следующих системах счисления: двоичная, восьмеричная, шестнадцатеричная и десятичная.
Записать старший и младший байт результата в следующих системах счисления: : двоичная, восьмеричная, шестнадцатеричная, десятичная.
Проверить результат с помощью калькулятора или компьютера.
При оформлении результатов вычислений необходимо подробное описание выполняемых действий. Варианты заданий приведены в таблице 1.1.
Варианты для задания №1
Формат задания
N1 O1 N2 O2 N3 O3 N4,
где
N1, N2, N3, N4 – числа, вариант выбирается из таблицы 1.2;
O1, O2, O3 – арифметические операции.
Таблица 1.1. Варианты заданий №1
Номер варианта |
Вариант для N1 |
Вариант для O1 |
Вариант для N2 |
Вариант для O2 |
Вариант для N3 |
Вариант для O3 |
Вариант для N4 |
1 |
1 |
+ |
3 |
– |
5 |
+ |
1 |
2 |
2 |
– |
4 |
– |
6 |
+ |
2 |
3 |
3 |
+ |
5 |
+ |
1 |
– |
3 |
4 |
4 |
– |
6 |
+ |
2 |
– |
4 |
5 |
5 |
+ |
1 |
– |
3 |
+ |
5 |
6 |
6 |
– |
2 |
– |
4 |
+ |
6 |
7 |
1 |
+ |
3 |
+ |
5 |
– |
1 |
8 |
2 |
– |
4 |
+ |
6 |
– |
2 |
9 |
3 |
+ |
5 |
+ |
1 |
+ |
3 |
10 |
4 |
– |
6 |
– |
2 |
+ |
4 |
11 |
5 |
+ |
1 |
– |
3 |
– |
5 |
12 |
6 |
– |
2 |
+ |
4 |
– |
6 |
13 |
1 |
+ |
3 |
+ |
5 |
+ |
1 |
14 |
2 |
– |
4 |
– |
6 |
+ |
2 |
15 |
3 |
+ |
5 |
– |
1 |
– |
3 |
16 |
4 |
+ |
6 |
+ |
2 |
– |
4 |
17 |
5 |
– |
1 |
+ |
3 |
+ |
5 |
18 |
6 |
+ |
2 |
– |
4 |
+ |
6 |
19 |
1 |
– |
3 |
– |
5 |
– |
1 |
20 |
2 |
+ |
4 |
+ |
6 |
– |
2 |
Таблица 1.2. Варианты чисел для N1, N2, N3, N4
Варианты для N1 |
Значение для N1 |
Значение для N2 |
Значение для N3 |
Значение для N4 |
1 |
2AD(16) |
120(10) |
327(8) |
0000000101100010(2) |
2 |
2313(8) |
E3(16) |
0000100110100110(2) |
300(10) |
3 |
1010001110001101(2) |
13256(8) |
102F(16) |
1045(10) |
4 |
63016(10) |
0000100110100110B |
70000(8) |
B76(16) |
5 |
0000100101100010B |
1005(16) |
3406(10) |
170003(8) |
6 |
6302(10) |
F001(16) |
7321(8) |
0000001110001101(2) |
Пример формирования задания.
Для варианта номер 5 задание имеет следующий вид:
0000100101100010 (2) + 120(10) – 102F(16) + 170003(8)
Пример выполнения задания №1
Задание:
123(16) + 321(8) – 25(10) + 1001110100(2)
Запишем задание в следующей форме:
123H + 321O – 25D + 1001110100B
1. Преобразование систем счисления чисел в двоичную систему счисления.
Первое число задано в шестнадцатеричной системе счисления (в конце числа символ H). В шестнадцатеричной системе счисления каждая цифра занимает 4 бита. Осуществим преобразование:
1 |
2 |
3 |
HEX |
0001 |
0010 |
0011 |
BIN |
Так как, из задания известно, что размер данных два байта (16 бит) допишем слева незначащие нули, так чтобы общее количество бит было 16.
0000 0001 0010 0011 B
Получаем результат преобразования:
123H = 00000001 00100011B
Второе число имеет восьмеричную систему счисления (в конце символ O). В восьмеричной системе счисления каждая цифра занимает три бита. Произведем преобразования в двоичную систему счисления:
3 |
2 |
1 |
OCT |
011 |
010 |
001 |
BIN |
Дополним результат до двух байт незначащими нулями. В результате получаем:
321O = 00000011 00100001B
Третье число имеет десятичную систему счисления (в конце числа символ D). Для преобразования воспользуемся методом последовательного деления на основание двоичной системы, т. е. на 2.
25:2 |
=12 |
25–(12*2) |
=1 |
12:2 |
=6 |
12–(6*2) |
=0 |
6:2 |
=3 |
6–(3*2) |
=0 |
3:2 |
=1 |
3–(1*2) |
=1 |
Запишем результат, дополнив его незначащими нулями до размера два байта:
25D = 00000000 00011001B
Все числа преобразованы в двоичную систему счисления. Теперь переходим к выполнению арифметических действий. Выполним первое действие в двоичной системе:
+ |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
1 |
123H |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
0 |
0 |
0 |
1 |
321O |
|
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
перенос |
|
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
0 |
0 |
результат |
Бит переноса равен 0.
Для второго действия
– |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
0 |
0 |
|
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
25D |
|
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
1 |
0 |
заём |
|
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
1 |
1 |
0 |
1 |
1 |
результат |
Бит переноса равен 0.
Для третьего действия
+ |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
1 |
1 |
0 |
1 |
1 |
|
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
1 |
1 |
0 |
1 |
0 |
0 |
1001110100B |
|
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
перенос |
|
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
1 |
1 |
1 |
результат |
В результате имеем
123H + 321O – 25D + 1001110100B = 0000000111011011 B