Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.10.2010, 21:24   #1
SimplyLesya
 
Регистрация: 22.11.2009
Сообщений: 3
По умолчанию Определение кода команд, мнемоника

Здравствуйте, не подскажете, как перевести команду (в частности mov rax, [rbx+2]) в двоичный код?

а также обратное действие- код 0303

насчет второго-предположила, что это add ax, [bx] права?
0303= 0000 0011 0000 0011 , первая тетрада-код add (0000), последние 6 символов-обозначение приемника и источника (00 0011), где 000- ax(приемник?), a 011 - bx, перед этим еще 2 разряда- 00-обозначают косвенную передачу (кстати, что значит косвенная?) , передача словная(ведь если ax-словная, а если было бы al-была бы байтная?) => 1 в последнем разряде второй тетрады , перед ней 1-тк источник всегда справа, а источником дб ax(в большинстве случаев),а у нас справа bx? расскажите, где ошиблась и для чего 5, 6 разряды?

соображения насчет первого-код mov - 1000(так?), далее не знаю что в 2 разряда писать, в 7-ой 1 тк источником является bx, в 8-ой- 1, тк передача словная (да?), первые 2 разряда 3-ей тетрады-обозначение косвенности, есть смещение(+2-это же смещение? если нет, то что тогда смещение?) на 1 байт(байт ли? на что сдвигаем?) => 1 в 9, 10 разряде 01 , далее 000 -rax, 011- rbx(в кодах совсем не уверена...) присутствует +2 соотв. последняя часть кода будет выглядеть так: 0000 0010 ? получилось 1000 001(?)1 0100 011 0000 0010

и еще, что получится, если к числу 8801 применить команды ror rol sar? это сдвиги? каким будет число на выходе?

Заранее благодарна, спасибо
SimplyLesya вне форума Ответить с цитированием
Старый 07.10.2010, 21:50   #2
SimplyLesya
 
Регистрация: 22.11.2009
Сообщений: 3
По умолчанию

ror - сдвиг вправо, циклический- rol -аналогично влево, они взаимоисключающие? кажется, так. sar- сдвиг вправо , первый бит совпадает со значением старшего разряда
=> полутится 1100 0100 0000 0000 ?

(было 8801= 1000 1000 0000 0001)\

и, конечно насчет байтов в предыдущем посте я погорячилась
SimplyLesya вне форума Ответить с цитированием
Старый 08.10.2010, 04:24   #3
Mikl___
Участник клуба
 
Регистрация: 11.01.2010
Сообщений: 1,139
По умолчанию

SimplyLesya
для начала усвойте, что:
rax, rbx -- это 64-битные регистры
eax, ebx -- 32-битные регистры
ax, bx -- 16-битные регистры
ah, al, bh, bl -- 8-битные регистры
коды команд вместе с подробным описанием самих команд в Instruction_Set_reference.pdf
а чтобы самой разобраться -- есть отличный цикл статей Aquila на WWW.WASM.RU "Заклинание кода: от алеф до зайн" читай -- ничего сложного!

Последний раз редактировалось Mikl___; 08.10.2010 в 04:34.
Mikl___ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Assembler (no *ASM). Мнемоника.Ошибка в коде. sig_GB Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 04.03.2010 01:20
реализация команд с помощью набора других команд zhenyaa Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 5 08.11.2009 21:37
Определение кода нажатой клавиши Fataller Общие вопросы C/C++ 8 07.11.2009 19:29
Список команд W0LF Общие вопросы Delphi 1 18.08.2009 09:28
Выдернуть куски кода из html-кода trafbite Помощь студентам 7 18.08.2007 13:51