Разделы презентаций


Есть ли у вас вопросы?

Содержание

Краткое содержание предыдущей серииЧто такое ассемблер?Что такое процессорные регистры и зачем они нужны?Как организована память?Где хранится код?А как он при этом выглядит?

Слайды и текст этой презентации

Слайд 1Есть ли у вас вопросы?

Есть ли у вас вопросы?

Слайд 2Краткое содержание предыдущей серии
Что такое ассемблер?

Что такое процессорные регистры и

зачем они нужны?

Как организована память?

Где хранится код?

А как он при

этом выглядит?
Краткое содержание предыдущей серииЧто такое ассемблер?Что такое процессорные регистры и зачем они нужны?Как организована память?Где хранится код?А

Слайд 3Краткое содержание сегодняшней серии

Системы счисления

Что такое «архитектура» компьютера

Регистры в ARM

Cortex M3

Набор команд Thumb 2

Способы адресации в ARM Cortex M3

Краткое содержание сегодняшней серииСистемы счисленияЧто такое «архитектура» компьютераРегистры в ARM Cortex M3Набор команд Thumb 2Способы адресации в

Слайд 4Системы счисления
Что такое система счисления?
Метод записи чисел.

В зависимости от основания

системы одна и та же запись означает разное число:

1005 =



1002 =

2510

410

Системы счисленияЧто такое система счисления?Метод записи чисел.В зависимости от основания системы одна и та же запись означает

Слайд 5Двоичная система
Широко применяется в информатике, программировании и т.д.
Но почему?

Потому

что компьютеры очень удобно делать из двоичных электронных компонентов.

Двоичная системаШироко применяется в информатике, программировании и т.д. Но почему?Потому что компьютеры очень удобно делать из двоичных

Слайд 6Двоичная система
Почему люди не пользуются двоичной системой?

По историческим причинам

Относительно небольшие

числа в ней записываются очень длинно:
10 0111 0000 11112 =

999910
Двоичная системаПочему люди не пользуются двоичной системой?По историческим причинамОтносительно небольшие числа в ней записываются очень длинно:10 0111

Слайд 7А программисту зачем двоичная система?

В низкоуровневом программировании бывает так, что

число не несет количественного смысла.

Вместо этого, каждый бит в двоичном

представлении числа имеет свой смысл.

А программисту зачем двоичная система?В низкоуровневом программировании бывает так, что число не несет количественного смысла.Вместо этого, каждый

Слайд 8Что делать, если часто нужно считать в двоичной системе?
Нужно научиться

быстро переводить числа из одной системы в другую.
Как?

Быстро делить

в уме

Использовать специальный софт (напр., калькулятор windows)

Использовать шестнадцатеричную или восьмеричную систему
Что делать, если часто нужно считать в двоичной системе?Нужно научиться быстро переводить числа из одной системы в

Слайд 9Шестнадцатеричная система (hexadecimal)
В ней 16 цифр, 0..9, А,B,C,D,E и F.

В

языке С такие числа записываются с префиксом 0x:
0xFF

Но что все

это дает?
Шестнадцатеричная система (hexadecimal)В ней 16 цифр, 0..9, А,B,C,D,E и F.В языке С такие числа записываются с префиксом

Слайд 10Шестнадцатеричная система (hexadecimal)
16 – это 24, поэтому каждая цифра в

hex’е – это 4 цифры в двоичной системе!

И переводить числа

очень легко:
0x1532

0001

0101

0011

0010

542610 перевести в двоичную систему в уме сложнее

Шестнадцатеричная система (hexadecimal)16 – это 24, поэтому каждая цифра в hex’е – это 4 цифры в двоичной

Слайд 11Если вам не легко
То нужно научится считать в двоичной системе

от 0 до F:

Если вам не легкоТо нужно научится считать в двоичной системе от 0 до F:

Слайд 12В языке С
В языке С можно использовать три системы счисления:

Десятичную

– просто числа, без префиксов

Шестнадцатеричную – числа с префиксом 0x

Восьмеричную

– с префиксом 0

В некоторых компиляторах есть нестандартный префикс 0b для двоичной системы
В языке СВ языке С можно использовать три системы счисления:Десятичную – просто числа, без префиксовШестнадцатеричную – числа

Слайд 13Подвох
Программист для красоты выровнял колонку цифр.
И десятичное 37 превратилось

в восьмеричное 037 == 31.

ПодвохПрограммист для красоты выровнял колонку цифр. И десятичное 37 превратилось в восьмеричное 037 == 31.

Слайд 14ARM
Advanced RISC Machines – британская компания
ARMv1.. ARMv9 – архитектуры ЭВМ
ARM2...ARM11

и Cortex – микропроцессорные ядра

ARM не производит физических устройств, только

спецификации

Мы изучаем микроконтроллер STM32F103
ST Microelectronics – производитель чипа
32 – «битность»
F103 - серия

Cortex M3 – ядро (М – означает микроконтроллер) с архитектурой ARMv7

ARMAdvanced RISC Machines – британская компанияARMv1.. ARMv9 – архитектуры ЭВМARM2...ARM11 и Cortex – микропроцессорные ядраARM не производит

Слайд 15Что же такое «архитектура компьютера»?
Это сочетание многих системных решений об

устройстве компьютера, концептуальная структура, которая включает в себя

Набор ассемблерных команд

(instruction set)
«Битность»
Тип памяти (Гарвард или фон Нейман)
Количество и назначение шин
Общие принципы работы
И т. д.

Что же такое «архитектура компьютера»?Это сочетание многих системных решений об устройстве компьютера, концептуальная структура, которая включает в

Слайд 16Что такое «битность»?
32-битный компьютер обладает:
32-битными регистрами
32-битной шиной адреса
32-битной шиной данных

Возможно,

не все сразу – т.е. понятие это несколько расплывчато.

Что такое «битность»?32-битный компьютер обладает:32-битными регистрами32-битной шиной адреса32-битной шиной данныхВозможно, не все сразу – т.е. понятие это

Слайд 17Типы архитектур
CISC – Complex Instruction Set Computer

RISC – Restricted Instruction

Set Computer

Типы архитектурCISC – Complex Instruction Set ComputerRISC – Restricted Instruction Set Computer

Слайд 18Типы архитектур

Типы архитектур

Слайд 19Архитектура ARMv7
RISC-подобная
Набор команд Thumb-2 (совместим с Thumb из ARMv4)
32 бита
фон

Неймановская память (единое адресное пространство)
13 регистров общего назначения
Endianness (и еще

многое) на выбор производителя

Архитектура ARMv7RISC-подобнаяНабор команд Thumb-2 (совместим с Thumb из ARMv4)32 битафон Неймановская память (единое адресное пространство)13 регистров общего

Слайд 20Набор команд Thumb 2
Большая часть команд длиной 2 байта, есть

команды в 4 байта (мнемоники единообразные)

Большая часть команд выполняется за

2 такта (дольше – умножение, деление, множественная загрузка/сохранение и т.д.)

Только целочисленная арифметика


Подробности - ARMv7-M Architecture Reference Manual

Набор команд Thumb 2Большая часть команд длиной 2 байта, есть команды в 4 байта (мнемоники единообразные)Большая часть

Слайд 21Регистры в ARM Cortex M3

Регистры в ARM Cortex M3

Слайд 22Помните машину Тьюринга?

Помните машину Тьюринга?

Слайд 23Как выглядит ассемблер в Keil
Команда movs r0, #0x05 – поместить

(от слова move) в регистр R0 число 5

Как выглядит ассемблер в KeilКоманда movs r0, #0x05 – поместить (от слова move) в регистр R0 число

Слайд 24Подробнее о команде
Итак, 0x080003A4 2005 MOVS r0,#0x05
означает

«по адресу 0x8003A4 хранится: положить в регистр R0 число 5»

А

откуда берется число пять?
Оно лежит прямо в коде команды! 2005

Это называется «непосредственная» адресация (immediate)

Подробнее о командеИтак, 0x080003A4 2005   MOVS  r0,#0x05означает «по адресу 0x8003A4 хранится: положить в регистр

Слайд 25Подробнее о команде
Итак, 0x080003A4 2005 MOVS r0,#0x05
означает

«по адресу 0x8003A4 хранится: положить в регистр R0 число 5»

А

где написано, что R0?
Тоже в команде! 2005

Это «регистровая адресация» – один из операндов – регистр и его номер указан прямо в команде.
Подробнее о командеИтак, 0x080003A4 2005   MOVS  r0,#0x05означает «по адресу 0x8003A4 хранится: положить в регистр

Слайд 26Структура команды (на примере 16-битной mov)
0x2005 = 0010 0000

0000 0101

Пять старших бит показывают что это, собственно, команда mov

Биты

10, 9 и 8 задают номер регистра

Биты с 7 по 0 задают непосредственный операнд

Поразительным образом все, что делает команда, указано прямо в команде!

Структура команды (на примере  16-битной mov)0x2005 = 0010 0000 0000 0101Пять старших бит показывают что это,

Слайд 27А какая вообще бывает адресация?
Косвенность, теоретически, может наращиваться бесконечно -

по адресу лежит адрес, по которому лежит адрес, по которому...


(указатель на указатель на указатель...)

А какая вообще бывает адресация?Косвенность, теоретически, может наращиваться бесконечно - по адресу лежит адрес, по которому лежит

Слайд 28Абсолютная адресация в Cortex M3
Команды имеют длину 2 или 4

байта.
Адреса имеют длину 4 байта.
Как же положить адрес

прямо в команду?

А никак. В Cortex M3 такого способа адресации нет!

Что же делать?
Абсолютная адресация в Cortex M3Команды имеют длину 2 или 4 байта. Адреса имеют длину 4 байта. Как

Слайд 29Косвенно-регистровая адресация
Синтаксис – квадратные скобки
LDR R0, [R1,#0x00] – считать

в регистр R0 значение, лежащее по адресу «то, что в

R1 + 0»

Смещение лежит прямо в команде и может быть от 0 до 4095.

Для адресации глобальных переменных часто используется регистр РС. Но почему?
Косвенно-регистровая адресацияСинтаксис – квадратные скобкиLDR  R0, [R1,#0x00] – считать в регистр R0 значение, лежащее по адресу

Слайд 30Немножко о компиляции языка С
Каждый файл .c компилируется отдельно от

остальных и превращается в файл .o – «объектный файл»

Линкер разрешает

зависимости между файлами, проставляет вызовы функций

Линкер размещает объектные файлы в памяти

Вывод?
Линкеру удобно положить адрес переменной рядом с кодом, который к ней обращается. Если они в одном файле.

Немножко о компиляции языка СКаждый файл .c компилируется отдельно от остальных и превращается в файл .o –

Слайд 31А где в ассемблере учитывается тип?
У команд есть вариации:
W –

word – слово – 4 байта
H – halfword – полуслово

– 2 байта
B – byte – байт – 1 байт
S – signed – знаковый

А где в ассемблере учитывается тип?У команд есть вариации:W – word – слово – 4 байтаH –

Обратная связь

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика