Вопросы по теме 'addressing-mode'

Нельзя вычитать регистры в режиме адресации?
Я закончил читать язык ассемблера для ПК и работал над реализацией шифрования RC4 в ассемблере. Чего я не могу понять, так это почему mov eax, [edx+ecx] работает, но mov eax, [edx-ecx] нет. Встроенный ассемблер выдает мне это сообщение...
732 просмотров

инструкция по сборке леи
Я просто хочу убедиться, что я правильно читаю: movl 12(%ebp), %edx leal (%edx, %edx, 4), %eax Я прочитал первую строку как: edx = [epb + 12] , а вторую строку как: eax = edx + edx*4 Кто-нибудь может прояснить? Кроме того, что, если...
24248 просмотров
schedule 21.04.2023

инструкция для x86 lea
Я пытаюсь понять инструкцию LEA в x86: leal (%edx, %edx, 4), %eax leal (%edx, %edx, 2), %eax Учитывая эти две строки, я знаю, что: eax = edx + edx*4 а потом eax = edx + edx*2 Два вопроса. Во-первых, если эти инструкции...
2457 просмотров
schedule 11.05.2022

Как работает этот режим адресации x86?
Что-то вроде al будет содержать адрес esi + ecx + 1 ? movb (%esi, %ecx, 1), %al
851 просмотров

Что означает mov eax, [ebx + ecx * 4] в NASM?
Я только начинаю изучать ассемблер и меня смущают следующие выражения. mov ebx, 2 mov ecx, 3 mov eax, [ebx+ecx*4] С какого адреса данные будут перенесены в eax? И я не понимаю, каков результат вычисления адресов в [ebx + ecx * 4]?
4217 просмотров
schedule 04.01.2024

Сегменты сборки в кодах операций
Я заметил, что в ассемблере в кодах операций используются сегменты. Пример: MOV DWORD PTR SS:[EBP-30],30 Я думаю, что «PTR SS:» используется для указания того, что EBP-30 исходит из стека? (SS: сегмент стека) Я прав или совершенно неправ?...
8956 просмотров

8086 Assembly ADD режим адресации
Здравствуйте, я пишу ассемблерный код для 8086, но мне интересно, как CPU различает, например, AND AX, [адрес в памяти] и AND AX, адрес в памяти мы помещаем [] вокруг него, чтобы указать, что он должен быть заменен содержимым этого адреса, но...
424 просмотров
schedule 13.08.2022

Является ли этот фрагмент ассемблерного кода недействительным?
Я пытаюсь выяснить, является ли следующий фрагмент ассемблерного кода недопустимым. movb $0xF, (%bl) Это недействительно? Если да, то почему? Спасибо.
849 просмотров
schedule 21.06.2023

Сборка 68k - символ плюса в адресных регистрах
Ради интереса реконструируя что-то, я наткнулся на следующий фрагмент сборки: move.b (a1)+,(a0)+ Я понимаю, что скобки означают «значение», но что означает символ «плюс»? Как бы я точно перевел это на C?
931 просмотров

Косвенная адресация памяти movl - сборка
Я пытаюсь понять, как именно косвенная адресация памяти работает на языке ассемблера с синтаксисом AT&T. movl (%eax), %ebx movl %eax, (%ebx) Вот аналогичный вопрос, который объясняет косвенную адресацию памяти Вот что я понял: В...
1058 просмотров
schedule 15.05.2023

Как 68000 внутренне представляет инструкции?
Каким образом 68000 представляет инструкции внутри себя. Я читал, что существуют разные типы инструкций: инструкции формата слова с единственной эффективной операцией, инструкции краткого и полного расширения слова. Команда с одним эффективным...
2164 просмотров

Эмулятор 6502 на C / C ++: как отделить код режима адресации от фактического кода инструкции
В свободное время я начинаю писать очень простой эмулятор C ++ для процессора 6502. Раньше я записывал много ассемблерного кода для этого процессора, поэтому все коды операций, режимы адресации и другие вещи не имеют большого значения. 6502 имеет...
1811 просмотров
schedule 07.01.2023

Базовый + смещенный режим адресации
Мне просто нужно объяснение того, как работают режимы адресации base + offset. Возникли проблемы с поиском четкого ответа на этот вопрос. (Я работал с LC-3, не уверен, что это имеет значение). Также будет полезен простой пример. Благодарю вас!
8244 просмотров
schedule 24.11.2022

В адресации Base + Offset адрес смещения также известен как
В адресации Base + Offset адрес смещения также известен как: (а) Физический адрес (б) Логический адрес (c) Фактический адрес (d) Адрес инструкции д) ни один из них Пожалуйста, ответьте на него. Для меня это может быть (б) или (г)....
4292 просмотров
schedule 12.11.2022

Что означает восклицательный знак в конце инструкции A64?
документация по LDP и STP дает пример инструкции с восклицательным знаком в конце: LDP X8, X2, [X0, #0x10]! Также документация о переносе A32 PUSH/ Инструкции POP в A64 дают следующие примеры: PUSH {r0-r1} ---> STP X0, X1, [SP,...
8510 просмотров
schedule 14.11.2022

Почему эта инструкция MOVSS использует относительную адресацию RIP?
Я нашел следующий код сборки в дизассемблере (логика с плавающей запятой C ++). 842: movss 0x21a(%rip),%xmm0 Я понимаю, что когда процесс rip всегда будет 842, а этот 0x21a (% rip) будет постоянным. Использование этого регистра кажется...
4124 просмотров

Прямая адресация без сегмента в x86?
Кодирование операндов памяти с помощью байта SIB позволяет использовать регистр «none» как для индекса, так и для базы. Итак, это должна быть действующая инструкция: 03 04 25 10 32 54 76 - add eax, dword [ 0x76543210 ] Адрес должен быть...
90 просмотров
schedule 14.08.2022

Существуют ли такие термины, как режим прямой / косвенной адресации, в руководствах Intel x86
Чтобы дать немного предыстории, я хотел изучить, как инструкции x86 кодируются / декодируются вручную. Я наткнулся на байты ModR/M и SIB , и мне кажется, что понимание режимов адресации x86 является фундаментальным для понимания схемы кодирования...
1426 просмотров
schedule 30.03.2022

Адрес доступа RISC больше наибольшего целочисленного регистра
Допустим, вы используете 32-битную RISC-систему. Какие инструкции вы бы использовали для доступа к 64-битному адресу памяти? В наборе инструкций CISC вы можете просто передать дополнительное слово, используя инструкцию, состоящую из нескольких...
926 просмотров

Какой режим адресации используется для инструкции MOV AL, ' * '
Я готовлюсь к экзамену и пока не нашел подобных примеров. Я вижу, что mov al, '*' перемещает символ в регистр, но я не уверен, какой режим адресации используется для этой конкретной функции.
934 просмотров