Описание тега immediate-operand

1 ответ

x64 MOV 32-битный непосредственный в 64-битный регистр

Вторая инструкция на этой странице в разделе кода: https://i.imgur.com/LIImg.jpg Выглядит так: MOV r9d, 0, Закодировано так: 41 B9 00 00 00 00 Единственная проблема... Там нет MOV инструкция в руководстве Intel x64, которая берет 4-х байтовый файл и…
1 ответ

Как добавить непосредственный байт в длинный регистр с синтаксисом AT&T на x86?

Из того, что я понимаю, читая руководства Intel, можно написать инструкцию вроде add $0x7f, %ebx и это должно быть закодировано как 83 /0 ib в общей сложности три байта. Тем не менее, когда я делаю это (использую ли я add, addb, или же addl) он всег…
07 дек '11 в 02:30
1 ответ

Диапазон непосредственных в инструкции lui

Я не уверен, какой диапазон ограничен для непосредственного в lui инструкция. Когда я собираюсь: lui $t0,32768 Успешно прошло без ошибок. Тем не мение, lui $t0,-32768 уведомил, что -32768 вне диапазона.
25 ноя '18 в 13:20
2 ответа

Указание 8-битного немедленного в x86-64 (GNU Assembler)

Я пытаюсь написать некоторую специальную подпрограмму на ассемблере, для x86-64 (даже пример x86 подойдет) Проблема: мои немедленные решения разрешаются только во время ссылки. Например, addq $Label2-Label1, %rax добавит разницу между двумя метками …
20 авг '14 в 18:10
2 ответа

Как преобразовать / закодировать отрицательное число как непосредственное в машинном коде MIPS

Я хочу изменить эту инструкцию на двоичный или машинный код:addi $s3, $s1, -1000, Я знаю, как закодировать код операции, rs, а также rt, но я не знаю, как конвертировать -1000 в двоичный файл Я знаю, как получить 1 дополнение и 2 дополнение. Но я не…
0 ответов

Непосредственное понимание проблем по инструкции lw (Mips)

Допустим, я хочу сделать lw: lw $s1, l2 ($t1) Из того, что я понимаю, я экономлю в $s1 слово, указанное регистром ($t1) + l2 (немедленный, который в этом случае является смещением). Но не является ли смещение ссылкой на определенный блок (в данном с…
04 ноя '17 в 18:21
2 ответа

RISC-V: варианты немедленного кодирования

В Руководстве по набору инструкций RISC-V, ISA уровня пользователя, я не мог понять раздел 2.3 "Варианты немедленного кодирования", стр. 11. Существует четыре типа форматов команд R, I, S и U, затем есть варианты типов S и U, которые представляют со…
1 ответ

Что делать, если непосредственное число выходит за пределы диапазона до операций с числами со знаком

Одно из моих домашних упражнений выглядит следующим образом: mov al,77h sub al,80h AL=_______ CF=_______ OF=_______ Когда я впервые увидел это, я подумал, что результат "положительное число минус положительное число" не переполнится. И я просто сдел…
1 ответ

Почему я не могу переместить #1001 на r5 на руке?

У меня есть RPi4, и я пытаюсь написать код на ассемблере для цикла 1000 раз. Код работает нормально, когда я устанавливаю меньшее количество циклов, но когда я пытаюсь установить его 1001,gcc говорит: loop.s: Assembler messages: loop.s:15: Error: in…
14 май '20 в 13:34
0 ответов

Почему я не могу получить длину своей строки с помощью метода вычитания?

Я пишу небольшую программу сборки, чтобы распечатать строку, которую я могу объявить в section .dataраздел. Я использую ассемблер NASM x64 на 64-битной macOS. Я знаю, что для вывода чего-либо на экран мне нужно syscall то writeподпрограмма, которой …
06 июн '20 в 14:19
2 ответа

почему мы не можем переместить 64-битное немедленное значение в память?

Сначала меня немного смущает разница между movq а также movabsqв моем учебнике написано: Регулярный movqинструкция может иметь только непосредственные исходные операнды, которые могут быть представлены как 32-битные числа с дополнением до двух. Зате…
0 ответов

Objconv предлагает немедленное расширение с нулевым расширением, но movzx не работает

Objconv Агнера Фога показывает несколько случаев в моей исходной дизассемблировании, где появляется сообщение "Примечание: непосредственный операнд можно уменьшить с помощью нулевого расширения". Например, он появляется прямо над этими двумя строкам…
1 ответ

Не понимаю, почему вопросы сборки MIPS неверны

На экзамене по сборке MIPS я получил несколько вопросов, отмеченных неверно, и мне было интересно, может ли кто-нибудь помочь мне выяснить, почему, потому что я вообще не понимаю почему. Первый вопрос: Установить все биты регистра $ t1 в 1 Мой ответ…
25 май '20 в 01:48
1 ответ

Явно введите десятичное число в сборке

Я часто не сразу понимаю, является ли число десятичным или шестнадцатеричным (если шестнадцатеричное число не имеет префикса или букв). Например, из предыдущего вопроса число вроде0000000000400078 и не уверен, что это такое. Есть ли способ явно указ…
2 ответа

Почему в 32-битной архитектуре MIPS длина кода операции составляет 6 бит

Ниже приведен формат инструкции передачи данных для 32-разрядной архитектуры ARM и MIPS. 32-битная архитектура ARM имеет 4-битный код операции, потому что имеется 16 регистров (2^4=16).32-битная архитектура MIPS имеет 6-битный код операции. Разве эт…
01 сен '20 в 18:16
0 ответов

Как работает режим немедленной адресации

Я должен описать, как следующие инструкции будут выполняться внутри ЦП Второе изображение - это процессор Я понимаю концепцию режима немедленной адресации и смещения, но не понимаю, как реализовать режим немедленной адресации. Мой предложенный ответ…
25 май '20 в 17:25
1 ответ

Использование инструкций по смешиванию в Intel Intrinsics (AVX)

У меня вопрос по AVX _mm256_blend_pd функция. Я хочу оптимизировать свой код, в котором я активно использую _mm256_blendv_pdфункция. К сожалению, это имеет довольно высокую задержку и низкую пропускную способность. Эта функция принимает на вход три_…
21 май '20 в 05:07
2 ответа

Как мне переместить константу с плавающей запятой в регистр FP?

Итак, я программирую на сборке ARM, используя набор инструкций A64. Я использую инструкцию fmov d1, # ​​31.0 для перемещения значений в регистр dx. Однако, когда я использую 0,0 или любое значение выше 31,0, отображается ошибка: "Error: invalid…
0 ответов

Вопрос об арифметической эффективности архитектуры Y86 с непосредственным противовесом

Я работаю с командой в классе компьютерной архитектуры над программой Y86 для реализации функции умножения imul. У нас есть блок кода, который работает, но мы стараемся сделать его максимально эффективным по времени выполнения. В настоящее время наш…
0 ответов

Целочисленный перелив в газе

Я не уверен, что это вопрос сборки или больше вопрос газа. Я сделал следующее, чтобы увидеть, как ассемблер обрабатывает немедленные значения, которые слишком велики для кодирования в соответствующем регистре: addb $0xFFFF, %bl addw $0xFFFFFF, %bx a…