|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
22.12.2020, 23:55 | #1 |
Новичок
Джуниор
Регистрация: 22.12.2020
Сообщений: 1
|
Почему адрес метки, на которую ссылаемся при выполнении команды JBC RI, M2, может не совпадать с ожидаемым в программе MCU 8051 IDE?
Разбираю команды микроконтроллера 8051 в программе MCU 8051 IDE. Я хочу получить машинный код команды JBC RI, M2. ADR M2 = 01Ch. Но есть один момент: 01Ch = 28d и метка M2 должна стоять на 28 строчке, но если пропишу метку на 28 строчке, то программа показывает мне адрес 01Dh. А если я пропишу метку на 27 строчке, то программа показывает нужный адрес 01Ch. Адрес, по которому я решил разместить саму команду JBC RI, M2 равен 10h.
Код:
|
23.12.2020, 01:50 | #2 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,322
|
Потыкал немного эту IDE. Если поставить бряк на nop, который на первой строке, то PC равен нулю. Во-вторых, номер строки может не совпадать с PC, так как инструкции могут быть многобайтовыми.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
|
23.12.2020, 11:14 | #3 |
Старожил
Регистрация: 04.02.2011
Сообщений: 4,573
|
Я в 51-м не совсем копенгаген, но по опыту других МК знаю, что в коротких переходах указывается относительный адрес, поэтому если в 0 записан переход на 5, то в команде будет константа +4 (при выполнении команды по адресу 0 в program counter содержится 1).
А вообще вопрос почему так сделано относится к разряду детсадовских. Сделано и работает так, как посчитал нужным разработчик и описа'л это в ДШ. |
23.12.2020, 11:47 | #4 | |||
Старожил
Регистрация: 23.10.2010
Сообщений: 2,318
|
Даниил Крещетов
Цитата:
http://www.gaw.ru/html.cgi/txt/doc/m...c_bit_re18.htm Цитата:
Цитата:
19d - адрес, куда будет передано управление, если бит не установлен. Считаем от него до метки. Так как показано по тексту имеем: Код:
Как-то так, ...
|
|||
23.12.2020, 14:27 | #5 |
Старожил
Регистрация: 04.02.2011
Сообщений: 4,573
|
Дык для этого ещё доку читать надо. А это такааая скука!
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Почему не рекомендуют применять метки? | Cuprum5 | Общие вопросы C/C++ | 11 | 30.07.2019 10:41 |
Программирование светодиодной матрицы в mcu 8051 | Dager | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 0 | 25.05.2019 14:21 |
[VBA] при выполнении команды UserForm1.Hide возникает ошибка | ЮрийPI118 | Помощь студентам | 1 | 24.10.2018 09:37 |
Макрос для поиска табуляций и выполнении команды | controls | Microsoft Office Word | 0 | 21.05.2017 12:36 |
Максимальная длинная команды, которую может обработать MySQL | vedro-compota | SQL, базы данных | 17 | 18.10.2010 12:19 |