Будь умным!


У вас вопросы?
У нас ответы:) SamZan.net

ЛАБОРАТОРНАЯ РАБОТА Тема лабораторной работы- написание программы на языке Ассемблер для вычисления а

Работа добавлена на сайт samzan.net:


ЛАБОРАТОРНАЯ РАБОТА № ____

Тема лабораторной работы: написание программы на языке Ассемблер для вычисления арифметического выражения.

Цель работы: изучение регистровой структуры микропроцессоров i80х86, различных арифметических команд и приобретение практических навыков их использования в программе.

1. Теоретические положения

ADD – выполняет сложение двух операндов, заданных в команде. Микропроцессор помещает результат на место первого, приемника (П). Второй операнд, источник (И) - не изменяется. Команда корректирует регистр флагов в соответствии с результатом сложения (фиксируя, был ли результат нулевым, отрицательным, имел ли четное кол-во «1» бит, были ли перенос или переполнение).

Формат команды: ADD  Oперанд1, Oперанд2 (иначе: ADD  П, И)

Пример: ADD  AX, BX

Операнд1 может размещаться в регистре общего назначения или памяти; Операнд2 – в регистре общего назначения, памяти или быть константой. Необходимо помнить, что сразу оба операнда - не могут размещаться в памяти.

ADC – команда сложения с учетом переноса, т.е. к сумме двух операндов прибавляется значение флага переноса (флаг CF).  Для любой формы команды ADD существует соответствующая  ей команда ADC.

SUB – аналогична по формату команде сложения ADD. Выполняет вычитание операнда источника (И) из операнда приемника (П). Результат операции сохраняется на месте операнда приемника, устанавливаются флаги в соответствии с результатом операции, причем флаг переноса теперь означает «заем».

Формат команды:  SUB  П, И

Пример: SUB  AX, BX. (после выполнения в рег-ре  АХ будет разность АХ-ВХ).

SBB – команда вычитания с заемом. Учитывает флаг заема при вычитании, т.е. значение заема (флаг  CF ) вычитается из результата, полученного при  обычном вычитании.

NEG – команда изменения знака операнда (в дополнительном коде).

Формат команды: NEG  Oперанд. (тут 1 операнд, он и источник, и приемник)

Пример: NEG AX

INC – команда увеличения. Прибавляет 1 к операнду.

Формат команды: INC Oперанд

Пример: INC AX

DEC – команда уменьшения. Отнимает 1 от операнда.  Например, DEC AX

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

Формат команды:  MUL  Oперанд     ( или  IMUL  Oперанд    )

Операнд может размещаться в регистре или памяти.

Тип команды определяется по длине операнда, указанного в команде.

По длине операндов, участвующих в операции, можно различать:

а) - умножение байт. - (на операнд длиной байт, указанный в команде, умножается значение длиной в байт, размещенное в регистре AL). Результат операции длиной слово сохраняется  при этом в регистре AX.

Например: команда MUL  CH  - даст результат (AL * СН )  в регистре  AX.

б) - умножение слов.   (на операнд длиной слово, указанный в команде, умножается значение длиной в слово, размещенное в регистре AХ. Результат операции длиной двойное слово сохраняется в паре регистров (DX, AX).  

Например: команда MUL  ВХ:

Поскольку здесь в качестве операнда используется регистр BX, то следовательно умножаются слова). Эта команда даст результат (произведение AХ и СХ )  в регистрах  DX, AX,  причем младшие 16 бит результата – в регистре АХ, а старшие – в регистре DX.

DIV, IDIV – команды деления. Команда деления DIV выполняет деление без знака и дает как частное, так и остаток. Деление целых чисел со знаком IDIV отличается от команды DIV только тем, что оно учитывает знаки обоих операндов. Если результат положителен, все происходит так же, как и у DIV, за исключением того, что максимальное значение частного соответственно равно +127 и +32767,  для байтов и слов. Если результат отрицателен, то остаток имеет тот же знак что и частное. Минимальные значения частных для отрицательных результатов –128 и –32768 для байтов и слов соответственно.

Формат команды:  DIV  Oперанд  ( или  IDIV  Oперанд    )

Операнд, указываемый в команде, является делителем (длиной байт или слово).  и может размещаться в регистре или памяти. Делимое  определяется по умолчанию, причем обязательно его разрядность вдвое больше разрядности делителя. Таким образом, по длине делителя определяется вариант действия команды:

а) - деление слова на байт.

Значение длиной в слово, размещенное в регистре AХ, делится на операнд длиной байт, указанный в команде.  Результат операции: частное длиной байт сохраняется в регистре AL, остаток от деления длиной байт пишется в регистр AH.

б) - деление двойного слова на слово.

Значение длиной в двойное слово, размещенное в паре регистров DX, AХ (младшие 16 бит – в регистре АХ, а старшие 16 бит – в регистре DX), делится на операнд длиной слово, указанный в команде.  Тут результат операции: частное длиной слово сохраняется в регистре AХ, остаток от деления длиной слово запишется  в регистр DX.

Пример: DIV BL. (Поскольку в команде указан операнд длиной в байт, то выполняется деление содержимого регистра АХ на содержимое регистра BL). В результате целая часть частного будет получена в AL,  и остаток  от деления  - в AH.

CBW – команда «знакового расширения» байта до слова. Значение ЧСЗ, хранимое вначале в байте AL, преобразуется в слово и сохраняется в регистре AX.

CWD – команда «знакового» расширения слова до двойного слова. Значение ЧСЗ, хранимое в байте AХ, преобразуется в двойное слово и сохраняется в паре регистров DX, AX. Заметьте: в DX  все биты просто повторят знаковый бит из AX.

2. Порядок выполнения работы

2.1. Составить программу для расчета заданного арифметического выражения. Длину и значение переменных A, B, C – выбрать самостоятельно. Константы, заданные в выражении,  использовать в кодовом сегменте.

2.2. Описать команды умножения и деления, используемые в программе на предмет длины операндов, участвующих в операции. Охарактеризовать длину результата и место его хранения.

2.3. Получить загрузочный модуль.

2.4. Протестировать выполнение программы в отладчике.

Варианты заданий приведены в Приложении А.

3. Содержание отчета

  1.  Исходные данные для выполнения работы.
    1.  Листинг программы.
    2.  Анализ результатов выполнения программы.
    3.  Выводы.

Приложение А

Варианты заданий к лабораторной работе

Вариант

ЕСЛИ

ТО

R =

ИНАЧЕ

R =

1

A > B

A*((366-B)+179)/ (C+73)

A+B

2

A < B

A*(864/B-181/C)+7

A - B

3

A = B

A+(212+B/32)*C-31

A+2B

4

A <> B

A*32+B*(28/C-56)

A - 2B

5

A >- B

A-328/(B*103/(C-36))

A+B + C

6

A < 2B

A*166-(B/569+C)*752

A – B + C

7

A = 2B

56*A+785/(B-C)

A+2B - C

8

A <>2B

((A-52)*(A+52)+B)/C

2A - 2B

9

A > C

(A+752*B)/13-C

C+B

10

A < C

(A+B)*((C-563)/5-16)

C - B

11

A = C

(A+B/32)*C-31

C+2B

12

A <> C

A/(B*103)+C-99

C - 2B

13

A >- C

A+752*B-(C-256)

C+A

14

A < 2C

A-(867/C*(104-B-28))

C - A

15

A = 2C

((C–64)*(B+81)+А)/42

C+2A

16

A <>2C

(A –481/B)/85*(C-44)

C - 2A

17

B > C

A *90+B/(54-C)*7

A + B - C

18

B < C

C /255-B/(7+B)*7

A+B

19

B = C

C *(59-B/19+А)+10

A - B

20

B <> C

C*(89*B-15)/(B+82)+А

A+2B

21

B >- C

(A-(607+B*92)/C)*50

A - 2B

22

B < 2C

(A+426)/(B*194+C)*11

A+B + C

23

B = 2C

A*414-(B+188*C)/34

A – B + C

24

B <>2C

(A+891/(B*159+C))*76

A+2B - C

25

B <> C

C*(89*B-15)/(А+82)+А

A+2B

26

B >- C

(С-(300+B*92)/А)*20

A - 2B

27

C > -B

(A+475)/(B*125-C)*70

2A - 2B




1. . ВИЗНАЧЕННЯ І ЗАГАЛЬНА ХАРАКТЕРИСТИКА Магнезитовими периклазовими називають вогнетриви які містят
2. Поэтому методическую основу современной экологии составляет сочетание системного подхода натурных наблюд
3. Лабораторная работа 3 Разветвленные алгоритмы
4. Тема засідання 10
5. Расчёт ведомости недопоставки товаров
6. МІЖНАРОДНІ ЕКОНОМІЧНІ ВІДНОСИНИ
7. Кинематика. Задач
8.  Доминирующие культуры и субкультуры 2
9. Курсовая работа- Стили руководства и организация труда предпринимателя
10. Атеизм на новые рубежи
11. Ledin 1.1 Look t the pictures nd sy which one shows Moscow Stte University Sint Petersburg Stte University nd the Omsk cdemy of the Ministry of Internl ffirs
12. The Comparative Analysis Of The History Of The Computer Science And The Computer Engineering In The USA And Ukraine
13. Автоматизированная система управления персоналом Отдел кадров.html
14. Криминализация массовой культуры в современном искусстве телеcериал Бригада Заключение ВВЕДЕНИЕ
15. Конечно в первую очередь это касалось богатых семей
16. Иммунологическая специфичность
17. младший Jesse Oliver rons Jr ldquo;Барум барум барум барипити барипити барипитиrdquo;.html
18. 19 октября 2012г. Председатель подпись расшифр
19. 2 класс Цели урока- познакомить детей с растениями научить различать растения по группам; воспитыв
20. Теория приватизации