Вопросы по теме 'yasm'

Почему GDB не показывает мне изменение в массиве BSS, когда я вычисляю адрес с тем же выражением, что и режим адресации?
Написал простую программу с большим буфером в .bss сегменте h_vals: resq 99999 затем попытался увеличить значение некоторой ячейки массива. mov rcx, [h_vals+8*rax] inc rcx mov [h_vals+8*rax], rcx По-прежнему в gdb вижу одно и то...
67 просмотров
schedule 17.11.2021

Код TASM выдает ошибку в YASM: ожидается инструкция после метки
У меня есть код, который я сделал для TASM, и, насколько мне известно, YASM совместим с ним, поэтому IDK, почему я получаю эти ошибки: 91.asm:3: error: instruction expected after label 91.asm:4: error: instruction expected after label 91.asm:27:...
73 просмотров
schedule 12.09.2021

Ассемблер GNU дает неожиданный операнд памяти
Ассемблер GNU выдает неожиданный операнд памяти при сборке синтаксического кода Intel. Я свел свою ошибку к одной-единственной строке кода, и последние три дня я пробовал что-нибудь, чтобы понять, почему ассемблер GNU дает то, чего я не могу...
188 просмотров
schedule 13.05.2022

Mac OS X: YASM: ошибка: macho: извините, нельзя применять 32-битные абсолютные перемещения в 64-разрядном режиме
NASM прекрасно компилируется, но когда я использую YASM, я получаю следующую ошибку: hello.asm:12: error: macho: извините, нельзя применять 32-битные абсолютные перемещения в 64-битном режиме, рассмотрите «[_symbol wrt rip]» для доступа к...
1268 просмотров
schedule 12.09.2022

Сборка: почему переход к метке, возвращаемой через ret, вызывает ошибку сегментации?
В руководстве по сборке Linux говорится: следует запомнить одну очень важную вещь: если вы планируете вернуться из процедуры (с помощью инструкции RET), не переходите к ней! Как в "никогда!" Это вызовет ошибку сегментации в Linux (что...
1976 просмотров
schedule 18.01.2023

Перемещение значения с косвенной адресацией в AL работает, но перемещение его в 8-битный регистр rXb не работает в yasm
У меня есть байтовый массив символов, объявленный в .data chars db 'spipopd' и я установил rdi, чтобы указать на базовый индекс этого массива mov rdi, chars В какой-то момент я хочу поместить символ из массива в 8-битный регистр....
327 просмотров
schedule 21.06.2023

Использование препроцессора GCCs в качестве ассемблера
Существуют различные ассемблеры с открытым исходным кодом, такие как gas , nasm и yasm . У них разные синтаксисы pseudo-ops и macro . Для многих проектов с открытым исходным кодом ассемблер предварительно обрабатывается для замены констант и...
941 просмотров

Какие регистры AVX следует использовать, чтобы избежать использования 3-байтовых префиксов VEX?
В настоящее время я работаю над реализацией Bitslice DES для x64, и я хотел бы знать, как я могу избежать 3-байтовых префиксов VEX, насколько это возможно, с помощью следующих инструкций AVX: vpor vpxor vpand vpandn Мне сказали, что я должен...
539 просмотров
schedule 24.03.2023

FizzBuzz в сборке — ошибка сегментации
Я пытаюсь написать FizzBuzz на ассемблере и все время вижу ошибку сегментации. Пока определил, что это не мои подпрограммы печати (т.к. я удалил их содержимое и проблема осталась) и ошибка прячется где-то в основной функции. Я получал этот вывод,...
1040 просмотров
schedule 14.01.2023

yasm записывает в PAGEZERO в формате x86_64 mach-o
Я следую книге по сборке, в которой используется ассемблер yasm и компоновщик ld. У меня OSX 10.12, и я пытаюсь собрать в формате Mach-O. К сожалению, я получаю ошибку сегментации. Это исходный файл .asm: BITS 64 segment .data a dd 4 segment...
230 просмотров
schedule 19.07.2023

Почему nasm и yasm дают код операции 67 для инструкции mov r16, word [r64 - 3]?
В сборке x86-64 у меня есть следующая инструкция mov dx, word [esi-5] Nasm 2.13.03 генерирует: 66 67 8B 56 FB yasm 1.3.0 генерирует: 67 66 8B 56 FB Коды операций 66 67 являются модификаторами, поэтому 8B 56...
125 просмотров
schedule 06.02.2023

метка или инструкция ожидается в начале строки YASM
Я пытаюсь создать код сборки YASM, который должен вычислять расстояние между двумя точками (A и B) на 2D-плоскости. Это команда, которую я использую для создания кода: yasm -f elf64 -g dwarf2 -l distance.lst distance.asm...
404 просмотров
schedule 31.01.2023

YASM: Инструкция movsx отказывается от двойного слова для размера операнда?
Программа сборки, которую я пишу, не будет компилироваться с ассемблером y, цитируя: error: invalid size for operand 2 В следующей строке: movsx rbx, dword [rsi+4*rcx] ; Copy double-word and sign extend. Однако я не могу найти...
173 просмотров
schedule 07.02.2024