![](/user_photo/2706_HbeT2.jpg)
- •DOS DEBUG
- •ПРИМЕР МАШИННЫХ КОДОВ: НЕПОСРЕДСТВЕННЫЕ ДАННЫЕ
- •http://exelab.ru/pro/asm/01.php
- •Далее Трассировка машинных команд
- •http://exelab.ru/pro/asm/01.php
- •До 4-ой главы ВОПРОСЫ ДЛЯ САМОПРОВЕРКИ
- •Цикл выполнения команд
- •Создание циклов в программах
- •Макро и Endm
- ••Синтаксис макроопределения следующий: имя_макрокоманды macro список_формальных_аргументов тело макроопределения endm Где должны располагаться макроопределения?
- •http://assembler13.narod.ru/guide/T
- •Способы адресации Построить сегменты и создать exe файлы
- •Использование Ассемблера в Delphi
DOS DEBUG
-выполним упражнения http://exelab.ru/pro/asm/01.php
•Р а з м е р п а м я т и. Проверим размер доступной для работы памяти. В зависимости от модели компьютера это значение связано с установкой внутренних переключателей и может быть меньше, чем реально существует. Данное значение находится в ячейках памяти шест.413 и 414 и его можно просмотреть из DEBUG по адресу, состоящему из двух частей: 400 - это адрес сегмента, который записывается как 40 (последний нуль подразумевается) и 13 - это смещение от начала сегмента. Таким образом, можно ввести следующий запрос: D 40:13 (и нажать Return)
•И т.п.
![](/html/2706/752/html_RcdOQgh2sB.A2Kd/htmlconvd-4_9THq2x1.jpg)
ПРИМЕР МАШИННЫХ КОДОВ: НЕПОСРЕДСТВЕННЫЕ ДАННЫЕ
http://exelab.ru/pro/asm/01.php
![](/html/2706/752/html_RcdOQgh2sB.A2Kd/htmlconvd-4_9THq3x1.jpg)
http://exelab.ru/pro/asm/01.php
Далее Трассировка машинных команд
![](/html/2706/752/html_RcdOQgh2sB.A2Kd/htmlconvd-4_9THq5x1.jpg)
http://exelab.ru/pro/asm/01.php
До 4-ой главы ВОПРОСЫ ДЛЯ САМОПРОВЕРКИ
•______________________________________________________
3.1. Какие команды заставляют ассемблер печатать заголовок в начале каждой страницы листинга и делать прогон листа?
•3.2. Какие из следующих имен неправильны: а) PC_AT, б) $50, в) @$_Z, г) 34B7, д) AX?
•3.3. Какое назначение каждого из трех сегментов, описанных в этой главе?
•3.4. Что конкретно подразумевает директива END, если она завершает а) программу, б) процедуру, в) сегмент?
•3.5. Укажите различия между директивой и командой.
•3.6. Укажите различия в назначении RET и END.
•3.7. Для сегментов кода, данных и стека даны имена CDSEG, DATSEG и STKSEG соответственно. Сформируйте директиву ASSUME.
•3.8. Напишите три команды для инициализации стека адресом в DS и нулевым адресом.
Цикл выполнения команд
Вобщем случае цикл команды включает в себя несколько составляющих (этапов):
•выборку команды;
•формирование адреса следующей команды;
•декодирование команды;
•вычисление адресов операндов;
•выборку операндов;
•исполнение операции;
•формирование признака результата;
•запись результата.
Создание циклов в программах
•На экран выводятся символы с кодами от 32 до 254
•Следующую программу выполнить и получить листинг, результат.
![](/html/2706/752/html_RcdOQgh2sB.A2Kd/htmlconvd-4_9THq9x1.jpg)
Макро и Endm
•Макрокоманда представляет собой
строку, содержащую некоторое символическое имя — имя макрокоманды, предназначенную для того, чтобы быть замещенной одной или несколькими другими строками.
Имя макрокоманды может сопровождаться параметрами.