Оцените презентацию от 1 до 5 баллов!
Тип файла:
ppt / pptx (powerpoint)
Всего слайдов:
31 слайд
Для класса:
1,2,3,4,5,6,7,8,9,10,11
Размер файла:
276.03 kB
Просмотров:
54
Скачиваний:
0
Автор:
неизвестен
Слайды и текст к этой презентации:
№1 слайд![Есть ли у вас вопросы?](/documents_6/a46bfe5efd545eb861d898ff49a67d72/img0.jpg)
Содержание слайда: Есть ли у вас вопросы?
№2 слайд![Краткое содержание предыдущей](/documents_6/a46bfe5efd545eb861d898ff49a67d72/img1.jpg)
Содержание слайда: Краткое содержание предыдущей серии
Что такое ассемблер?
Что такое процессорные регистры и зачем они нужны?
Как организована память?
Где хранится код?
А как он при этом выглядит?
№3 слайд![Краткое содержание](/documents_6/a46bfe5efd545eb861d898ff49a67d72/img2.jpg)
Содержание слайда: Краткое содержание сегодняшней серии
Системы счисления
Что такое «архитектура» компьютера
Регистры в ARM Cortex M3
Набор команд Thumb 2
Способы адресации в ARM Cortex M3
№4 слайд![Системы счисления Что такое](/documents_6/a46bfe5efd545eb861d898ff49a67d72/img3.jpg)
Содержание слайда: Системы счисления
Что такое система счисления?
Метод записи чисел.
В зависимости от основания системы одна и та же запись означает разное число:
1005 =
1002 =
№5 слайд![Двоичная система Широко](/documents_6/a46bfe5efd545eb861d898ff49a67d72/img4.jpg)
Содержание слайда: Двоичная система
Широко применяется в информатике, программировании и т.д.
Но почему?
Потому что компьютеры очень удобно делать из двоичных электронных компонентов.
№6 слайд![Двоичная система Почему люди](/documents_6/a46bfe5efd545eb861d898ff49a67d72/img5.jpg)
Содержание слайда: Двоичная система
Почему люди не пользуются двоичной системой?
По историческим причинам
Относительно небольшие числа в ней записываются очень длинно:
10 0111 0000 11112 = 999910
№7 слайд![А программисту зачем двоичная](/documents_6/a46bfe5efd545eb861d898ff49a67d72/img6.jpg)
Содержание слайда: А программисту зачем двоичная система?
В низкоуровневом программировании бывает так, что число не несет количественного смысла.
Вместо этого, каждый бит в двоичном представлении числа имеет свой смысл.
№8 слайд![Что делать, если часто нужно](/documents_6/a46bfe5efd545eb861d898ff49a67d72/img7.jpg)
Содержание слайда: Что делать, если часто нужно считать в двоичной системе?
Нужно научиться быстро переводить числа из одной системы в другую.
Как?
Быстро делить в уме
Использовать специальный софт (напр., калькулятор windows)
Использовать шестнадцатеричную или восьмеричную систему
№9 слайд![Шестнадцатеричная система](/documents_6/a46bfe5efd545eb861d898ff49a67d72/img8.jpg)
Содержание слайда: Шестнадцатеричная система (hexadecimal)
В ней 16 цифр, 0..9, А,B,C,D,E и F.
В языке С такие числа записываются с префиксом 0x:
0xFF
Но что все это дает?
№10 слайд![Шестнадцатеричная система](/documents_6/a46bfe5efd545eb861d898ff49a67d72/img9.jpg)
Содержание слайда: Шестнадцатеричная система (hexadecimal)
16 – это 24, поэтому каждая цифра в hex’е – это 4 цифры в двоичной системе!
И переводить числа очень легко:
0x1532
№11 слайд![Если вам не легко То нужно](/documents_6/a46bfe5efd545eb861d898ff49a67d72/img10.jpg)
Содержание слайда: Если вам не легко
То нужно научится считать в двоичной системе от 0 до F:
№12 слайд![В языке С В языке С можно](/documents_6/a46bfe5efd545eb861d898ff49a67d72/img11.jpg)
Содержание слайда: В языке С
В языке С можно использовать три системы счисления:
Десятичную – просто числа, без префиксов
Шестнадцатеричную – числа с префиксом 0x
Восьмеричную – с префиксом 0
В некоторых компиляторах есть нестандартный префикс 0b для двоичной системы
№13 слайд![Подвох Программист для](/documents_6/a46bfe5efd545eb861d898ff49a67d72/img12.jpg)
Содержание слайда: Подвох
Программист для красоты выровнял колонку цифр.
И десятичное 37 превратилось в восьмеричное 037 == 31.
№14 слайд![ARM Advanced RISC Machines](/documents_6/a46bfe5efd545eb861d898ff49a67d72/img13.jpg)
Содержание слайда: ARM
Advanced RISC Machines – британская компания
ARMv1.. ARMv9 – архитектуры ЭВМ
ARM2...ARM11 и Cortex – микропроцессорные ядра
ARM не производит физических устройств, только спецификации
Мы изучаем микроконтроллер STM32F103
ST Microelectronics – производитель чипа
32 – «битность»
F103 - серия
Cortex M3 – ядро (М – означает микроконтроллер) с архитектурой ARMv7
№15 слайд![Что же такое архитектура](/documents_6/a46bfe5efd545eb861d898ff49a67d72/img14.jpg)
Содержание слайда: Что же такое «архитектура компьютера»?
Это сочетание многих системных решений об устройстве компьютера, концептуальная структура, которая включает в себя
Набор ассемблерных команд (instruction set)
«Битность»
Тип памяти (Гарвард или фон Нейман)
Количество и назначение шин
Общие принципы работы
И т. д.
№16 слайд![Что такое битность ? -битный](/documents_6/a46bfe5efd545eb861d898ff49a67d72/img15.jpg)
Содержание слайда: Что такое «битность»?
32-битный компьютер обладает:
32-битными регистрами
32-битной шиной адреса
32-битной шиной данных
Возможно, не все сразу – т.е. понятие это несколько расплывчато.
№17 слайд![Типы архитектур CISC Complex](/documents_6/a46bfe5efd545eb861d898ff49a67d72/img16.jpg)
Содержание слайда: Типы архитектур
CISC – Complex Instruction Set Computer
RISC – Restricted Instruction Set Computer
№18 слайд![Типы архитектур](/documents_6/a46bfe5efd545eb861d898ff49a67d72/img17.jpg)
Содержание слайда: Типы архитектур
№19 слайд![Архитектура ARMv](/documents_6/a46bfe5efd545eb861d898ff49a67d72/img18.jpg)
Содержание слайда: Архитектура ARMv7
RISC-подобная
Набор команд Thumb-2 (совместим с Thumb из ARMv4)
32 бита
фон Неймановская память (единое адресное пространство)
13 регистров общего назначения
Endianness (и еще многое) на выбор производителя
№20 слайд![Набор команд Thumb Большая](/documents_6/a46bfe5efd545eb861d898ff49a67d72/img19.jpg)
Содержание слайда: Набор команд Thumb 2
Большая часть команд длиной 2 байта, есть команды в 4 байта (мнемоники единообразные)
Большая часть команд выполняется за 2 такта (дольше – умножение, деление, множественная загрузка/сохранение и т.д.)
Только целочисленная арифметика
Подробности - ARMv7-M Architecture Reference Manual
№21 слайд![Регистры в ARM Cortex M](/documents_6/a46bfe5efd545eb861d898ff49a67d72/img20.jpg)
Содержание слайда: Регистры в ARM Cortex M3
№22 слайд![Помните машину Тьюринга?](/documents_6/a46bfe5efd545eb861d898ff49a67d72/img21.jpg)
Содержание слайда: Помните машину Тьюринга?
№23 слайд![Как выглядит ассемблер в Keil](/documents_6/a46bfe5efd545eb861d898ff49a67d72/img22.jpg)
Содержание слайда: Как выглядит ассемблер в Keil
№24 слайд![Подробнее о команде Итак, x A](/documents_6/a46bfe5efd545eb861d898ff49a67d72/img23.jpg)
Содержание слайда: Подробнее о команде
Итак, 0x080003A4 2005 MOVS r0,#0x05
означает «по адресу 0x8003A4 хранится: положить в регистр R0 число 5»
А откуда берется число пять?
Оно лежит прямо в коде команды! 2005
Это называется «непосредственная» адресация (immediate)
№25 слайд![Подробнее о команде Итак, x A](/documents_6/a46bfe5efd545eb861d898ff49a67d72/img24.jpg)
Содержание слайда: Подробнее о команде
Итак, 0x080003A4 2005 MOVS r0,#0x05
означает «по адресу 0x8003A4 хранится: положить в регистр R0 число 5»
А где написано, что R0?
Тоже в команде! 2005
Это «регистровая адресация» – один из операндов – регистр и его номер указан прямо в команде.
№26 слайд![Структура команды на примере](/documents_6/a46bfe5efd545eb861d898ff49a67d72/img25.jpg)
Содержание слайда: Структура команды (на примере 16-битной mov)
0x2005 = 0010 0000 0000 0101
Пять старших бит показывают что это, собственно, команда mov
Биты 10, 9 и 8 задают номер регистра
Биты с 7 по 0 задают непосредственный операнд
№27 слайд![А какая вообще бывает](/documents_6/a46bfe5efd545eb861d898ff49a67d72/img26.jpg)
Содержание слайда: А какая вообще бывает адресация?
Косвенность, теоретически, может наращиваться бесконечно - по адресу лежит адрес, по которому лежит адрес, по которому...
(указатель на указатель на указатель...)
№28 слайд![Абсолютная адресация в Cortex](/documents_6/a46bfe5efd545eb861d898ff49a67d72/img27.jpg)
Содержание слайда: Абсолютная адресация в Cortex M3
Команды имеют длину 2 или 4 байта.
Адреса имеют длину 4 байта.
Как же положить адрес прямо в команду?
А никак. В Cortex M3 такого способа адресации нет!
Что же делать?
№29 слайд![Косвенно-регистровая](/documents_6/a46bfe5efd545eb861d898ff49a67d72/img28.jpg)
Содержание слайда: Косвенно-регистровая адресация
Синтаксис – квадратные скобки
LDR R0, [R1,#0x00] – считать в регистр R0 значение, лежащее по адресу «то, что в R1 + 0»
Смещение лежит прямо в команде и может быть от 0 до 4095.
Для адресации глобальных переменных часто используется регистр РС. Но почему?
№30 слайд![Немножко о компиляции языка С](/documents_6/a46bfe5efd545eb861d898ff49a67d72/img29.jpg)
Содержание слайда: Немножко о компиляции языка С
Каждый файл .c компилируется отдельно от остальных и превращается в файл .o – «объектный файл»
Линкер разрешает зависимости между файлами, проставляет вызовы функций
Линкер размещает объектные файлы в памяти
Вывод?
Линкеру удобно положить адрес переменной рядом с кодом, который к ней обращается. Если они в одном файле.
№31 слайд![А где в ассемблере](/documents_6/a46bfe5efd545eb861d898ff49a67d72/img30.jpg)
Содержание слайда: А где в ассемблере учитывается тип?
У команд есть вариации:
W – word – слово – 4 байта
H – halfword – полуслово – 2 байта
B – byte – байт – 1 байт
S – signed – знаковый