epd629
.pdfПриложение 3
Формулы (3-я работа)
№Выполняемые вычисления
п/п |
или действия |
1 |
СБЛ(1), АСП(2), ЦДЛ(3), |
|
ЦБП(4)П |
2 |
ССЛ(2), АДП(3), ЦБЛ(4), |
|
ЦСП(5)П |
3 |
СДЛ(3), АБП(4), ЦСЛ(5), |
|
ЦДП(6)П |
4 |
СБЛ(4), АСП(5), ЦДЛ(6), |
|
ЦБП(7)П |
5 |
ССЛ(5), АДП(6), ЦБЛ(7), |
|
ЦСП(8)П |
6 |
СДЛ(6), АБП(7), ЦСЛ(8), |
|
ЦДП(9)П |
7 |
СБЛ(7), АСП(8), ЦДЛ(9), |
|
ЦБП(2)П |
8 |
ССЛ(8), АДП(9), ЦБЛ(2), |
|
ЦСП(11)П |
9 |
СДЛ(9), АБП(2), ЦСЛ(11), |
|
ЦДП(12)П |
10 |
СБЛ(2), АСП(11), ЦДЛ(12), |
|
ЦБП(5)П |
11 |
ССЛ(11), АДП(12), ЦБЛ(5), |
|
ЦСП(14)П |
12СДЛ(12), АБП(5), ЦСЛ(14),
ЦДП(15)П
№Выполняемые вычисления
п/п |
или действия |
13 |
СБЛ(5), АСП(14), ЦДЛ(15), |
|
ЦБП(1)П |
14 |
ССЛ(14), АДП(15), ЦБЛ(7), |
|
ЦСП(1)П |
15 |
СДЛ(15), АБП(3), ЦСЛ(3), |
|
ЦДП(18)П |
16 |
СБЛ(3), АСП(4), ЦДЛ(17), |
|
ЦБП(3)П |
17 |
ССЛ(2), АДП(19), ЦБЛ(1), |
|
ЦСП(4)П |
18 |
СДЛ(18), АБП(4), ЦСЛ(2), |
|
ЦДП(21)П |
19 |
СБЛ(4), АСП(3), ЦДЛ(20), |
|
ЦБП(6)П |
20 |
ССЛ(5), АДП(22), ЦБЛ(2), |
|
ЦСП(7)П |
21 |
СДЛ(6), АБП(1), ЦСЛ(3), |
|
ЦДП(8)П |
22 |
СБЛ(7), АСП(2), ЦДЛ(4), |
|
ЦБП(7)П |
23 |
ССЛ(1), АДП(3), ЦБЛ(5), |
|
ЦСП(10)П |
24СДЛ(6), АБП(4), ЦСЛ(6),
ЦДП(27)П
Здесь применяются следующие обозначения:
1)первый символ: С – логический сдвиг; А – арифметический сдвиг; Ц – циклический сдвиг;
2)второй символ: Б – байт; С – слово; Д – двойное слово;
3)третий символ: Л – влево; П – вправо;
4)четвертый символ: П – с переносом.
91
Приложение 4
Редактирование, ассемблирование
икомпоновка программы
1.Подготовка рабочего места к занятиям.
Рабочее место оборудуется персональным компьютером, на котором для первых шести работ достаточно:
-установить операционную систему Windows 95 (или выше: Windows 98, Windows XP Edition, Windows XP Proffetional, Windows 2000, кроме Windows Millenium);
-установить Far;
-создать папку C:\assebler и поместить в нее все содержимое папки u_m_lab3, т.е. следующие файлы: tasm.exe, tlink.exe, rtm.exe, dpmiload.exe, dpmimem.dll, примеры lab3pr1.asm, lab3pr2.asm, lab3pr3.asm, lab3pr4.asm, lab3pr5.asm, l_3bnn.asm.
2. Создание и редактирование исходного текста программы, компиляция и выполнение программы.
2.1.Демонстрационные примеры приведены в прил.1 (примеры П.1.1– П.1.1.5). Используются преподавателем при проведении работы в компьютерном классе и могут использоваться студентами при самостоятельном изучении.
2.2.Включение ПК, запуск операционной системы Windows 95, Windows 98,
Windows XP или Windows 2000 (не применять Windows Millenium).
2.3.Вызов оболочки (пакета) Far и открытие папки C:\Assembler\u_m_lab3.
2.4.Ассемблирование программы lab3pr1.asm, т.е. получение объектного модуля lab3pr1.obj (в командной строке набрать и выполнить команду tasm lab3pr1.asm); компоновка (в командной строке набрать и выполнить команду tlink /tdc lab3pr1.obj) и выполнение (исполнение) полученной программы lab3pr1.com.
2.5.Проверка правильности решения контрольных примеров.
|
|
|
|
|
|
Таблица П.4.1 |
№ п/п |
b1 |
b2 |
w1 |
w2 |
d1 |
d2 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
2 |
10 |
10 |
10 |
10 |
10 |
10 |
3 |
100 |
100 |
1 000 |
1 000 |
100 000 |
100 000 |
4 |
200 |
200 |
40 000 |
40 000 |
2 000 000 000 |
2 000 000 000 |
2.6. Ассемблирование программы, компоновка и выполнение программы l_3bnn.asm (прил. 2). Проверка правильности решения контрольных примеров:
92
|
|
|
|
|
|
|
Таблица П.4.2 |
|
|
|
|
|
|
|
|
|
|
№ |
№ фор- |
b1 |
b2 |
b3 |
w1 |
w2 |
d1 |
Флаг |
п/п |
мулы |
|
|
|
|
|
|
cf |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
|
2 |
1 |
10 |
10 |
10 |
100 |
100 |
1 000 |
|
3 |
1 |
200 |
200 |
200 |
50 00 |
50 |
200 000 000 |
|
|
|
|
|
|
0 |
000 |
|
|
4 |
3 |
|
|
|
1 |
|
|
|
5 |
3 |
|
|
|
32768 |
|
|
|
6 |
4 |
|
|
|
|
|
2 147 483 648 |
|
7 |
4 |
|
|
|
|
|
131 072 |
|
8 |
5 |
16 |
|
|
|
|
|
|
9 |
5 |
128 |
|
|
|
|
|
|
10 |
|
|
|
|
1 |
|
|
0 |
11 |
|
|
|
|
0 |
|
|
1 |
2.7. Ассемблирование программы, компоновка и выполнение программы l_3bnn.asm (прил. 3). Проверка правильности решения контрольных примеров:
3. Редактирование, компиляция и выполнение демонстрационных примеров.
3.1.В папке C:\assebler\u_m_lab3 создать файл lab3_fio.asm, где fio –
инициалы выполняющего работу (первые буквы фамилии, имени и отчества – латинскими буквами).
3.2.Проверить функцию создания файла на одном из имеющихся на компьютере дисков, выполняя пример 3.4.
3.3.Проверить функцию чтения файла, выполняя пример 3.5.
4.Подготовка к выполнению индивидуального задания.
4.1. На основе файлов lb2_1bnn.asm и lb2_2bnn.asm (прил. 2.2 в учеб.пособ., ч.2) создать файл l_3_fio.asm. Для этого:
скопировать файл lb2_1bnn.asm в папку C:\assebler\u_m_lab3;
переименовать его в файл l_3_fio.asm;
вставить после его последней строки содержимое файла lb2_2bnn.asm;
преобразовать текст полученного файла l_3_fio.asm в COM-файл (убрать сегмент стека, соединить два сегмента кода в один, переделать сегмент данных в блок (набор) данных, размещенных в сегменте кода, и т.д. см. подразд. 4.1).
4.2. Добавить проверку номера выполняемой формулы для вызова процедур, реализующих сдвиги.
4.3. Добавить заготовки процедур, реализующих сдвиги (начало, окончание процедур и команду ret в каждой из них).
5.Ассемблирование программы и получение загрузочного файла.
93
5.1. Для ассемблирования программы необходимо файлы с программой (то есть файл l_3_fio.asm) поместить в каталог с ассемблером (то есть с файлом tasm.exe), набрать в командной строке команду
tasm.exe <имя файла>.asm /l
инажать клавишу Enter. Т.е. в нашем случае набрать и выполнить команду tasm.exe l_3_fio.asm /l
Врезультате будут получены файл с расширением .obj (полное его имя: l_3_fio.obj) и файл с расширением .lst (полное его имя: l_3_fio. lst).
Затем с помощью программы tlink.exe получить загрузочный модуль. Для этого необходимо, чтобы файл tlink.exe был в каталоге с ассемблером. Набрать в командной строке и выполнить команду
tlink.exe l_3_fio.obj \tdc
В результате будет получен файл l_3_fio.com. Запустите программу (для этого наведите курсор на полученный файл и нажмите клавишу Enter).
94
Приложение 5
Арифметические и логические операции в микропроцессорах МП8086 и МП80386
|
Сложение чисел без знака |
|
|
МП 8086 |
|
|
|
||||
|
|
Вычисление |
|
|
d1+w1+b1+d2+w2+b2 |
|
|
|
|
||
|
mov ax, word ptr d1 |
|
|
|
|
|
|
|
|
|
|
|
mov dx, word ptr d1+2 |
|
|
|
|
|
|
|
|
|
|
31 |
|
16 |
|
15 |
|
2 |
|
1 |
0 |
|
|
d1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
dx |
|
|
|
|
ax |
|
|
|
|
|
|
|
|
|
15 |
|
2 |
|
1 |
0 |
|
w1 |
|
|
|
|
|
|
|
|
|
||
|
add ax, w1 |
|
|
|
|
|
|
|
|
|
|
|
adc dx, 0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
d1+w1 |
|
|
|
|
|
|
|
|
31 |
|
16 |
|
15 |
|
2 |
|
1 |
0 |
|
|
рег. dx:ax |
|
|
|
|
|
|
|
|
|
|
|
|
|
dx |
|
|
|
ax |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7 |
|
1 |
0 |
|
b1 |
|
|
|
|
|
|
|
|
|
||
|
mov bx,0 |
|
|
|
|
|
|
||||
|
|
|
0 |
|
…...…….0 |
|
|||||
|
mov bl,b1 |
|
|
15 |
8 |
7 |
|
1 |
0 |
|
|
рег. bx |
|
|
0 |
0 0 |
b1 |
|
|
|
|||
|
add ax, bx |
|
|
|
|
|
|
|
|
|
|
|
adc dx, 0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
d1+w1+b1 |
|
|
|
|
|
|
||
31 |
|
16 |
|
15 |
|
2 |
|
1 |
0 |
|
|
рег. dx:ax |
|
|
|
|
|
|
|
|
|
|
|
|
|
dx |
|
|
|
ax |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
31 |
|
16 |
|
15 |
|
2 |
|
1 |
0 |
|
|
d2 |
|
|
|
|
|
|
|
|
|
|
|
|
add ax, word ptr d2 |
|
|
|
|
|
|
|
|
|
|
|
adс dx, word ptr d2+2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
d1+w1+b1+d2 |
|
|
|
|
|
|
||
31 |
|
16 |
|
15 |
|
2 |
|
1 |
0 |
|
|
рег. dx:ax |
|
|
|
|
|
|
|
|
|
|
|
|
|
dx |
|
|
|
ax |
|
|
|
|
|
|
|
|
|
|
15 |
|
2 |
|
1 |
0 |
|
95
w2
add ax, w2 adc dx, 0
d1+w1+b1+d2+w2
31 |
16 |
15 |
|
|
2 |
1 |
0 |
|
||
рег. dx:ax |
|
|
|
|
|
|
|
|
|
|
|
dx |
|
|
|
ax |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7 |
|
1 |
0 |
|
|
b2 |
|
|
|
|
|
|
|
|
|
|
|
mov bx,0 |
|
|
|
|
|
|
|||
|
|
|
0…………. |
… |
...…….0 |
|
||||
|
mov bl,b2 |
|
|
15 |
8 7 |
|
1 |
0 |
|
|
рег. bx |
|
|
0 |
0 0 |
|
b2 |
|
|
||
|
add ax, bx |
|
|
|
|
|
|
|
|
|
|
adc dx, 0 |
d1+w1+b1+d2+w2+b2 |
|
|
|
|
||||
|
|
|
|
|
|
|||||
31 |
16 |
15 |
|
|
2 |
1 |
0 |
|
||
рег. dx:ax |
|
|
|
|
|
|
|
|
|
|
|
dx |
|
|
|
ax |
|
|
|
|
|
|
|
|
|
|
||||||
Занесение результата в ячейку памяти |
rezult |
(определена как четверное слово) |
||||||||
|
mov word ptr rezult,ax |
|
|
|
|
|
|
|
|
|
|
mov word ptr rezult+2,dx |
|
|
|
|
|
|
|
|
|
|
mov word ptr rezult+4,0 |
|
|
|
|
|
|
|
|
|
|
mov word ptr rezult+6,0 |
|
|
|
|
|
|
|
|
|
rezult |
|
d1+w1+b1+d2+w2+b2 |
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
||
|
rezult+2 |
|
|
|
rezult |
|
|
|
|
|
31 |
16 |
15 |
|
|
2 |
1 |
0 |
|
||
|
|
|
|
|
|
|
|
|
|
|
|
rezult+6 |
|
|
|
rezult+4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
63 |
46 |
47 |
|
|
|
33 |
32 |
|
||
|
|
|
|
|
|
|
|
|
|
|
96
|
Сложение чисел без знака |
|
|
МП 80386 |
|
|
|||||||
|
|
Вычисление |
|
|
|
d1+w1+b1+d2+w2+b2 |
|
|
|
|
|||
|
mov ecx, d1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
31 |
|
|
|
16 |
15 |
|
|
2 |
|
1 |
0 |
|
d1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ecx |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
15 |
|
|
2 |
|
1 |
0 |
|
w1 |
mov eax, 0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
mov ax, w1 |
|
|
|
|
|
ax |
|
|
|
|
|
|
|
31 |
|
|
|
16 |
15 |
|
|
2 |
|
1 |
0 |
|
рег. eax (w1) |
0 |
0 |
0 |
0 |
0 |
|
|
|
w1 |
|
|
|
|
|
add ecx,eax |
|
|
eax |
|
|
|
|
|
|
|
||
|
|
d1+w1 |
|
|
|
|
|
|
|
||||
|
31 |
|
|
|
16 |
15 |
|
|
2 |
|
1 |
0 |
|
рег. ecx |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ecx |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7 |
|
1 |
0 |
|
b1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mov eax,0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
31 |
|
|
|
16 |
15 |
|
8 |
7 |
|
1 |
0 |
|
рег. eax |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
0 |
0 |
|
|
mov al,b1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
31 |
|
|
|
16 |
15 |
|
8 |
7 |
|
1 |
0 |
|
рег. eax |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
b1 |
|
|
|
|
|
add ecx, eax |
|
|
eax |
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
d1+w1+b1 |
|
|
|
|
|
|
|
||
|
31 |
|
|
|
16 |
15 |
|
|
2 |
|
1 |
0 |
|
рег. ecx |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ecx |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
31 |
|
|
|
16 |
15 |
|
|
2 |
|
1 |
0 |
|
d2 |
|
|
|
|
d2 |
|
|
|
|
|
|
|
|
|
add ecx, d2 |
|
d1+w1+b1+d2 |
|
|
|
|
|
|
|
|||
|
31 |
|
|
|
16 |
15 |
|
|
2 |
|
1 |
0 |
|
рег. ecx |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ecx |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
15 |
|
|
2 |
|
1 |
0 |
|
w2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
mov eax, 0
97
mov ax, w2
|
31 |
16 |
15 |
|
|
2 |
|
1 |
0 |
|
||
рег. eax (w2) |
0 |
0 0 |
w2 |
|
|
|
|
|
|
|
||
|
|
|
eax |
|
|
|
|
|
|
|
||
|
add ecx, eax |
|
|
|
|
|
|
|
|
|
|
|
|
|
d1+w1+b1+d2+w2 |
|
|
|
|
|
|
|
|||
|
31 |
16 |
15 |
|
|
2 |
|
1 |
0 |
|
||
рег. ecx |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ecx |
|
|
|
|
|
|
|
||
|
|
|
|
7 |
|
|
1 |
0 |
|
|
||
b2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
mov eax,0 |
|
|
|
|
|
|
|
|
|
|
|
|
mov al,b2 |
|
|
|
|
|
|
|
|
|
|
|
|
31 |
16 |
15 |
|
7 |
2 |
|
1 |
0 |
|
||
рег. eax |
|
|
|
|
|
|
b2 |
|
|
|
|
|
|
add ecx, eax |
|
eax |
|
|
|
|
|
|
|
||
|
d1+w1+b1+d2+w2+b2 |
|
|
|
|
|
|
|
||||
|
31 |
16 |
15 |
|
|
2 |
|
1 |
0 |
|
||
рег. ecx |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ecx |
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
||||||
Занесение результата в ячейку памяти |
rezult |
(определена как четверное слово) |
|
|
||||||||
|
mov dword ptr rezult,ecx |
|
|
|
|
|
|
|
|
|
|
|
|
mov dword ptr rezult+4,0 |
|
d1+w1+b1+d2+w2+b2 |
|
|
|
|
|
|
|
||
rezult |
|
|
|
|
|
|
|
|
|
|||
rezult+2 |
|
|
rezult |
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
||||
|
31 |
16 |
15 |
|
|
2 |
1 |
0 |
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
rezult+6 |
|
|
rezult+4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
63 |
46 |
47 |
|
|
|
33 |
32 |
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
98
Вычитание чисел без знака |
МП 8086 |
Вычисление d1-w1-b1-d2-w2-b2
mov cx, word ptr d1 mov dx, word ptr d1+2
|
31 |
16 |
15 |
|
2 |
1 |
0 |
|
d1 |
|
|
|
|
|
|
|
|
|
|
dx |
|
|
cx |
|
|
|
|
|
|
15 |
|
2 |
1 |
0 |
|
w1 |
|
|
|
|
|
|
|
|
|
sub cx, w1 |
|
|
|
|
|
|
|
|
sbc dx, 0 |
|
|
|
|
|
|
|
|
|
d1-w1 |
|
|
|
|
|
|
|
31 |
16 |
15 |
|
2 |
1 |
0 |
|
рег. dx:cx |
|
|
|
|
|
|
|
|
|
dx |
|
|
cx |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7 |
1 |
0 |
|
b1 |
mov al,b1 |
|
|
|
|
|
|
|
|
cbw |
|
15 |
8 |
7 |
1 |
0 |
|
рег. ax |
|
|
0 |
0 0 |
b1 |
|
|
|
|
sub cx ax |
|
|
|
|
|
|
|
|
sbb dx, 0 |
|
|
|
|
|
|
|
|
|
d1-w1-b1 |
|
|
|
|
|
|
|
31 |
16 |
15 |
|
2 |
1 |
0 |
|
рег. dx:cx |
|
|
|
|
|
|
|
|
|
dx |
|
|
cx |
|
|
|
|
31 |
16 |
15 |
2 |
1 |
0 |
d2
sub cx, word ptr d2 sbb dx, word ptr d2+2
d1-w1-b1-d2
31 |
16 |
15 |
2 |
1 |
0 |
|
рег. dx:cx |
|
|
|
|
|
|
|
|
dx |
|
cx |
|
|
|
|
|
15 |
2 |
1 |
0 |
W2 |
|
|
|
|
|
99
sub cx, w2 sbb dx, 0
|
|
d1-w1-b1-d2-w2 |
|
|
|
|
|
|
|
|
31 |
16 |
15 |
|
|
|
2 |
1 |
0 |
|
|
рег. dx:cx |
|
|
|
|
|
|
|
|
|
|
|
dx |
|
|
cx |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7 |
|
1 |
0 |
|
|
b2 |
|
|
|
|
|
|
|
|
|
|
|
mov al,b2 |
|
|
|
|
|
|
|
|
|
|
cbw |
|
15 |
|
8 7 |
|
1 |
0 |
|
|
рег. ax |
|
0 |
0 |
0 |
|
b2 |
|
|
|
|
|
sub cx, ax |
|
|
|
|
|
|
|
|
|
|
sbb dx, 0 |
|
|
|
|
|
|
|
|
|
|
|
d1-w1-b1-d1-w2-b2 |
|
|
|
|
|
|
||
31 |
16 |
15 |
|
|
|
2 |
1 |
0 |
|
|
рег. dx:cx |
|
|
|
|
|
|
|
|
|
|
|
dx |
|
|
cx |
|
|
|
|
|
|
Занесение результата в ячейку памяти
mov word ptr rezult,cx mov word ptr rezult+2,dx mov word ptr rezult+4,0
mov word ptr rezult+6,0
rezult (определена как четверное слово)
d1-w1-b1-d1-w2-b2
rezult
|
rezult+2 |
|
|
rezult |
|
|
|
|
31 |
16 |
15 |
2 |
1 |
0 |
|
|
|
|
|
|
|
|
|
|
rezult+6 |
|
|
rezult+4 |
|
|
|
|
|
|
|
|
|
||
|
63 |
46 |
47 |
|
33 |
32 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
100