Тема 1.9. Ввод и выполнение программ
Соотнесите простейший вариант вызова программы ассемблирования
source filename [.ASM]:
object filename [filename.OBJ]:
source listing [NUL.LST]:
crossreference [NUL.CRF]:
необходимо указать имя файла и тип файла
аналогичное имя файла
листинг ассемблирования программы не требуется.
листинг перекрестных ссылок не требуется.
Если необходимо проверить сгенерированный машинный код то потребуется указание … файла
OBJ
EXE
LST
CRF
(в)
Шаг ассемблирования включает в себя трансляцию исходного кода в машинный объектный код и генерацию … модуля.
OBJ
EXE
LINK
DOS
(a)
Программа LINK, находящаяся на диске DOS, выполняет следующее:
1. Завершает формирование в OBJмодуле адресов
2. Компонует, более одного отдельно ассемблированного модуля в одну загрузочную программу
3. Инициализирует EXEмодуль командами загрузки
Для компоновки ассемблированной программы введите
Object Modules [.OBJ]: имя программы (Компонует имя программы.OBJ)
Run file [имя программы.EXE]: (Создает имя программы.EXE)
List file [NUL.MAP]: CON
(Создает имя программы.MAP)
Libraries [.LIB]: [Enter] (По умолчанию)
Для получения CRF файла, необходимо ввести:
cross-reference [NUL.CRF]:C: [Enter]
Cref filename [.CRF]: List filename [crossref.REF]:
ERASE C:имя программы.OBJ, ...
DEBUG C:имя программы.EXE
(а)
Если EXE-файл находится на дисководе C, то выполнить ее можно последовательностью команд:
C:имя программы.EXE или C:имя программы
DEBUG C:имя программы.EXE
D SS:0
D CS:0
Введите R и выполните программу с помощью команды T
Программа для проверки свободного места на диске
CHKDSK
CREF
DOS PRINT
PRINT
(а)
Проверить наличие файлов на диске:
DIR C:имя программы.*
ERASE C:имя программы.OBJ, ...
DEBUG C:имя программы.EXE
C:имя программы.EXE или C:имя программы()
(а)
Тема 1.13. Выполнение программ
Дата ROM BIOS в формате mm/dd/yy находится по адресу
D FFFF:05 (и нажмите Enter)
D FFF:04 (и нажмите Enter)
D FFFFF:06 (и нажмите Enter)
D FFFFF:05 (и нажмите Enter)
(a)
Ассемблерный мнемонический код, соответствующий введенной машинной команде
MOV AX,0123
MOV AН,0123
MOV AL,0123
MOV AN,0123
(a)
Размер доступной для работы памяти шест.413 и 414 и его можно просмотреть из DEBUG по адресу, состоящему из двух частей
D 40:13 (и нажать Enter)
D 44:13 (и нажать Enter)
D 40:14 (и нажать Enter)
D 43:14 (и нажать Enter)
(а)
Соотнесите Адрес в DS (Номера байтов) и Шест. знач.
0000 (0 и 1) 2301
0002 (2 и 3) 2500
0004 (4 и 5) 0000
0006 (6, 7 и 8) 2A2A2A
Если DS содержит шест.04B1, то результирующий адрес данных определяется последовательность:
DS: 04B10
Смещение: 0012
Адрес данных: 04B22
Определение размера памяти требует ввода последовательности
Загрузите в память DEBUG машинные коды: E CS:100 CD 12 CB
Нажать R (Enter) для отображения содержимого регистров.
Нажать T (и Enter) несколько раз и просмотреть выполняемые команды BIOS.
Введите еще раз команду T для выхода из BIOS и возврата в вашу программу.
На экране появится команда RET для машинного кода CB.
Директива …, вызывает выравнивание данных и команд на четные адреса памяти
EVEN
INT
VEN
INIT
(a)
Для сохранения программы из отладчика для небольшой по объему программы следует выполнить последовательность:
вызвать отладчик DEBUG
с помощью команд A (assemble) и E (enter) написать программу
присвоить программе имя: N имя файла.COM [Enter]
Для сохранения программы в COM необходимо выполнить последовательность:
запросить регистр CX командой: R CX [Enter] — отладчик
выдаст на этот запрос CX 0000 (нулевое значение)
указать длину программы — 6
записать измененную программу: W [Enter]
