Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебн пособ по арх и прогр МП.doc
Скачиваний:
65
Добавлен:
10.12.2013
Размер:
1.59 Mб
Скачать

10.4.2.Трансляция.

Производится транслятором MASM.EXE или TASM.EXE. Для этого необходимо набрать в командной строке MS DOS имя транслятора, а затем указать ей имя файла, под которым вы сохранили свою программу в текстовом редакторе. Например: MASM.EXE MYPROG.ASM .

В случае отсутствия ошибок будет создан объектный файл *.obj, который будет являться источником для дальнейшей работы.

10.4.3. Создание исполняемого файла.

Производится программами LINK.EXE или TLINK.EXE, для этих программ входным является Ваш файл *.obj, который формируется транслятором. Работа с компоновщиком LINK.EXE подробно описана в п. 7.13.

10.4.4. Отладка программы в TURBO DEBUGGER’е.

Для отладки программы ее необходимо загрузить в отладчик TURBO DEBUGGER, где в пошаговом режиме можно проследить работу программы. Инструкция по применению TURBO DEBUGGER приведена в ПРИЛОЖЕНИИ.

10.5. Контрольные вопросы и задания

1.Каков диапазон перехода команды JMP SHORT <Метка>:

1) -32768 +32767 байт. 2) -128 +127 байт.

2.Выберите правильный фрагмент программы проверки на наличие переноса из старшего разряда при выполнении сложения. Если перенос был, то происходит переход на метку ERROR:

1) ADD AX, BX 2) ADD AX, BX 3) ADD AX, BX 4) ADD AX, BX

JP ERROR JA ERROR JNA ERROR JC ERROR

3.Каков диапазон перехода команды JMP NEAR Метка:

1) -32768 +32767 байт. 2) -128 +127 байт.

4.Выберите правильный фрагмент программы сравнения беззнакового числа 5 с операндом в регистре AX и переход в случае равенства к метке EQAL. Сравнение происходит только по флагу Z:

1) CMP AX,5 2) CMP 5,AX 3) CMP AX,5 4) CMP 5,AX

JZ EQAL JZ EQAL JNZ EQAL JP EQAL

5.Какая из команд устанавливает в 1 флаг переноса CF?

1) STI 2) CLD 3) STC

6.Выберите правильный фрагмент программы сравнения беззнакового числа 5 с операндом в регистре AX и переход в случае неравенства к метке N_EQAL. Сравнение происходит только по флагу Z:

1) CMP AX,5 2) CMP 5,AX 3) CMP AX,5

JZ N_EQAL JZ N_EQAL JNZ N_EQAL

4) CMP 5,AX 5) CMP 5,AX 6) CMP 5,AX

JP N_EQAL JE N_EQAL JNE N_EQAL

7.Укажите какой из флагов определяет нулевой результат операции:

1)P; 2)NP; 3)Z ;4)NZ .

8.Укажите условие нечетности числа результата операции:

1)NZ; 2)NC; 3)C; 4)NP; 5)NS; 6)S.

9.Укажите условие неравенства двух операндов:

1)NA; 2)NB; 3)E; 4)AB; 5)NE; 6)NL; 7)NG.

10.Выберите правильный фрагмент программы проверки на наличие переноса из старшего разряда при выполнении сложения. Если перенос не был, то происходит переход на метку ERROR:

1) ADD AX, BX 2) ADD AX, BX 3) ADD AX, BX 4) ADD AX, BX

JNC ERROR JA ERROR JNA ERROR JC ERROR

Тема 11. Организация циклов

11.1. Команды управления циклом

Используются при реализации циклов с различными условиями в алгоритмах.

Формат команды:

LOOP <Метка>

Исполнение команды: Производится декремент (уменьшение на 1) содержимого регистра CX и, если CX не равен 0, происходит переход к началу цикла. Регистр флажков не модифицируется.

Команды управления циклами всегда имеют атрибут NEAR . Операнд - метка является 8-битным смещением (относительно текущего состояния указателя команд IP), поэтому команды могут выполнить переход только на 127 байт вперед или на 128 байт назад.

Выполнение команды цикла с условием показано на рис.22.

КомандаLOOP имеет несколько модификаций:

1) Команды LOOPE (LOOPZ) <метка>

Исполняют декремент регистра CX и, если CX не равен 0, а флажок ZF равен 1, происходит переход к началу цикла. Длина команд равна 2 байтам, а время выполнения - 6 тактам (без перехода) и 18 (с переходом). Регистр флажков не модифицируется.

2) Команды LOOPNE (LOOPNZ) <метка>

Исполняют декремент регистра CX и, если CX не равен 0, а флажок ZF равен 0, происходит переход к началу цикла. Длина команд равна 2 байтам, а время выполнения - 6 тактам (без перехода) и 18 (с переходом). Регистр флажков не модифицируется.