Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие 400211.doc
Скачиваний:
21
Добавлен:
30.04.2022
Размер:
4.09 Mб
Скачать

3.2.6. Команда пуск

Команда ПУСК используется для передачи управления микролабом от клавишного монитора к программе пользователя, записанной в памяти.

Синтаксис:

ПУСК[<АДРЕС>] [ , <АДРЕС ТОЧКИ ПРЕРЫВАНИЯ>] .

После нажатия клавиши ПУСК в адресном поле высвечивается текущее содержимое регистра счётчика команд (IP), в поле данных - содержимое ячейки памяти, адресуемой регистром IP, а на самом первом индикаторе адресного поля загорается точка, указывающая на возможность ввода нового стартового адреса. Если новый адрес необходим, то его вводят с клавиатуры. Управление микролабом передаётся программе после нажатия клавиши «.».

Для выхода из программы пользователя и возврата управления монитору необходимо нажать клавишу СБРОС или ПРЕР. Если была нажата клавиша СБРОС, то происходит инициализация микролаба. При нажатии клавиши ПРЕР вызывается программа монитора, содержимое всех регистров сохраняется, на индикаторы выводится знак команды «-», и монитор переходит к ожиданию ввода новой команды. Если после нажатия клавиши ПРЕР вводится команда ПУСК, то на индикаторы выдаются текущее содержимое IP (смещение адреса команды, которая должна была быть выполнена перед нажатием клавиши ПРЕР) и содержимое ячейки памяти, адресуемой регистрами IP и CS. Нажатие клавиши «.» передаёт управление от монитора к программе пользователя по адресу, формируемому из содержимого регистров IP и CS, и выполнение программы продолжается.

В команде ПУСК можно задавать точку прерывания. Адрес точки прерывания аналогичен по своему действию нажатию клавиши ПРЕР при выполнении программы. При её задании используется значение сегмента, определяемое при вводе стартового адреса. После нажатия «.» монитор сохраняет команду, находящуюся в ячейке с адресом прерывания, а затем передаёт управление программе пользователя. Когда программа достигает точки прерывания, то управление передаётся монитору, при этом команда, соответствующая точке прерывания, не выполняется, все регистры МП сохраняются, и монитор переходит в состояние ожидания команды. На двух старших индикаторах поля данных появляется сообщение br (break - прервать).

Примеры

  1. Запуск программы без точки прерывания.

В таблице 32 приведена программа, которую необходимо ввести в память и запустить на выполнение. Программа вычисляет сумму первых одиннадцати чисел натурального ряда, а также производит логический сдвиг содержимого регистра DX на 10 разрядов. Для выполнения этих действий организован цикл, который начинается с команды INC AX, помеченной меткой А20, и заканчивается командой LOOP A20. На каждом витке цикла команда LOOP вычитает единицу из регистра CX и, если его содержимое не равно 0, передает управление на метку А20, в противном случае осуществляется выход из цикла. В программе также использованы следующие команды:

MOV – в программе осуществляет пересылку байта данных в указанный в команде регистр;

INC AX – увеличивает содержимое регистра AX на единицу;

ADD BX,AX – складывает содержимое регистров BX и AX;

SHL DX,1 – осуществляет логический сдвиг (т.е. сдвиг, рассматривающий знаковый бит как обычный бит данных) регистра DX на 1.

В таблице 33 указана последовательность команд монитора, осуществляющая запуск программы.

Таблица 32

Адрес

Код команды

Текст программы

Комментарии

1

2

3

4

100

103

106

109

10C10D

10F

111

B2

01

00

BB

01

00

BA

01

00

B9

0A

00

40

03

D8

D1

E2

E2

F9

TITLE EX

CODESG SEGMENT

ORG 100H

MOV AX,01

MOV BX,01

MOV DX,01

MOV CX,0A

A20:INC AX

ADD BX,AX

SHL DX,1

LOOP A20

CODESG ENDS

END

Определение сегмента

кода

Адрес начала программы

AX ← 01

BX ← 01

DX ← 01

CX ← OAH

(число циклов)

AX ← (AX)+1

BX ← (BX)+(AX)

DX ← 2 (DX)

CX ← (CX)-1

Если СХ не равен 0,

то цикл повторяется

Таблица 33

Индикация

Команда

Адрес

Данные

Комментарии

1

2

3

4

1

2

3

4

1

2

3

4

СБРОС

-

8

6

1

1.

Сброс

Команда ПУСК

Адрес смещения

ПУСК

0.

Х

Х

1

1.

0

0

.

-

1

1

0

8

0.

0.

6

программы относительно CS. Управление передано к ячейке памяти со смещением 100Н относительно CS