0
ответов

Что здесь означает @plt?

0x00000000004004b6
: callq 0x400398 Кто-нибудь знает? ОБНОВЛЕНИЕ Почему два disas printf дают разные результаты? (gdb) disas printf Дамп ассемблерного кода для функции ...
вопрос задан: 19 August 2019 22:13
0
ответов

Язык ассемблера - как работать по модулю?

Есть ли что-то вроде оператора или инструкции по модулю в ассемблере x86?
вопрос задан: 10 August 2019 06:59
0
ответов

ассемблер x86: плавающая точка выдерживает сравнение

Как часть проекта компилятора, я должен написать ассемблерный код GNU для x86 для сравнения значений с плавающей точкой. Я попытался найти ресурсы о том, как сделать это онлайн и от того, что я понимаю, что это работает...
вопрос задан: 24 July 2019 23:46
0
ответов

Есть ли что-то особенное в -1 (0xFFFFFFFF) в отношении АЦП?

В моем исследовательском проекте я пишу код на C ++. Тем не менее, сгенерированная сборка является одним из ключевых моментов проекта. C ++ не обеспечивает прямой доступ к инструкциям по управлению флагами, в ...
вопрос задан: 12 July 2019 14:34
0
ответов

Флаг направления в x86

Я не могу понять, как флаг направления работает в x86. Текст в моих лекциях говорит, что он увеличивает или уменьшает исходный или целевой регистр, но это не имеет смысла с его...
вопрос задан: 11 July 2019 20:43
0
ответов

базовая сборка не работает на Mac (x86 _64+Lion )?

вот код (exit.s ):.section.data,.раздел.текст,.globl _начало _start :movl $1, %eax movl $32, %ebx системный вызов при выполнении " as exit.s -o exit.o && ld exit.o -o exit -e...
вопрос задан: 9 July 2019 04:28
0
ответов

Сборка MIPS - lui $ t0, 4097?

Может кто-нибудь объяснить мне, как работает lui, что означает «4097», что означает добавление 8 к $ t0? .data 0x10010000 blank: .asciiz "" # 4097 newline: .asciiz "\ n" # 4097 + 2 ...
вопрос задан: 5 July 2019 01:39
0
ответов

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

Когда я пытаюсь скомпилировать этот код: #include main (int argc, char * argv []) {double y = 0; __asm__ ("fldl $ 150;" "fsqrt;" "fstl% 0;":: "g" (y)); ...
вопрос задан: 22 June 2019 16:50
0
ответов

Сборка - JG/JNLE/JL/JNGE после CMP

Я не понимаю JG/JNLE/ Инструкции JL/JNGE, которые идут после CMP. например, если у меня есть: CMP al,dl jg label1 Когда al=101; дл =200. О чем мы спрашиваем jg? Это на al>dl? или al-dl>0?...
вопрос задан: 15 June 2019 11:11
0
ответов

Что произойдет, если вы используете 32-битный int 0x80 Linux ABI в 64-битном коде?

int 0x80 в Linux всегда вызывает 32-битный ABI, независимо от того, из какого режима он вызывается: аргументы в ebx, ecx, ... и числа системных вызовов из /usr/include/asm/unistd_32.h. (Или вылетает на 64-битных ядрах ...
вопрос задан: 9 June 2019 15:40
0
ответов

Как создать привет мир для Nintendo 64?

Я читаю Программирование Ассемблера MIPS, но теперь я хочу создать простую "игру" для Nintendo 64. Я хочу распечатать Привет, Мир на экран, но кто-то может помочь с этим. Поскольку я не имею...
вопрос задан: 9 June 2019 06:05
0
ответов

Инструкция mov в сборке x86

Из того, что я читал о mov , он копирует второй аргумент в первый аргумент. Тогда что это делает? movl 8 (% ebp),% edx Он копирует все, что есть в edx, в первый параметр ...
вопрос задан: 31 May 2019 13:41
0
ответов

Почему эта встроенная сборка не работает с отдельным оператором asm volatile для каждой инструкции?

Для следующего кода: long buf [64]; зарегистрировать long rrax asm ("rax"); зарегистрировать длинный rrbx asm ("rbx"); зарегистрировать long rrsi asm ("rsi"); rrax = 0x34; rrbx = 0x39; __asm__ __volatile__ ("movq $ buf, ...
вопрос задан: 26 May 2019 16:50
0
ответов

Написание оболочки системных вызовов Linux int 80h во встроенной сборке GNU C [дубликат]

I ' м пытаюсь использовать встроенную сборку ... Я прочитал эту страницу http://www.codeproject.com/KB/cpp/edujini_inline_asm.aspx, но я не могу понять параметры, передаваемые моей функции. Я пишу C write ...
вопрос задан: 26 May 2019 15:19
0
ответов

Что такое сохраненные регистры вызываемого и вызывающего абонента?

У меня возникли некоторые проблемы с пониманием разницы между сохраненными регистрами вызывающего и вызываемого абонентов и когда что использовать. Я использую MSP430 : procedure: mov.w # 0, R7 mov.w # 0, R6 add.w R6, R7 inc.w ...
вопрос задан: 7 May 2019 02:13
0
ответов

Пишу свой биос

Я не сумасшедший, просто заново изобретаю велосипед :D Я написал загрузчики, мини-драйверы для мыши и клавиатуры, мини-ОС и так далее. Я всегда стараюсь избегать прерываний DOS, использую только прерывания BIOS, пытаясь...
вопрос задан: 30 April 2019 18:59
0
ответов

Как заставить код C выполнять шестнадцатеричный байт-код?

Я хочу, чтобы простой метод C позволял запускать шестнадцатеричный байт-код на 64-битной машине Linux. Вот программа на C, которая у меня есть:char code[] = "\x48\x31\xc0"; #включить int main(int argc, char **...
вопрос задан: 29 April 2019 17:16
0
ответов

EQU против DC.B. В чем разница?

Я только начал изучать язык ассемблера. Я наткнулся на концепцию EQU. Сначала это имело смысл, пока я не добрался до DC.B. В чем разница между DC.B и EQU? Нельзя ли просто использовать EQU...
вопрос задан: 20 April 2019 14:57
0
ответов

Подробно о MSR _GS _BASE в linux x86 64

Я попытался выяснить подробности текущего MACRO в ядре Linux. Окончательный ассемблерный код текущего: :movq %%gs :0xb000,%0 Приведенный выше код может работать! Но когда я печатаю %%gs, его значение равно 0, поэтому...
вопрос задан: 19 April 2019 02:08
0
ответов

Как мне достичь теоретического максимума 4 FLOP за цикл?

Как достичь теоретической пиковой производительности 4 операций с плавающей запятой (двойной точности) за такт на современном процессоре Intel x86-64? Насколько я понимаю, это займет три цикла для SSE ...
вопрос задан: 18 April 2019 14:36
0
ответов

Относительный и абсолютный jmp в сборке

Мне было интересно следующее. При написании ассемблера я заметил, что IA32 спроектирован таким образом, чтобы способствовать использованию относительных переходов, то есть переходить на величину смещения байтов против ...
вопрос задан: 17 April 2019 23:19
0
ответов

Переход ассемблера в защищенном режиме с GDT

Я сейчас играю с x86 Assember, чтобы отточить мои навыки программирования низкого уровня. В настоящее время у меня возникла небольшая проблема со схемой адресации в 32-битном защищенном режиме. ...
вопрос задан: 17 April 2019 23:14
0
ответов

Как закодировать относительно короткий JMP в x86

Предположим, что я хочу сделать короткий переход, используя следующие коды операций: EB CB или JMP rel8 «Короткий переход, RIP = RIP + 8-битный знак смещения расширен до 64-битных» (где CB - значение со знаком байта ...
вопрос задан: 17 April 2019 20:36
0
ответов

Почему функция cos в math.h быстрее, чем инструкция x86 fcos

Cos () в math.h работает быстрее, чем x86 asm fcos. Следующий код сравнивается между x86 fcos и cos () в math.h. В этом коде 1000000 раз asm fcos стоит 150 мс; 1000000 раз потому () ...
вопрос задан: 14 April 2019 11:17
0
ответов

Как скомпилировать код ARMv8 для Raspberry pi 3

Я следовал этому уроку, чтобы программировать базовую ОС для моего Raspberry Pi. Я прочитал документацию и изменил регистры, чтобы они могли работать, но Raspberry Pi 3 64-битная ...
вопрос задан: 7 April 2019 15:26
0
ответов

Почему GCC сбрасывает указатель кадра на 64-битный?

В чем причина отказа от указателя кадра на 64-битных архитектурах по умолчанию? Я хорошо знаю, что он может быть включен, но почему GCC отключает его в первую очередь, когда он включен ...
вопрос задан: 6 April 2019 10:38
0
ответов

Как напечатать число в сборке NASM?

Предположим, у меня есть целое число в регистре, как его распечатать? Вы можете показать простой пример кода? Я уже знаю, как напечатать строку типа «привет, мир». Разрабатываю под Linux.
вопрос задан: 6 April 2019 00:50
0
ответов

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

У меня есть счетчик в моей программе. Я хочу сохранить готовый счетчик в буфере, чтобы я мог отправить его в mmio display. Моя проблема в том, что мне нужно представление числа в виде символа, чтобы я мог сохранить его в ...
вопрос задан: 5 April 2019 00:06
0
ответов

Почему эта программа получает SEGV?

У меня есть следующая программа, которая (я думаю) выделяет кучу виртуальной памяти (путем изменения системного разрыва с помощью sys_brk), а затем пытается выполнить запись во вновь выделенную память. Тем не менее, я ...
вопрос задан: 28 March 2019 03:46
0
ответов

Как найти адрес указателя на строку во время вызова функции в c

Я пытаюсь изучить переполнение буфера из книги «Искусство эксплуатации - Джон Эриксон». Я приложил код, который был дан. Следующим шагом после компиляции кода была его отладка с использованием gdb. ...
вопрос задан: 24 March 2019 20:16