- •4.1. Как записываются общие команды передачи данных на Ассемблере? Что может использоваться в качестве операндов команды?
- •4.2. Для чего предназначена команда lea и что является ее операндами?
- •4.18. Как через меню отладчика запустить программу на выполнение?
- •4.19. В каком окне можно наблюдать результат выполнения программы?
- •4.20. Что такое трассировка программы и как она осуществляется в отладчике?
- •Листинг prog_3
- •Создание prog_3.Exe
4.18. Как через меню отладчика запустить программу на выполнение?
Для того, чтобы отладить программу, нужно предварительно загрузить ее в TD. Программа должна быть предварительно оттранслирована ассемблером (TurboAssembler, Macro Assembler и др.) и преобразована в файл типа COM или EXE при помощи редактора связей (LINK, TLINK или других).
Войдите в меню FILE и выберите в нем пункт OPEN (нажмите[F10]; с помощью клавиш курсора влево/вправо выберите пункт File; нажмите [ENTER] - на экране появится подменю, содержащее команды; выберите в нем пункт OPEN, и нажмите [ENTER]). На экране появится окно загрузки файла, содержащее в верхней части строку для ввода
имени файла. Наберите в ней имя Вашего файла, например: C:\WORK\ASM\PROGRAM.EXE ,и нажмите [ENTER]
4.19. В каком окне можно наблюдать результат выполнения программы?
окно CPU
4.20. Что такое трассировка программы и как она осуществляется в отладчике?
Трассировкой называют процесс пошагового выполнения программы. В Turbo Debugger это осуществляется при помощи клавиш [F7] и [F8]. По нажатию любой из них происходит выполнение текущей (помеченной символом треугольника в окне CPU) ассемблерной команды, после чего отображается новое содержимое регистров, областей данных, вершины стека и TD возвращается к ожиданию нажатия клавиши. А ресурсы ,участвующие в выполнении команды, выделяются цветом.
-
Листинг prog_3
Data SEGMENT
A DB ?
B DB ?
C DB ?
D DB ?
Data ENDS
Ourstack SEGMENT Stack
DB 100h DUP (?)
Ourstack ENDS
ASSUME CS:Code, DS:Data, SS:Ourstack
Code SEGMENT
Start: mov AX, Data
mov DS, AX
mov A, 5
mov B, 2Eh
mov C, 18h
mov D, 11
mov AL, A
mov AH, B
xchg AL, AH
mov BX, 3E10h
mov CX, BX
push BX
push CX
lea SI, C
mov AX, SI
lea DI, D
mov BX, DI
pop CX
pop BX
pop AX
mov A, AL
mov B, AH
mov C, 0
mov AX, 4C00h
int 21h
Code ENDS
END Start
Команда XCHG (Exchange Data, или Обмен данными) позволяет обменять содержимое двух операндов.
-
Создание prog_3.Exe
Вариант 8 |
||||||
№ строки |
Команда Ассембл-ера |
Машин-ный код |
Длина машин-ного кода |
Логичес-кий адрес в памяти |
Физический адрес в памяти |
Состояние регистров и флагов |
Prog_3 1
|
Mov DS, AX |
8ED8 |
2 |
534C:0003h |
534C3h |
|
2 |
Mov A,5 |
C606000005 |
5 |
534C:0005h |
534C5h |
|
23 |
Mov AX 4C00h |
B8004C |
3 |
534C:0042h |
53502h |
|
24 |
Int 21h |
CD21 |
2 |
534C:0045h |
53505h |
|
Hello_2 7
|
Mov AL, 0 |
B000 |
2 |
534E:0013h |
534F3h |
|
8 |
Mov AH, 4C |
B44C |
2 |
534E:0015 |
534F5h |
|