/bmstu-4th-sem-asm

4th semester in BMSTU - Machine-Dependent Programming Languages

Primary LanguageAssembly

bmstu-4th-sem-asm

4th semester in BMSTU - Machine-Dependent Programming Languages

Машинно-зависимые языки программирования.

Лектор: Кузнецов Д.А. На лекциях быстро рассказывает материал за полпары и отпускает пораньше (примерно с 3-ей лекции). Сам предмет не показался сложным, все вполне себе понятно, книжка Зубкова - наше все, там дофига справочной информации и есть примеры, например, для 7 лабы.

Лабы у нас принимала Волкова А.А. Ей важно понимание студентом того, что написано в коде и в случае чего чтобы мы могли быстро найти какую-то инфу в мане (актуально для первых лаб). С первого раза можно не ответить на ее вопрос, тогда она идет к следующему челу, но скорее всего она намотает 3-4 круга за лабу (или больше), так что ты точно успеешь погуглить и ответить (или пойти погуглить еще). Не душит, принимает комфортно.

Есть два РК, которые проводятся в виде теста в moodle. Довольно простые, если слушал на лекции - сдашь без проблем.

На экзамене (по крайней мере, у нас) давались вопросы и 10 минут на подготовку, когда можно пользоваться вообще всем (кроме одногруппов разве что). Дальше устно отвечаешь и убегаешь. Сдавали на дисте (хотя такие же условия планировались и на очке), так что все сдали без проблем.

Желательно курс этот освоить хорошо, потому что в следующем семестре будет Рязанова, а там без ассемблера и каких-то базовых знаний помрешь.

А так, сдал все лабы плюс-минус вовремя, хорошо написал РК - и отл в кармане)))

Удачи!!!

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

  1. Работа по командной строке cmd + задания по типу "закройте окно без клавиатуры тремя способами" - флешбэки с первых лаб по питону.
  2. Какая-то простая программа, вроде бы изучаем отладчик.
  3. Продолжаем изучать отладчик и смотрим, как работают циклы.
  4. Изучаем 4 программы на ассемблере, которые скинет Кузнецов, и пишем программу из двух модулей или сегментов по заданию (у меня в первом модуле ввести цифру N, затем передать управление с помощью дальнего перехода во второй и там вывести N раз букву A).
  5. Обработка матриц по заданию (у меня в каждом столбце заменить заглавную латинскую букву, имеющую наибольший номер в алфавите, на #).
  6. Программа с менюшкой для перевода чисел в разные системы счисления по заданию (у меня ввод знакового в 16СС, перевод в беззнаковое двоичное и знаковое восьмеричное).
  7. Пишем резидентную программу под DOS с обработчиком прерывания от таймера.
  8. Пишем ассемблерную вставку в коде и отдельным asm-файлом (не помню, под какую архитектуру и ось писал тут, скорее всего под Linux-х64).
  9. Изучаем FPU
  10. Изучаем MMX, SSE.
  11. Пишем графическое приложение на masm32. Тут полезной будет статья https://kaimi.io/2010/09/masm32-%d1%87%d0%b0%d1%81%d1%82%d1%8c-3-%d0%b1%d1%80%d1%83%d1%82%d0%b0%d0%bb%d1%8c%d0%bd%d0%b0%d1%8f-%d0%b1%d0%b5%d1%81%d1%81%d0%b5%d1%80%d0%b4%d0%b5%d1%87%d0%bd%d0%be%d1%81%d1%82%d1%8c/ (тут 3 часть, первые две найдете).
  12. Реверс-инжиниринг. Берем какую-нибудь Иду и дизассемблируем exe-файл, чтобы подобрать пароль.