Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебник по Микропроцессорам_МИА.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
1.67 Mб
Скачать
  • Fspec определяет имя файла, наименованного в соответствии с соглашениями dos. Для команды l расширением по умолчанию является “exe”;

  • параметр addr задает адрес в формате seg:offset. Если сегмент seg не определен, используется значение по умолчанию. Offset может задаваться по разному: это может быть конкретное значение или результат вычисления выражения. Так, например, выражение может иметь вид: DS:SI+BX-123, или ”*”, где “*” является указателем на следующую инструкцию;

  • Reg – обозначение регистра размером в байт или слово;

  • Value – может принимать значение некоторого регистра или байта/слова в шестнадцатеричном формате. Если value – “*”, то в качестве значения берется содержимое регистра IP. Десятичное значение записывается как %123, можно использовать арифметические выражения, например AX+BX*3/2. Порядок выполнения вычислений строго определен – слева-направо;

  • String задает список значений или ascii строк (строка заключена в кавычки) разделенных пробелами или запятой.

  • Например: 1234 bx, ‘tromb’ ff.

Назначение функциональных клавиш:

F1 - пошаговое выполнение программы с входом в процедуру;

F2 - пошаговое выполнение программы без входа в процедуру;

F3 - повторный запуск программы;

F4 - HELP команд отладчика;

F5 - вход в поле меню установки точек прерывания;

F6 - переключение основного и альтернативного экранов (инициализируется после соответствующей установки);

F7, F8, F9, F10 - установка курсора в нужное поле экрана – up, down, left, right.

Лабораторная работа № 1 Создание выполнимого файла, работа в отладчике, изучение оператора пересылки mov

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

Создание ехе-файла осуществляется в два этапа. Сначала исходный текст программы компилируется и в результате создается объектный файл. В данном случае компилятором является программа tasm.exe, результатом ее работы является файл с расширением "obj". Запуск программы tasm осуществляется следующим образом:

tasm <имя файла с исходным текстом>.

Так, если Вы создали файл с ассемблерной программой revek.asm, то результатом работы программы tasm revek (здесь revek является исходной информацией для tasm) будет файл revek.obj. Следующим шагом в создании ехе-файла является шаг компоновки. Компоновка будет осуществляться следующим образом:

tlink <имя объектного файла> - tlink revek.

В результате выполнения последней операции будет получен выполнимый файл revek.exe.

Оператор mov

Оператор пересылки MOV (переслать, передать) осуществляет пересылку байта или слова из источника (src) в получатель (dst):

dst:=(src)

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

1. MOV mem/reg, mem/reg ;

2. MOV reg, data ;

3. MOV mem/reg, data

4. MOV ac, mem ;

5. MOV mem, ac ;

6. MOV sreg, mem/reg ;

7. MOV mem/reg, sreg,

где ac - аккумулятор, mem - память, reg - регистр, sreg - сегментный регистр

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

Пример использования оператора пересылки MOV:

№ пп

Оператор

1.

Mov ax, bx

;пересылка содержимого регистра BX в AX.

2.

Mov cx, 0e563

;число E563 записывается в регистр СХ.

3.

Mov ver, 34ac

или

Mov [0037], 34ac

;число 34AC заносится в память, в одном случае адрес слова памяти обозначен символической переменной VER, а во втором случае адрес памяти непосредственно указан в программе. В память при этом будет записано два байта т.е. записываемое слово будет размещено в двух ячейках памяти с адресами: 0037 и 0038. При этом младший байт AC будет размещен по младшему адресу, а старший байт 34 - по старшему, поэтому в окне отладчика Вы видите число 34AC как AC34.

4.

Mov al, ver

Или

Mov al, [0037]

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

5.

Mov ver, al

Или

Mov [0037], al

;осуществляется операция обратная выше описанной.

6.

Mov ds, ax

;инициализируется значение сегментного регистра DS. В сегментный регистр нельзя записать число, непосредственно указав его в команде MOV. Эту операцию выполняют, используя какой-либо промежуточный регистр или память. Так, чтобы записать в регистр SS число 3415 необходимо выполнить следующие действия:

MOV AX, 3415h

MOV SS, AX.

7.

Mov [0046], es

;содержимое сегментного регистра ES заносится в память.

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

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

name ex

assume cs:code,ds:dat,ss:stak

stak segment word stack

dw 100 dup(?)

stk_top label word

stak ends

dat segment

; резервирование места в памяти под строку символов, начальный адрес строки - ll

ll db 'ПРИВЕТ учащимся DPTI !!!$'

dat ends

code segment

;начало кодового сегмента

start proc far

push ds

mov ax,0

push ax

mov ax,dat

;инициализация

; сегментных

; регистров

mov ds,ax

mov es,ax

mov ax,600h

;очистка экрана,

mov bh,41h

;установка

mov cx,0

;цветового

mov dx,184fh

;режима

int 10h

mov ah,02

;установить положение курсора

mov bh,00

; на странице 0,

mov dh,12

; в строке 12,

mov dl,20

; в столбец 30

int 10h

; вызов прерывания BIOS

mov ah,09h

;вывод на экран строки

lea dx,ll

;символов, записанных по

int 21h

;адресу ll

mov ah,00

;ожидание ввода символа с экрана

int 16h

ret

start endp

code ends

;конец кодового сегмента

end start