реклама на сайте
подробности

 
 
> Нюансы в преобразовании ASM инструкций в двоичный
wanderlust
сообщение Nov 6 2007, 13:05
Сообщение #1





Группа: Участник
Сообщений: 9
Регистрация: 25-08-07
Пользователь №: 30 056



Здравствуйте.

Пробую разобратся с сабжем. И тут у меня возник вопрос следующего типа.
Есть 2 комманды :
1) ADD R0, R0, R0;
2) ADD R0, R0, LSL #0
Если я пробую их записать в двоичной форме, согласно ARM Architecture Reference Manual, у меня получается, что они идентичны бит в бит.
т.е. Код операции у них одинаковый (ADD или 0000); Rd и Rs также нули. Меня смущает запись в параметре Operand2. Согласно вышеуказаному документу Operand2 для первого случая состоит из битов [11:4], которые забиты нулями и поля Rm (4 биты), куда я полагаю вносяться также нули. Operand2 для второго случая состоит из поля shift_imm (5 битов), трёх битов забитых нулями и поля Rm (4 биты), куда как я понимаю тоже надо записать нули... Вот тут я и стопорюсь. Что не так?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
GetSmart
сообщение Nov 6 2007, 15:04
Сообщение #2


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Согласно файлу arm7tdmi.pdf (стр. 52)
1. Оп-код команды ADD = 0100
2. Вторым операндом может быть регистр со сдвигом (8 типов сдвигов и 5 бит = значение сдвига) или непосредственное число со сдвигом.

Формат сдвига описывается на стр. 54. Он может быть непосредственным или взятым из другого регистра.
Короче, второй операнд всегда (!) сдвигается, даже если в команде он опущен.


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
wanderlust
сообщение Nov 7 2007, 06:14
Сообщение #3





Группа: Участник
Сообщений: 9
Регистрация: 25-08-07
Пользователь №: 30 056



Цитата(GetSmart @ Nov 6 2007, 17:04) *
Формат сдвига описывается на стр. 54. Он может быть непосредственным или взятым из другого регистра.
Короче, второй операнд всегда (!) сдвигается, даже если в команде он опущен.

Распишите пожалуйста эти комманды в двоичной форме, для всех 32-х бит. Хочу сверить со своим вариантом.
Go to the top of the page
 
+Quote Post
scifi
сообщение Nov 7 2007, 07:48
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(wanderlust @ Nov 7 2007, 09:14) *
Распишите пожалуйста эти комманды в двоичной форме, для всех 32-х бит. Хочу сверить со своим вариантом.

Правильнее будет, если Вы распишете, а другие сравнят со своим вариантом, если им это будет интересно.
Рекомендую перечитать ARM Architecture Reference Manual (у меня выпуск E), страницы A5-8 и A5-9. Мне кажется, там всё исчерпывающе описано.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 26th July 2025 - 10:44
Рейтинг@Mail.ru


Страница сгенерированна за 0.01403 секунд с 7
ELECTRONIX ©2004-2016