
- •Московский институт
- •Лабораторная работа 1.
- •Краткие теоретические сведения
- •Определение типа э в м.
- •Определение объема оперативной памяти.
- •Определение типа адаптера дисплея.
- •Ревизия периферийных устройств.
- •Домашнее задание.
- •Пример вызывающей программы
- •Режим графики
- •Определение времени работы программы
- •Домашнее задание
- •Лабораторная работа 4 Методы защиты программ и данных краткие теоретические сведения
- •Шифрование путем замены.
- •Шифрование путем перестановок.
- •Шифрование с помощью ключа.
- •Домашнее задание
- •Порядок выполнения работы
- •Лабораторная работа 5 Отладчик d e b u g. Краткие теоретические сведения
- •Что такое debug
- •Рабочие регистры
- •Регистры сегментов
- •Регистры смещения
- •Регистр флагов
- •Команды debug
- •Некоторые команды ассемблера
- •Небольшие примеры
- •Домашнее задание
- •Порядок выполнения работы
- •Лабораторная работа 6 Вывод точечной графики для ega адаптера. Циклы и процедуры в ассемблере. Краткие сведения о видеосистемах ibm pc.
- •Программа на ассемблере
- •Пример программы
- •Порядок выполнения работы
- •Лабораторная работа 7 Генерация звука краткие теоретические сведения
- •Пример программы
- •Домашнее задание
- •Небольшие примеры Создание файла
- •Домашнее задание
- •Общие Сведения о системе Вход в систему:
- •Выход из системы:
- •Команда man (оперативный справочник)
- •Команды mount, umount
- •Маршрутные имена файлов
- •Команда who
- •Команда cd
- •Команда pwd
- •Команда mkdir.
- •Команда rmdir.
- •Команда ls.
- •Команда cp.
- •Требуется указать как минимум два аргумента - источник и приемник
- •Команда more и cat
- •Команда mv.
- •Команда chmod
- •Порядок выполнения работы
- •Фильтры и регулярные выражения Команды, изучаемые в данной лабораторной работе:
- •Команда cat
- •Команда tee
- •Команда wc
- •Команда spell
- •Команда sort
- •Команда cut
- •Команда diff
- •Команда grep и fgrep.
- •- I игнорирует регистр - с выводит только число, соответствующее количеству строк с заданным образцом
- •Регулярные выражения
- •Порядок выполнения работы
- •Лабораторная работа 11. Интерпретатор команд Bourne Again Shell (bash). Команды, изучаемые в данной лабораторной работе:
- •Программирование в Bourne Again Shell
- •Команды echo и read
- •Коды завершения
- •Команда test
- •Команды exit и return
- •Команда let
- •Оператор Описание
- •Команда if-then
- •Команда case
- •Команда while
- •Команда for-in
- •Порядок выполнения работы
- •Лабораторная работа 12
- •Shell-программирование: сигналы и прерывания.
- •Хранение файлов во внешней памяти.
- •Общие сведения о системе
- •Команда kill
- •Команда trap
- •Виды действий с сигналами прерываний :
- •Размещение команды trap в программе
- •Выполнение команд в фоновом режиме.
- •Запуск заданий в фоновом/оперативном режиме
- •Команда tar
- •Команда cpio
- •Использование команды find при резервном копировании
- •Порядок выполнения работы
Регистры смещения
IP (указатель команд)
SP (указатель стека)
BP (указатель базы)
SI (индекс источника)
DI (индекс назначения)
В настоящей работе для нас важен регистр IP. В нем хранится адрес (смещение) следующей выполняемой команды. При запуске своих программ не забывайте следить за его содержимым.
Регистр флагов
Описание этого регистра Вы найдете в литературе.
Команды debug
Для запуска программы D e b u g необходимо набрать в командной строке debug, на экране появится приглашение "-" (дефис), в ответ на "?" отладчик выведет список допустимых команд. Кратко рассмотрим работу некоторых из них.
Команда R - позволяет просмотреть все регистры процессора, или изменить их содержимое:
- RAX
AX = 0000 (старое значение AX)
: 3A7 (новое значение AX)
Команда H - шестнадцатеричная арифметика, например для выполнения операций сложения и вычитания двух чисел (B + 1 = С и B - 1 = A) надо ввести команду:
H B 1
000C 000A
Команда Q - выход из отладчика.
Команда A - запись команд ассемблера в ячейки .
-A 100
1234 : 0100 ADD AX, BX (в сотую ячейку помещена команда сложения регистров AX и BX).
Команда E - ввод данных в память начиная с заданного адреса.
Команда U - листинг ассемблерных программ.
Команда T - пошаговое выполнение программы.
Команда G - выполнение всей программы (начиная с адреса в регистре IP) или до заданной команды. Пусть IP = 100, тогда G104 запускает программу с адреса 100 до адреса 104.
Команда N - задает имя программе: N LAB5.COM.
Команда W - запись программы на диск (длина программы в байтах должна быть помещена в CX, регистры AX, BX и DX при этом лучше обнулить).
Некоторые команды ассемблера
MOV AX, BX - переслать число из регистра BX в регистр AX.
MOV AX, 123H - записать в AX число 12316.
ADD AX, BX - сложить содержимое AX и BX.
SUB AX, BX - вычесть содержимое BX из AX.
MUL BX - умножить содержимое AX на BX (ответ помещается в пару регистров - старшие 16 бит в DX, младшие в AX).
DIV BX - разделить содержимое AX на BX (ответ помещается в пару регистров - целое в AX, а остаток в DX).
INT N - выполнить прерывание N.
Небольшие примеры
1. MOV DX, 41 ;поместим в DX код буквы A
MOV AH, 02 ;поместим в AH номер функции вывода символа на экран)
INT 21 ;прерывание для вывода
INT 20 ;возврат в D e b u g
После выполнения программы на экране появится символ A.
2. MOV AH, 09 ;запишем в AH 09 - номер функции вывода строки символов на экран
MOV DX, 0200 ;в DX поместим адрес начала строки
INT 21 ;прерывание для вывода
INT 20 ;возврат в D e b u g
Строка будет печататься до знака $ (доллар). ASCII-код этого символа - 24H. Код символов выводимой строки можно поместить в память командой E200 (при этом данные будут записываться в память начиная с адреса 200).
Для начала записи программы выполните команду A.