- •Лабораторный практикум
- •Тема: Система команд процессоров и методы адресации
- •A) Абсолютная адресация
- •Б) относительная адресация
- •В) вариант программы с использованием только регистров и стековой памяти
- •Тема: Команды сравнения и переходов
- •Первый вариант:
- •Второй вариант:
- •Третий вариант:
- •Варианты заданий к лабораторной работе
- •Тема: Организация подпрограмм и внутренние механизмы передачи параметров
- •А) Передача параметров через регистры
- •B) Пример передачи параметров через общую область памяти.
- •C) Передача параметров через стек.
- •D) Передача параметров через таблицу адресов
- •Варианты заданий для лабораторной работы
- •Тема: Организация прерываний
- •Тема: Введение в архитектуру ibm pc
- •Тема: Трансляция, компоновка и отладка программ
- •Тема: Режимы адресации
- •Тема: Программирование ветвлений и циклов
- •Тема: Арифметические операции целочисленной обработки информации
- •Тема: Программирование операций ввода-вывода
- •Приложение 1 Функциональная модель микроЭвм-2
- •Приложение 2.
- •2.1.1. Представление чисел и перевод из одного счисления в другое.
- •2.1.2. Сложение положительных чисел
- •2.1.3. Сложение и вычитание чисел со знаком
- •2.2.1. Преобразование двоичных чисел в десятичные
- •2.2.2. Преобразование десятичных чисел в двоичные
- •2.3. Двоично-десятичная система счисления
- •2.4. Восьмеричная система счисления
- •2.5. Шестнадцатеричная система счисления
- •Приложение 3 Программная модель микропроцессора Intel (Pentium III)
- •Приложение 4 Система команд микропроцессора Intel 8086
- •Приложение 5 Коды ascii (диапазон 0-127)
Третий вариант:
Вычисление выражения
с использованием команды организации цикла со счетчиком
адрес |
код |
мнемокод |
комментарий |
|
|
|
|
00 |
31 01 |
mvi b,1 |
|
02 |
19 21 |
stor b,F |
; f:=1 (f- текущее значение факториала ) |
04 |
19 22 |
stor b,Y |
; Y:=1 ,т.к. 0!=1 |
06 |
40 |
in 0 |
; ввод N в rA |
07 |
b0 00 |
cmi a,0 |
; сравнить (rA) с 0 (n=0 ?) |
09 |
ba 1d |
jz exit |
; перейти по символическому адресу exit при (rA)=0 |
0b |
38 |
xchg |
; (rA) (rB) : в rA - 1(i:=1); в rB - N |
0c |
21 |
cycl: push b |
; (rB)(sp) : сохранить rB в стеке(счетчик цикла) |
0d |
11 21 |
load b,F |
; в rB - (i-1)! |
0f |
20 |
push a |
; (rA)(sp) (coранить i в стеке ) |
10 |
80 |
mur a,a |
; (rB)*(rA)->(rA,rB) i!:=i*(i-1)! |
11 |
19 21 |
stor b,F |
; запомнить i! по символическому адресу F |
13 |
59 22 |
adm b,Y |
; f+Y |
15 |
19 22 |
stor b,Y |
; Y:=Y+F |
17 |
28 |
pop a |
; (sp)(rA) восстановить в rA i |
18 |
60 01 |
adi a,1 |
; (rA)+1 -> (rA) : i:=i+1 |
1a |
29 |
pop b |
; (sp)(rB) :восстановить счетчик цикла |
1b |
e1 0c |
loop b,cycl |
; организация цикла со счетчиком в rB |
1d |
10 22 |
exit: load a,Y |
; (rA)<- результат вычисления выражения |
1f |
49 |
out 1 |
; вывод результата из rA регистра в порт 1 |
20 |
f8 |
stop |
; стоп |
21 |
00 |
F: .ds 1 |
; ячейка под текущее значение факториала |
22 |
00 |
Y: .ds 1 |
; ячейка под результат |
Варианты заданий к лабораторной работе
а) для реализации линейного выражения с использованием различных методов адресации варианты заданий выбираются из таблицы 1.
Таблица 1
-
№ п/п
задание
№ п/п
задание
1
Y=a2*b+c/d
14
Y=(a+b)2+c2
2
Y=a2/b+c2/d
15
Y=(a-b)2*(c+d)
3
Y=(a+b)2-c/d
16
Y=a*b/c+d2
4
Y=a2/(b*c)+d
17
Y=a*b/c-d2
5
Y=a+b2/c+d
18
Y= (a-b)2+c*d
6
Y=a-b/c+d2
19
Y=(a-b)2-c2/d
7
Y=a/b*c+d2
20
Y=(a-b)2-(c2-b)
8
Y=a/b2+c*d
21
Y=a*b-(c2-b)
9
Y=a2+b/d-c
22
Y=(a+b)/(c2-b)
10
Y=a2-b/c+d
23
Y=a2*(b-c)+d
11
Y=a*c2/(b–d)
24
Y=a*(b2-c)-d
12
Y=a/b2*c-d
25
Y=(a+b)2+c/d
13
Y=a2*b/c+d
б) для реализации ветвящегося и циклического выражений варианты заданий выбираются из таблицы 2.
Таблица 2
№ п/п |
выражение 1 (ветвление) |
выражение 2 (цикл) |
1 |
|
|
2 |
|
|
3 |
|
|
4 |
|
|
5 |
|
|
6 |
|
|
7 |
|
|
8 |
|
|
9 |
|
|
10 |
|
|
11 |
|
|
12 |
|
|
13 |
|
|
14 |
|
|
15 |
|
|
16 |
|
|
17 |
|
|
18 |
|
Y= AX/2X-1 |
19 |
|
Y= Ax +Bx |
20 |
|
Y= A(X+B/2) |
21 |
|
|
22 |
|
|
23 |
|
|
24 |
|
|
25 |
|
|