Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

epd629

.pdf
Скачиваний:
17
Добавлен:
02.05.2015
Размер:
1.05 Mб
Скачать

Приложение 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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]