Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПЗ_4.doc
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
97.79 Кб
Скачать

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

5.1. Изучите приложение к работе;

5.2. Ответьте на вопросы допуска;

5.3. Выполните задания по пунктам 4.1 – 4.2.

6. Содержание:

6.1. Цель и наименование работы;

6.2. Выполненное задание по пунктам 4.1 – 4.2.

7. Контрольные вопросы:

7.1. Приведите пример работы команды OR.

7.2. Приведите пример работы команды AND?

7.3. Перечислите основные команды условных переходов.

7.4. Какая команда условного перехода сработает в фрагменте программы? Если в 400 ячейке памяти лежит число 10h.

CS:0100 MOV BX, 400

CS:0103 MOV AX, [BX]

CS:0105 MOV CX, [BX + 02]

CS:0108 CMP AX, CX

CS:010A JG 0110

CS:010C JL 0115

CS:010E JZ 011A

7.5 Определите значение регистра СХ после выполнения фрагмента программы

MOV AL, 9

MOV BL, 3

DIV BL

CMP AL, BL

JE b1

MOV CX, 12

JMP a1

b1: MOV CX, 10

a1: HLT.

8. Приложение:

8.1. Основные команды языка Assembler

MOV – пересылка данных

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

Команда MOV не может передавать данные между двумя адресами памяти (для этой цели служит команда MOVS).

Пример :

MOV CX, 3

MOV BX, 2

MOV AX, BX

Xchg – перестановка

Действие: пересылает два байта или два слова между регистрами или регистром и памятью.

Пример 1:

MOV CX, 3

MOV BX, 2

XCHG CX, BX

Пример 2:

MOV AX, 7

MOV BX, 400

XCHG AX, [BX]

Команды работы со стеком

PUSH – занесение слова в стек

Действие: сохраняет значение слова в стеке для последующего использования. Регистр SP указывает на вершину стека (в процессе выполнения его содержимое уменьшается на 2).

Допустимые операнды: РОН, сегментный регистр, слово в памяти.

POP – извлечение слова из стека

Действие: передает слово, помещенное ранее в стек, в указанный операнд. Флаги не меняются. Содержимое регистра SP в процессе выполнения увеличивается на 2.

Допустимые операнды: РОН, сегментный регистр, слово из памяти.

Арифметические команды

ADD – сложение двоичных чисел

Действие: прибавляет один байт или одно слово к содержимому регистра или к содержимому ячейки памяти.

Пример 1:

MOV CX, 3

ADD CX, 5

Пример 2:

MOV BX, 400

MOV CX, 23

ADD [BX], CX

Пример 3:

MOV BX, 400

ADD byte ptr [BX], 23

SUB – вычитание двоичных чисел

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

Пример 1:

MOV AX, 4

MOV BX, 3

SUB AX, BX

Пример 2:

MOV AX, 4

MOV BX, 3

SUB BX, AX

Пример 3:

MOV SI, 4

MOV BX, 400

SUB word ptr [BX+SI+124], 23

MUL – беззнаковое умножение двоичных чисел

Действие: умножает беззнаковое множимое (8 или 16 бит) на беззнаковый множитель (8 или 16 бит). Левый единичный бит рассматривается как бит данных, но не как знак минус для отрицательных чисел.

Для 8-битного умножения множимое должно находится в AL, а множитель в регистре или в памяти, например, MUL CL. Произведение получается в регистре AX.

Для 16-битного умножения множимое должно находится в AX, а множитель в регистре или в памяти, например, MUL BX.

Произведение получается в регистровой паре DX:AX.