
ОПЕР СИСТЕМ / ЛР_6_МашКоды
.doc
Лабораторная работа № 6
Машинные коды операционных систем. Использование программы-отладчика Debug.
В упрощенном понимании ОС – это набор сложных программ, которые позволяют управлять работой вычислительной системой. Спектр этих программ постоянно дополняется и изменяется в соответствии с требованиями пользователя. Однако программы, написанные на языках высокого уровня программирования, абсолютно не понятны процессору, который может работать только с числами, записанными в виде определенного машинного кода. Перевод программы, написанной на любом языке программирования, осуществляют двумя методами: трансляцией и интерпретацией.
В настоящей программе предлагается ознакомиться с основными командами встроенной программы-отладчика машинного кода Debug MS DOS. У ОС Win такой служебной программой является программа ntsd.exe. С ее помощью можно увидеть машинный код работающей программы:
-
Что находится в регистрах данных или пользовательских регистрах компьютера;
-
Провести анализ состояния аппаратных и программных средств компьютера на разных стадиях вычислительного процесса.
Вывод программы Debug осуществляется путем набора в командной строке ее имени и нажатием на <ENTER>. Компьютер переходит в режим эмуляции MS DOS. В начале следующей строки появляется значок-приглашение к вводу команды«-» - мигающий минус. Если в этой строке набрать -? , то можно вывести на экран список всех выполняемых программой Debug команд.
Рассмотрим некоторые из них.
-
Quit – выход из программы осуществляется набором буквы g после мигающего курсора.
-
Dump- [диапазон]. С помощью этой команды можно увидеть содержимое областей памяти в машинных кодах (код программы в заданном диапазоне).
Например.
Машинные коды базовой системы ввода-вывода BIOS всегда хранятся в одном и том же диапазоне значений памяти, начиная с адреса F000:0000. Студентам предлагается ввести
-d F000:0000. На экране появится код программы. Это набор обыкновенных байтов. Группы батов выражают команды, числа, символы, адреса в памяти и т.д.
-
unassembled – U[диапазон]
Позволяет выявить связь между машинным кодом и ассемблерным кодом программы. То есть машинный код записывается в виде мнемоник, с которыми пользователю удобнее работать.
Например: при просмотре кода программы можно встретить следующие мнемоники
Адреса |
Машинный код |
Мнемоника |
Комментарий |
0100 |
B0 FE |
MOV AL, 123 |
Загрузить в регистр AL процессора число 123 |
0103 |
00 FF |
ADD BH, BH |
Добавить к числу, содержащегося в регистре BH, число, находящееся в регистре BH. (BH)=(BH)+(BH) |
0106 |
29 C1 |
SUB CX, AL |
Вычесть из числа, находящегося в регистре СХ, число, находящее в регистре AL. (CX):=(CX)-(AL) |
0108 |
93 |
EXCHG BH, AL |
Обменять содержимое регистров BH и AL. |
Студентам самостоятельно предлагается сделать следующие задания:
-
Проверить серийный номер компьютера и «дату копирайта». Эта символьная операция находится в ПЗУ, начиная с адреса FE000h. В ПЗУ можно прочитать о фирме изготовителе, дате изготовления и узнать семизначный номер компьютера.
Наберите команду –d FE00:0 . Сделайте скриншоты полученной информации или перепишите ее c экрана монитора.
-
Проверить дату прошивки ROM BIOS командой - d fff:5.
-
Пронаблюдать работу часов реального времени, используя –d0040:006C.
Четыре байта счетчика располагаются в оперативной памяти, начиная с адреса 0046 Сh. Зафиксируйте эти значения. Через несколько минут повторите команду. Обратите внимания на изменения , произошедшие в первой строке правого столбца. Запишите их.
Список рекомендованной литературы:
-
Информатика. Базовый курс: учебное пособие/ С. В. Симонович [и др.] ; ред. С. В. Симонович. - 2-е изд.. - СПб.: ПИТЕР, 2009. 100 экз.
-
Сетевые операционные системы: учебное пособие/ В. Г. Олифер, Н. А. Олифер. - СПб.: ПИТЕР, 2006. -50экз.
-
Операционные системы: учебник/ А. В. Гордеев. - 2-е изд.. - СПб.: ПИТЕР, 2006. 50 экз.
-
Компьютерные сети : принципы, технологии, протоколы: учебное пособие/ В. Г. Олифер, Н. А. Олифер. - 3-е изд.. - СПб.: ПИТЕР, 2006. - 957 с. - (Учебник для вузов). 15 экз.