Содержание
- 2. Краткое содержание предыдущей серии Как в ассемблере осуществляется сложение и вычитание? В чем опасность умножения? А
- 3. Краткое содержание этой серии Разбор полетов Как же все-таки связан тип переменной и ее адрес Подробнее
- 4. Оформление Отчет нормального человека Отчет, от которого вытекают глаза
- 5. Вот так тоже не надо
- 6. Вот так тоже не надо
- 7. Вот так тоже не надо
- 8. Отступы
- 9. Отступы
- 10. Отступы
- 11. Отступы
- 12. Отступы
- 13. Как же связан тип переменной и ее адрес? Адрес переменной кратен ее размеру в байтах! Это
- 14. Зачем нужно выравнивание? Вспоминаем, как устроена память Если хочется читать, например, по 4 байта за такт,
- 15. Выравнивание Как выглядит невыровненный доступ?
- 16. Последствия Выровненный доступ быстрее (особенно если есть кэш-память) Невыровненный доступ поддерживается не всегда (в Cortex M3
- 17. Что такое padding? Порядок элементов внутри структуры менять нельзя (даже при оптимизации) Но элементы должны быть
- 18. Арифметика в ассемблере Какие еще есть флаги? С – флаг Carry (перенос) N – флаг Negative
- 19. Сравнения в ассемблере CMP r0, r1 temp = r0 – r1, обновить регистр состояний, отбросить temp
- 20. Как работает сравнение и зачем их два? Мы хотим сравнить два числа А и В. Как
- 21. А зачем CMN? Вторым аргументом команды может быть регистр или число. Число должно лежать прямо в
- 22. Что означает флаг V? V – от слова oVerflow означает знаковое переполнение. Зачем он нужен? Знак
- 23. Что означает флаг V? Неверная смена знака – знаковое переполнение. В языке С это undefined behavior.
- 24. А какие команды используют результаты сравнений? Где в языке С используется сравнение? if – else for,
- 25. Переходы в языке С if – else for while do – while switch goto break, continue,
- 26. Несколько слов о goto goto – оператор безусловного перехода: ... some code... P: // метка ...
- 27. goto "В течение нескольких лет я знаком с точкой зрения, что качество программистов это убывающая функция
- 28. goto позволяет писать «спагетти-код» Чему равны а, b, c к строке с точкой останова? Достижима ли
- 29. Типичный сценарий использования goto http://xkcd.com/292/ Вывод: лучше не использовать goto. Без него всегда можно обойтись.
- 30. Ветвление и циклы в ассемблере Безусловные переходы Условные переходы Другие команды с условным исполнением Сравнение с
- 31. Условное исполнение Что это такое? Это когда команда выполняется по условию! Какие бывают условия? Сочетания флагов
- 32. Условное исполнение Примеры постфиксов и расшифровка: LT – Less Then (если меньше, знаковое) GE – Greater
- 33. Условное исполнение В некоторых наборах команд (например, ARMv5) почти все команды могли иметь условное исполнение. В
- 34. Команды перехода Названия в разных ассемблерах разное, суть одна и та же В x86 – команда
- 35. Команда B B адрес – переход по адресу (±16 Мб от текущего положения) BX r0– переход
- 36. Ветвление Разумеется, возможны и другие варианты реализации ветвления. Выбор за компилятором
- 38. Скачать презентацию