![]() |
|
|
![]()
|
|
| savigm |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 88 Регистрация: 15.12.2008 Где: г. Зеленоград Репутация: нет Всего: нет |
Нужно переставить байты местами с Big-Endian на Little-Endian, т.е. 4->1, 3->2, 2->3, 1->4.
Я это сделал с использованием двух регистров, помимо исходного(архитектура MIPS32):
Исходный регистр a0, результат в v0. Вопрос: можно ли сделать то-же самое с использованием одного регистра, помимо исходного? |
|||
|
||||
| sgi1981 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 284 Регистрация: 16.3.2006 Репутация: 7 Всего: 10 |
Существует инструкция bswap (машинный код 00001111:11001reg). В качестве операнда 32-bit архитектуры может быть указан только 32-разрядный регистр.
-------------------- Тело в нашем пространстве - есть часть пространства, в которой пространство обладает дисторсией относительно внешнего пространства. |
|||
|
||||
| savigm |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 88 Регистрация: 15.12.2008 Где: г. Зеленоград Репутация: нет Всего: нет |
Это для x86? Что-то в mips32 я не нашел такой инструкции. Смотрел в MIPS32® Architecture For Programmers Volume II: The MIPS32® Instruction Set. Можно скачать с mips.com, только нужна регистрация вроде. |
|||
|
||||
| Logree |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 331 Регистрация: 22.11.2006 Где: Самара Репутация: 1 Всего: 2 |
Есть такая книжка Алгоритмические трюки для программистов Генри Уоррен, мл. Я думаю там есть всё что тебе может потребоваться, конкретно по твоему вопросу смотри главу 7.
-------------------- Самый распространенный способ дебага пятиста строк ассемблерного кода - очень долгий, очень пристальный и очень задумчивый взгляд. |
|||
|
||||
| savigm |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 88 Регистрация: 15.12.2008 Где: г. Зеленоград Репутация: нет Всего: нет |
Смотрел уже, там алгоритмы для Си, и примеры вроде только для манипулирования битами, а не байтами, хотя в названии главы и указываются биты и байты. Вообщем факт, нужно два доп. регистра иначе никак. В MIPS32 просто нет таких операций, чтобы не использовать два доп. регистра. |
|||
|
||||
| airyashov |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 284 Регистрация: 1.7.2008 Репутация: 2 Всего: 6 |
у Вас есть команда WSBH RD, RS
Это сообщение отредактировал(а) airyashov - 16.10.2009, 07:26 -------------------- icq:3(один)7748666 mail:airyashov( а )inbox.ru |
|||
|
||||
![]()
|
| Правила форума "Asm: Общие вопросы" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Asm: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |