5. Программа «debug»
Для просмотра содержимого регистров (ячеек) ОЗУ, с конкретными адресами, можно использовать программу «Debug». Для запуска этой программы необходимо ввести имя программы - debug, с командной строки программы «FAR manager» или «Пуск – Выполнить», далее «Enter», после чего на экране появиться диалоговое окно и приглашение в виде дефиса, что свидетельствует о готовности программы к приему команд.
Команда D (diplay) - просмотр ячеек памяти. Например, характеристика компьютера, «зашита» заводом изготовителем по адресу fe00:0, чтобы увидеть ее, следует ввести (латинский шрифт можно вводить большими и маленькими буквами):
d fe00:0 (и нажать «Enter»),
дата в формате mm/dd/yy, по адресу d fffff:5
Зная адрес ячейки памяти, с помощью команды D можно просмотреть ее содержимое. Можно «пролистать» память, периодически вызывая команду D.
Для окончания работы программы необходимо ввести команду Quit.
Команда Т (трассировка) – программа выдает на экран содержимое регистров процессора, флаги готовности, а также следующую команду.
Команда A (assembler) – режим работы программы с командами языка Assembler.
-a («Enter»), появиться адрес ячейки, куда можно записать команду:
0b27:010b mov al,25 («Enter»)
0b27:010a mov bx,2f («Enter»)
…………………………. («Enter»)
0b27:010a (Enter) (выход из режима ввода ассемблерных кодов)
Далее можно просмотреть содержимое регистров командой Т.
6. Инициализация портов
Подпрограмма BIOS инициализирует порт коммуникации. В регистре процессора DX должен находиться номер последовательного коммуникационного канала (0, если СОМ1 и 1 если СОМ2) - порта. В регистре AL должен содержаться байт инициализирующих данных, который определяет формат слова при передаче.
Например, фрагмент программы языка высокого уровня паскаль, инициализирующей порт СОМ 1, имеет вид.
program init_Port;1 {файл port1.pas}
USES CRT;
VAR
WD {ДЛИНА СЛОВА},
STOP {ЧИСЛО СТОП-БИТ},
PARITY {ЧЕТНОСТЬ},
BD:BYTE; {СКОРОСТЬ}
BEGIN
ASM { Вставка на языке ASSEMBLE}
MOV WD, 00000011B {8 БИТ} {команда MOV пересылает переменным}
MOV STOP, 00000100B {2 СТП-БИТ} {команда MOV пересылает переменным} MOV PARITY, 00011000B {ЧЕТ} {B – в конце, означает, что число}
MOV BD, 11100000B {9600 бод} {заданно в двоичной системе}
XOR AX,AX {очищает регистр}
OR AL,WD
OR AL,STOP
OR AL,PARITY {в регистры процессора AL пересылаются байты инициализации}
OR AL, BD
MOV AH,0
MOV DX,1 {инициализация порта СОМ 1}
int 14h {подпрограмма BIOS инициализации порта}
END;
END.
Регистры процессора можно просмотреть редактором языка PASCAL (окно Registr), выполняя программу в пошаговом режиме по F8. Рассмотреть работу операторов – XOR, OR