Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛабАсм09.doc
Скачиваний:
19
Добавлен:
29.08.2019
Размер:
159.74 Кб
Скачать

14

_________________________

Московский авиационный институт

(Государственный технический университет)

“ Язык ассемблера ibm pc ”

Лабораторные работы

Алещенко А.С.

Москва

2009

Указания по работе с турбо-ассемблером

1. Для установления связи с системой набрать

имя пользователя STUDENT

и пароль (на экране не высвечивается)

S304

2. В директории ASM располагаются файлы, необходимые для работы с языком ассемблера, их можно просматривать и копировать для использования. На диске, выделенном в данной лаборатории (H), следует создавать собственные поддиректории в директории с номером группы, в которых можно располагать собственные файлы, скопированные или вновь создаваемые.

3. Вновь создаваемые файлы можно записывать с использованием любого редактора текстов.

4. Трансляция программы осуществляется набором команды в командной строке

TASM filname.asm (enter)

где filname – любое имя файла,после чего формируется файл с исходным именем filname и расширением .obj

5. Компоновка производится набором команды в командной строке

TLINK filname (enter)

после чего формируются файлы с исходным именем filname и расширениями .exe и .map

6. Выполнение программы производится после вызова файла filname.exe в окне Norton Comander.

7. Отключение окон Norton Comander (и их включение) производится одновременным нажатием Ctrl+O.

Лабораторная работа № 1

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

Справочно-обучающая система ASML.

Справочно-обучающая система ASML содержит необходимую справочную информацию о командах Ассемблера IBM PC, представлении информации, форматах команд и основных конструкциях языка.

Справочно-обучающая система ASML вызывается через кнопку ПУСК или через файл ASML.exe в директории ASM. После запуска работа с окнами системы ASML начинается с нажатия кнопки включения меню программы F9.

Арифметические команды языка Ассемблера

  1. Команды сложения и вычитания

Операции сложения и вычитания одинаково для знаковых и беззнаковых целых. Используются две формы операндов: байт или слово, причем операнды должны быть одинаковой длины. Операнды могут храниться в регистре или в ОП, но второй операнд может быть непосредственным.

Перечислим команды, относящиеся к группе команд сложения и вычитания:

а) ADD op1, op2 ; op1 := op1+op2

SUB op1, op2 ; op1 := op1 – op2

Сложение (вычитание) операндов в дополнительном двоичном коде, результат помещается на место первого операнда, второй операнд не изменяется.

Команда модифицирует регистр флагов FLAGS в соответствии с результатом операции, а именно:

ZF – нулевой рез-т,

SF – знак результата,

PF – флаг четности,

CF, AF – флаги переносов,

OF – флаг переполнения.

Примеры:

ADD AH, 12 ; AH := AH + 12 (1Б)

SUB z, BX ; z := z – BX (2Б)

б) ADC op1, op2 ; op1 := op1+op2+CF

SBB op1, op2 ; op1 := op1 – op2 – CF

Сложение (вычитание) операндов с переносом, образованным предыдущей командой.

Модифицирует флаги аналогично п.(а).

Например, если требуется сложить двойные слова, расположенные в парах регистров

(AX, BX) := (AX, BX) + (CX, DX),

причем AX, CX – старшие байты слагаемых,

BX, DX – младшие байты.

Сложение выполняется двумя командами:

ADD BX, DX

ADC AX, CX

в) Специальный случай сложения – изменение операнда на единицу.

INC op ; op:= op +1 инкремент

DEC op ; op:= op –1 декремент

г) Десятичная коррекция результата предыдущей операции. Это анализ флагов и преобразование результата сложения (вычитания) BCD-кодов. BCD-операнды обрабатываются обычными командами сложения и вычитания, а затем размещается команда десятичной коррекции.

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

DAA; коррекция после сложения

DAS; коррекция после вычитания.

Например,

ADD AL, y

DAA

SUB AL, DH

DAS

Примечание: BCD-операнды, представленные более, чем одним байтом должны обрабатываться побайтно.

Команды десятичной коррекции модифицирует флаги аналогично п.(а), за исключением флагов AF и OF.

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