Описание тега yasm

Yasm - это модульный ассемблер, задуманный как полная переработка Netwide Assembler (NASM). Он лицензируется в соответствии с новой версией лицензий BSD.
1 ответ

Запись yasm в PAGEZERO в формате x86_64 mach-o

Я слежу за сборкой, в которой используются ассемблер yasm и компоновщик ld. Я использую OSX 10.12 и пытаюсь выполнить сборку в формате Mach-O. К сожалению, я получаю ошибку сегментации. Это оригинальный файл.asm: BITS 64 segment .data a dd 4 segment…
08 ноя '16 в 22:18
0 ответов

Как запустить сборку и запуск файла.asm с использованием YASM в x64 CMD?

Я новичок в ассемблере и YASM. Как запустить сборку и запуск файла.asm с использованием YASM в x64 CMD?
28 ноя '18 в 03:03
2 ответа

Минимальный размер кода операции x86-64 strlen реализация

Я исследую реализацию минимального размера кода операции x86-64 strlen для моего исполняемого кода / исполняемого двоичного кода, размер которого не должен превышать некоторый размер (для простоты рассмотрим демосцену).Общая идея исходит отсюда, иде…
15 апр '18 в 10:10
0 ответов

Как передать непечатаемый байт ASCII в файл-дескриптор STDIN в ассемблере x86_64 (yasm)

проблема Предположим, у меня есть программа на x86_64 ассемблер yasm (см. ниже), который запрашивает ввод от пользователя через SYS_read Системный сервис в какой-то момент. Этот вывод далее рассматривается как номер байта в программе. Пользователь м…
20 мар '18 в 15:25
1 ответ

Почему не заполнить нулями

Выделенный массив на 10000 бит = 1250 байт (10000/8): mov edi, 1250 call malloc проверил указатель: cmp rax, 0 jz .error ; error handling at label down the code память была выделена: (gdb) p/x $rax $3 = 0x6030c0 попытался заполнить эту выделенную па…
11 сен '16 в 08:33
1 ответ

Инициализация структуры в сборке yasm x86

Я пытаюсь инициализировать структуру WIN32_FIND_DATA для хранения информации о файлах, найденных с помощью оконных функций FindFirstFile и FindNextFile. Проблема в том, что я не могу понять, как инициализировать Stust в Yasm. Вот мой код: struc FILE…
29 дек '16 в 12:57
6 ответов

Найти, какая инструкция по сборке вызвала ошибку Illegal Instruction без отладки

При запуске программы, которую я написал на ассемблере, я получаю Illegal instruction ошибка. Есть ли способ узнать, какая инструкция вызывает ошибку, без отладки, потому что на машине, на которой я работаю, нет отладчика или какой-либо системы разр…
27 апр '12 в 16:11
0 ответов

YASM, почему глобальные внешние ссылки не работают

Я новичок в сборке и использую y asm, с редактором ebe. Теперь после первых шагов я хочу проверить глобальный / внешний механизм. Поэтому я сделал 2 модуля: actor.asm extern greeter section .text global main main: push rbp call greeter wrt ..plt pop…
14 апр '15 в 15:11
1 ответ

Почему 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 FB сам по себе это: mov edx, dword [rsi-5] Я заметил…
25 мар '18 в 14:28
0 ответов

Что такое параметр для YASM, чтобы исключить ненужный модуль в двоичном объекте?

Может ли yasm, ld, gcc исключить ненужные части? Я ожидаю, что GCC исключить это, как в C/C++. ;testSize1.asm segment .text global main extern printf,scanf ;<== difference part main: push rbp mov rbp,rsp sub rsp,16 mov rax,2 leave ret ;testSize2.…
26 июн '17 в 09:34
2 ответа

Как сгенерировать ассемблируемый код для сборки из исходного кода c на Linux?

Тестовая платформа - 32-битный Linux. В принципе, я знаю, что gcc можно использовать для генерации кода сборки в стиле Intel и At&T;, но кажется, что вы не можете напрямую использовать nasm / tasm для компиляции сгенерированного кода сборки в стиле …
23 дек '13 в 06:12
1 ответ

Связывание программы сборки x86-64 завершается неудачно с помощью gcc

From seyfarth's book: segment .data a dw 175 b dw 4097 segment .text global main main: mov rax, [a] ; mov a (175)into rax add rax, [b] ; add b to rax xor rax, rax ret Он не может связать, используя команды, приведенные в книге Сейфарта: yasm -P ebe.…
25 дек '18 в 13:04
1 ответ

Разница между скобками / без скобок Nasm/ Yasm x86_64

Я изучаю ассемблерный код x86_64 на yasm и nasm, и я столкнулся с этими выражениями, и я не могу понять, что здесь происходит, может кто-нибудь объяснить мне это, пожалуйста? Давайте рассмотрим этот фрагмент в качестве примера: section .data word db…
25 фев '19 в 18:06
2 ответа

Сборка: почему переход к метке, возвращаемой через ret, вызывает ошибку сегментации?

В руководстве по сборке Linux говорится: Следует помнить одну очень важную вещь: если вы планируете вернуться из процедуры (с помощью инструкции RET), не переходите к ней! Как в "никогда!" Это приведет к ошибке сегментации в Linux (которая в порядк…
23 мар '12 в 23:22
2 ответа

Эффект выравнивания кода при синхронизации главных циклов в сборке

Допустим, у меня есть следующий основной цикл .L2: vmulps ymm1, ymm2, [rdi+rax] vaddps ymm1, ymm1, [rsi+rax] vmovaps [rdx+rax], ymm1 add rax, 32 jne .L2 То, как я бы это рассчитал, это поместить в еще один длинный цикл, как это ;align 32 .L1: mov ra…
30 окт '15 в 14:40
3 ответа

Проблемы с построением YASM/NASM Hello World

Я пытаюсь встроить hello.asm в исполняемый файл Windows, но когда я использую предложенные команды для сборки, компоновки и компиляции кода, я получаю ошибки. Будь я использую http://strawberryperl.com/ GCC или MinGW GCC, оба дают ошибки для одного …
20 сен '12 в 01:04
1 ответ

Как я могу использовать gdb для отладки кода, собранного с помощью yasm?

У меня есть сборка кода с использованием yasm и связывание с моей программой на C++, но я не могу установить точки останова в gdb для символов из файла на языке ассемблера. Командные строки, вероятно, не очень хорошо освещают, но здесь мы идем: "g++…
26 окт '14 в 22:12
0 ответов

Как уменьшить использование памяти ассемблером x86 для компиляции одного большого файла размером более 200 МБ?

Я пытаюсь собрать ASM-файл размером>200 МБ x86 с GAS в виртуальной машине с 4 ГБ оперативной памяти. К сожалению, ГАЗ быстро потребляет всю системную память и погибает. Я также пытался с --reduce-memory-overheads флаг, но результат тот же. Я также п…
30 окт '15 в 02:33
0 ответов

Сборка libvpx под Windows 7 - ошибка yasm

Я собираю libvpx под 64-битную Windows 7 (но хочу нацелить сборку на платформу win32), следуя инструкциям здесь: http://www.webmproject.org/code/build-prerequisites/ Я делаю это с помощью Mingw и yasm 1.1.0. Я в основном через все процессы, и в резу…
1 ответ

Умножение со знаком и последующее деление в YASM (архитектура x86_64)

Я использую yasm ассемблер для x86_64 Архитектура процессора. Предположим, у меня уже есть три числа, определенные в .data раздел: section .data ;CONSTANTS: SYSTEM_EXIT equ 60 SUCCESS_EXIT equ 0 ;VARIABLES: dVar1 dd 40400 wVar2 dw -234 bVar3 db -23 …
12 мар '18 в 12:41