воскресенье, 10 января 2016 г.

Язык программирования Assembler

Для тех, кто всё-таки решился его изучить. Отличные небольшие видео-уроки с кучей практических примеров по этой теме, правда на английском языке.
  1. Assembly Primer For Hackers (Part 1) System Organization - изучаем упрощённую схему компьютера: CPU, память, устройства ввода/вывода и шину, а так же регистры и их структуру.
  2. Assembly Primer For Hackers (Part 2) Virtual Memory Organization - изучаем распределение адресов в виртуальной памяти для каждого процесса в системе Linux, исследуя файл /proc/{proc_id}/maps.
  3. Assembly Primer For Hackers (Part 3) Gdb Usage Primer - отлаживаем простую C программу в отладчике gdb, дизассемблируем её, изучаем содержимое памяти, стэк и регистры.
  4. Assembly Primer For Hackers (Part 4) Hello World - разбираем структуру Assembler программы, смотрим коды системных вызовов и пишем классику "Hello world".
  5. Assembly Primer For Hackers (Part 5) Data Types - исследуем содержимое памяти для переменных различных типов в Assembler, используя отладчик gdb.
  6. Assembly Primer For Hackers (Part 6) Moving Data - пробуем различные способы адресации данных на примере операций mov.
  7. Assembly Primer for Hackers Part 7 Working with Strings - работаем со строками: перемещаем их между регистрами и памятью, а так же сравниваем их.
  8. Assembly Primer For Hackers (Part 8) Unconditional Branching - используем инструкции jmp для безусловных переходов, наподобие goto, и call для вызова функций. 
  9. Assembly Primer For Hackers (Part 9) Conditional Branching - используем условные вызов jmp и разбираем работу вызова loop.
  10. Assembly Primer For Hackers (Part 10) Functions - вызов функции и различные способы передачи аргументов в неё, с использованием регистров или глобальной памяти.
  11. Assembly Primer For Hackers (Part 11) Functions Stack -  как передать аргументы функции, используя стек.
Следующим пунктом для ознакомления может послужить вот эта книга - Programming from the Ground Up

Практика

Изучаем содержимое стека в программе на Assembler: вычисления факториала

Комментариев нет:

Отправить комментарий