Например TDA7294

Форум РадиоКот :: Просмотр темы - Disassembler Keil stm32
Форум РадиоКот
http://radiokot.ru/forum/

Disassembler Keil stm32
http://radiokot.ru/forum/viewtopic.php?f=59&t=162351
Страница 1 из 1

Автор:  shevelev_es [ Вс апр 14, 2019 19:14:23 ]
Заголовок сообщения:  Disassembler Keil stm32

Подскажите, почему после выполнения строки
0x08000100 4806 LDR r0,[pc,#24] ; @0x0800011C
в регистр R0 оказывается адрес 0х08000BE9
понимаю, что это связано с адресом SystemInit, но почему на единицу больше.
И второе, команда LDR r0,[pc,#24] - должна записать в R0 текущее значение PC+24. В начальный момент PC = 0x08000100. Если прибавить 24, то = 0х08000124, а на 0x08000BE9.

Никак не могу найти информацию. Все справки пишут - записать значение в регистр такой- то, значение PC со смещением. В данном случае смещение 24, а результат 0x08000BE9.

Спасибо!

Вложения:
next.png [109.39 KiB]
Скачиваний: 106
start.png [113.4 KiB]
Скачиваний: 69

Автор:  N1X [ Вс апр 14, 2019 23:57:19 ]
Заголовок сообщения:  Re: Disassembler Keil stm32

Дело в том, что увеличение регистра PC происходит сразу после выборки команды из памяти. Т.е. PC указывает на следующую инструкцию, а не на текущую.

Автор:  shevelev_es [ Пн апр 15, 2019 18:16:22 ]
Заголовок сообщения:  Re: Disassembler Keil stm32

Спасибо. А про смещение - pc, #24, есть возможность пояснить.

Автор:  VladislavS [ Пн апр 15, 2019 18:44:02 ]
Заголовок сообщения:  Re: Disassembler Keil stm32

Ну что там пояснять то? Чтение по адресу PC+24. Загляни что по адресу 0х0800011С лежит?

Страница 1 из 1 Часовой пояс: UTC + 3 часа [ Летнее время ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/