Содержание
- 2. Краткое содержание предыдущей серии Как в ассемблере cortex m3 организована работа с памятью? Зачем нужны длинные
- 3. Краткое содержание этой серии Числа со знаком Операции в языке С Ассемблерные команды, им соответствующие
- 4. Комментарии в Кейле Ne pishite kommentarii translitom Чтобы включить русский язык: edit -> configuration -> encoding
- 5. Двоичные числа Допустим, у нас есть сетка из 4 разрядов. Сколько различных чисел мы можем хранить
- 6. Двоичные числа Допустим, у нас есть сетка из 4 разрядов. Но мы хотим хранить числа со
- 7. Как хранить знак? Как хранить знак, если у вас есть только биты? Например, назначить один бит
- 8. Прямой код Плюсы: «Интуитивно понятен для человека» Удобен при программировании на ассемблере Используется в стандарте IEEE
- 9. А как еще можно хранить знак? Что должно быть? -1 + 1 должно быть равно 0
- 10. Сложение в ограниченной разрядной сетке Допустим, что у нас есть 4 двоичных разряда. В них можно
- 11. Сложение в ограниченной разрядной сетке. Получилось, что в сетке из четырех разрядов 15 + 1 =
- 12. 11112 + 1 = 0 это -1 + 1 11102 + 1 = 1111 2 это
- 13. Дополнительный код
- 14. Дополнительный код На английском – «two’s complement» – «дополнение до двух». Плюсы: Удобная арифметика – вычитание
- 15. Отрицательные числа Но это не единственные способы! Обратный код Нега-двоичная система (по основанию -2) ... Сюрприз:
- 16. Арифметические операции в С +, -, *, / и % их комбинации с = (+=, -+
- 17. Арифметика в ассемблере Целочисленная (в Cortex M3 «родная») С плавающей точкой (в Cortex M3 организована программно)
- 18. Арифметика в ассемблере Сложение ADD r0, r1, r2 – сложение с переполнением (overflow) (короткая и длинная
- 19. Арифметика в ассемблере Что еще за флаг Carry? Пусть мы складываем два десятичных числа из 3
- 20. Арифметика в ассемблере Что еще за флаг Carry? Флаг Carry (он же бит переноса) и есть
- 21. Арифметика в ассемблере Что еще за флаг Carry? ADC – сложение с учетом бита переноса (он
- 22. Арифметика в ассемблере Какие еще есть флаги? С – флаг Carry (перенос) N – флаг Negative
- 23. Примеры Для простоты, пусть у нас есть регистры из 4 бит Сложение без переноса (ADD): +
- 24. Примеры Для простоты, пусть у нас есть регистры из 4 бит Сложение с обновлением регистра состояний
- 25. Примеры Пусть у нас есть регистры из 4 бит, но мы хотим складывать 8-битные числа. Пусть
- 26. Арифметика в ассемблере Вычитание SUB r0, r1, r2 – вычитание, короткая и длинная версии (r0 =
- 27. Арифметика в ассемблере Сложение и вычитание А где в сложении и вычитании учитывался знак? А нигде.
- 28. Арифметика в ассемблере Умножение Допустим, мы умножаем 2 трехзначных числа. Сколько потребуется цифр, чтобы хранить результат?
- 29. Арифметика в ассемблере Умножение
- 30. Арифметика в ассемблере Деление Делить в дополнительном коде, не обращая внимания на знак, к сожалению, нельзя.
- 31. Арифметика в ассемблере Деление UDIV r0, r1, r2 r0 = r1/r2 (беззнаковое деление) SDIV r0,r1,r2 r0
- 32. Деление в С Помните: целочисленное деление на ноль – undefined behavior % (остаток от деления) для
- 34. Скачать презентацию