Skip to content
/ ASM Public

🎓 Ассемблер, BMSTU, 4 семестр, IU7(2018)

License

Notifications You must be signed in to change notification settings

zakolm/ASM

Repository files navigation

Ассемблер 4 семестр BMSTU(Bauman Moscow), IU7, 2018


Автоперенос из GitLab(кафедры), если есть какие-то проблемы или недочеты- отпишите


Ссылка на видеокурс по ассемблеру(Евтихыч) от студента 2015 года:

https://www.youtube.com/channel/UCrCco84KnzhtLEDE2LjMq7g/playlists

Лабораторные работы:

Number Issued Status On GitHub Exercise
1️⃣

Изучение отладчика AFD.

1.HАБРАТЬ ПРОГРАММУ

Примечание: Программа выводит на дисплей сообщение и ожидает нажатия клавиши, код символа помещается в регистр AL

2.ТРАНСЛИРОВАТЬ ПРОГРАММУ

3.СОЗДАТЬ ИСПОЛНЯЕМЫЙ ФАЙЛ

4.ВЫПОЛНИТЬ ПРОГРАММУ ПОД УПРАВЛЕНИЕМ ОТЛАДЧИКА AFD

2️⃣

ЗАДАНИЕ 1

отладка в CV (CodeView)

шаг 1- Подготовить приведенную ниже программу к отладке:
а) скопировать текст программы в файл KR_1.ASM;
б) выполнить трансляцию: MASM /Zi KR_1.ASM,,;
в) выполнить компоновку: LINK /CO KR_1.OBJ;
3️⃣

ШАГ 1

- Подготовить приведенную ниже программу к отладке в CV и выполнить работы, описанные в тексте программы.

ШАГ 2

- Проследить за выполнением команд от M1 до M6 и изменением переменных и регистров. Сформулировать условие задачи, решаемой программой. Назначение некоторых команд:
TEST A,B ~ A&B и установка флагов по результату
LOOP M ~ CX:=CX-1 и переход на М, если CX<>0.

ШАГ 3

- Составить файл ЛР02-2.INP с командами CV так, чтобы его выполнение привело к созданию файла ЛР02-2.OUT, содержащего весь вывод в окно диалога. Этот вывод должен содержать на метках M1 ... M6 следующую информацию:
а) значения регистров, флагов и текущую команду программы,
б) значения переменной K.
4️⃣
5️⃣
6️⃣
7️⃣
8️⃣
9️⃣
1️⃣0️⃣
1️⃣1️⃣
1️⃣2️⃣

Вопросы к экзамену:

  1. Архитектура МП 8088 и 80386

  2. Характеристики регистров.

  3. Флаги.

  4. Сегментные регистры по умолчанию.

  5. Образование физического адреса.

  6. Сегментный префикс.

  7. Структура программы одномодульной MS DOS. Повторные описания сегментов.

  8. Возможные структуры кодового сегмента.

  9. Возможные способы начала выполнения и завершения программы MS DOS типа .exe.

  10. Структура программы из нескольких исходных модулей MS DOS.

  11. Переменные, метки, символические имена и их атрибуты.

  12. Виды предложений языка Ассемблер.

  13. Директивы (псевдооператоры): назначение и формы записи.

  14. Стандартные директивы описания сегментов: формат записи заголовков директив и назначение параметров.

  15. Возможные комбинации сегментов и умолчания.

  16. Директива ASSUME.

  17. Структура процедур.

  18. Директива END.

  19. Внешние имена.

  20. Типы данных и задание начальных значений.

  21. Способы описания меток, типы меток.

  22. Команды условных переходов при работе с ЦБЗ и ЦСЗ.

  23. Команды организации циклов.

  24. Директива ORG.

  25. Способы адресаци.

  26. Организация рекурсивных подпрограмм.

  27. Арифметические команды (для ЦБЗ и ЦСЗ)

  28. Связывание подпрограмм.

  29. Команда CALL. Использование прямой и косвенной адресации.

  30. Способы передачи параметров подпрограмм.

  31. Способы сохранения и восстановления состояния вызывающей программы (кто выполняет и в чьей памяти)

  32. Соглашения о связях в Turbo Рascal, Turbo C, Delphi, VS C++

  33. Команды сдвига.

  34. Команды логических операций.

  35. Команды обработки строк и префиксы повторения.

  36. Команды пересылки строк.

  37. Команды сравнения строк.

  38. Команды сканирования строк.

  39. Команды загрузки строк.

  40. Команды сохранения строк.

  41. Листинг программы.

  42. Макросредства.

  43. Описания макроопределений (макрофункций и макропроцедур) и макрокоманд.

  44. Директива INCLUDE.

  45. Рекурсия в макроопределениях.

  46. Параметры в макросах.

  47. Директива LOCAL.

  48. Директивы условного ассемблирования IF, IFE, IF2, IFIDN/IFIDNI, IFDIF/IFDIFI, IFDEF, IFNDEF и связанные с ними конструкции.

  49. Директивы IFB и IFNB в макроопределениях.

  50. Директивы IFIDN и IFDIF в макроопределениях.

  51. Операции ;; % & < > ! в макроопределениях.

  52. Блок повторения REРT.

  53. Блок повторения IRР/FOR.

  54. Блок повторения IRРC/FORC.

  55. Блок повторения WHILE.

  56. Директива EQU в MASM.

  57. Директива TEXTEQU в MASM32.

  58. Директива = в MASM.

  59. Типы макроданных text и number (см листинг)

  60. Именованные макроконстанты MASM32

  61. Макроимена, числовые и текстовые макроконстанты - значения.

  62. Директивы echo и %echo

  63. Способы вывода значений макропеременных и макроконстант с пояснениями

  64. Операций в выражениях MASM:

  • Арифметические операции.
  • Логические операции.
  • Операции отношений.
  • Операции, возвращающие значения.
  • Операции присваивания атрибута.
  1. Подготовка ассемблерных объектных модулей средствами командной строки для использования в Delphi и VS C++.

  2. Добавление ассемблерных модулей в проект консольного приложения VS C++

  3. Добавление ассемблерных модулей в проект консольного приложения Delphi

  4. Использование ассемблерных вставок в модулях .cpp.

  5. Вызов из ассемблерной подпрограммы C в VS C++.

  6. Передача глобальных данных, определённых в консольной прогрпмме VS C++, в ассемблерный модыль.

  7. Передача глобальных данных, определённых в ассемблерном модуле в консольнй модуль .cpp VS C++.

  8. Средства отладки в CodeView. Примеры.

  9. Средства отладки в VS C++. Примеры.

  10. Получение дизассемблированного кода в VS C++