0
ответов

64-битный ассемблер Windows

Я хочу запрограммировать 64-битный ассемблер Windows (желательно с использованием NASM). Я посмотрел в Google довольно много, но кажется, что я не могу найти 64-битный компилятор Windows. На каком-то сайте упоминается ml64, но похоже...
вопрос задан: 22 May 2012 19:10
0
ответов

Почему gcc создает избыточный код сборки?

Я хотел посмотреть, как определенные функции C/C++ были преобразованы в ассемблер, и я создал следующий файл: struct foo { int x; символ у[0]; }; char *bar(структура foo *f) {возврат f->...
вопрос задан: 19 May 2012 06:45
0
ответов

Буквенно-цифровой шеллкод, обеспечивающий переходы

Я пытаюсь написать шелл-код, который в конечном итоге будет иметь форму абзаца на английском языке. Это означает, что я в основном ограничен инструкциями, коды операций которых оцениваются как буквенно-цифровые...
вопрос задан: 18 May 2012 21:19
0
ответов

Перевести ASM в стиле Delphi на английский?

В недавно доставшемся мне проекте Delphi есть процедура в ASM. Я полный новичок в ASM, поэтому не понимаю ее. Я прочитал различные инструкции по ASM, чтобы попытаться расшифровать процедуры ...
вопрос задан: 17 May 2012 12:14
0
ответов

Как читать данные с абсолютного адреса в delphi XE2

Допустим, я хочу читать с абсолютного адреса gs: $ 30 в 64-битный режим, поэтому код asm выглядит примерно так: asm mov rax, gs: [$ 30] конец; ... и компилятор преобразует этот код в ... 65 48 8B ...
вопрос задан: 17 May 2012 12:11
0
ответов

Можно ли вызвать не -экспортированную функцию, которая находится в exe-файле?

Я хочу вызвать функцию, находящуюся в стороннем -.exe-файле, и получить ее результат. Кажется, должен быть какой-то способ, если я знаю адрес функции, соглашение о вызове -и т. д.... но я не знаю...
вопрос задан: 16 May 2012 11:37
0
ответов

«Давайте создадим компилятор» Креншоу: Транскрипция на C и x86 Assembler? [закрыто]

Я пытаюсь работать с превосходным учебником по программированию компилятора Джека Креншоу "Давайте создадим компилятор" и столкнулся с двумя препятствиями. Сначала код написан на Паскале, прекрасном языке для...
вопрос задан: 16 May 2012 01:05
0
ответов

Зачем вызывать, когда достаточно jmp?

У меня есть два файла: #include static inline void print0() { printf("Zero"); } статический встроенный void print1() { printf("One"); } статический встроенный void print2() { printf("Два"); } static inline ...
вопрос задан: 15 May 2012 14:22
0
ответов

ARM Assembler - Как мне использовать CMP, BLT и BGT?

Короткий вопрос к вам, ребята, в моем цикле мне нужно использовать CMP , BLT и BGT для сравнения некоторых значений. Как использовать указанные инструкции в следующем цикле? Я пытаюсь использовать BG T , BLT и CMP, как мне нужно...
вопрос задан: 15 May 2012 13:08
0
ответов

Запуск ОС на VirtualBox

Я использую VirtualBox 4.1.14 на Windows 7 и пытаюсь запустить мою тестовую ОС. Я использую приведенный ниже ассемблерный код и компилирую его с помощью nasm -f bin -o boot.bin boot.asm. Я пытаюсь ...
вопрос задан: 13 May 2012 12:37
0
ответов

Получение аргументов функции с помощью kprobes

Я поместил kprobe в функцию, и теперь мне нужно получить значения ее аргументов в функции предварительного обработчика kprobe. Вот моя функция: void foobar(int arg, int arg2, int arg3, int arg4, int arg5, int ...
вопрос задан: 12 May 2012 12:15
0
ответов

Запутался с инструкцией CMPSB

Я смотрел на этот код и не понял строку rep cmpsb. .LOOP: push cx mov cx, 0x000B ; одиннадцатисимвольное имя mov si, ...
вопрос задан: 11 May 2012 13:43
0
ответов

Как проверить состояние ключей в сборке x86?

В январе прошлого года я занялся сборкой x86 в качестве хобби, поэтому я мог делать игры, которые будут работать на старых компьютерах с процессором 8086, таких как PCj и Tandy 1000, но книги, которые я нашел, мало что говорят об этом...
вопрос задан: 10 May 2012 19:07
0
ответов

Что означает lea 0x0 (%esi ), %esi

lea 0x0 (%esi ), %esi Я считаю, что это не имеет никакого результата и просто заполняет пространство. Так ли это?
вопрос задан: 9 May 2012 16:41
0
ответов

Почему инструкции по ассемблеру могут содержать умножения в инструкции «lea»?

Я работаю над очень низкоуровневой частью приложения, где производительность имеет решающее значение. Изучая сгенерированную сборку, я заметил следующую инструкцию: lea eax,[edx*8+8] Я ...
вопрос задан: 9 May 2012 08:23
0
ответов

каково содержимое файла.lst, сгенерированного программой masm?

При запуске программ на ассемблере с использованием masm.lst создаются файлы. Каково точное содержимое этих файлов.lst и почему это преобразование необходимо?
вопрос задан: 9 May 2012 07:58
0
ответов

Чистое умножение старших -бит в ассемблере?

Для реализации действительных чисел от 0 до 1 обычно используются числа с плавающей запятой ANSI или двойные числа. Но числа с фиксированной точностью от 0 до 1 (десятичных знаков по модулю 1 )могут быть эффективно реализованы как 32-битные целые числа ил
вопрос задан: 7 May 2012 20:33
0
ответов

Абсолютная адресация для замены кода времени выполнения в x86_64

В настоящее время я использую некоторую схему замены кода в 32-битном формате, где код, который перемещается в другую позицию, считывает переменные и указатель класса. Поскольку x86_64 не поддерживает абсолютную адресацию, у меня есть ...
вопрос задан: 7 May 2012 12:47
0
ответов

Допустимый шаблон в ассемблере для аргументов с переменным числом аргументов

Я думаю, что мой вопрос может показаться немного странным, но здесь он идет; Я пытаюсь создать программу динамически на С++ (в основном для удовольствия, но также и по программной причине), и это не так сложно, как...
вопрос задан: 5 May 2012 21:27
0
ответов

Что такое & #39;asmlinkage& #39; модификатор предназначен для?

Я читал, что он используется для функций, реализующих системные вызовы в Linux. Например :asmlinkage long sys _getjiffies (void ){ return (long )get _jiffies _64 (); } и что это сообщает...
вопрос задан: 5 May 2012 07:01
0
ответов

Хорошие ссылки для системных вызовов

Мне нужна ссылка, но хорошая, возможно, с некоторыми хорошими примерами. Мне это нужно, потому что я начинаю писать код на ассемблере с помощью ассемблера NASM. У меня есть эта ссылка: http: // bluemaster ....
вопрос задан: 3 May 2012 10:58
0
ответов

Обход и встроенная сборка GCC (Linux)

Я программирую расширения для игры, которая предлагает API для (наших )моддеров. Этот API предлагает широкий спектр возможностей, но имеет одно ограничение. API предназначен только для «движка», что означает, что все...
вопрос задан: 2 May 2012 20:18
0
ответов

Разница между byte ptr и word ptr

Я видел следующий вопрос на тестовом листе: Вопрос VarM DWORD ABBF01598h Выдать содержимое регистров al, bx и dl после выполнения mov al, byte ptr VarM + 1 mov bx, word ptr VarM +...
вопрос задан: 2 May 2012 12:28
0
ответов

Невозможно записать в регистр ARM R4: функция или ошибка?

Недавно я столкнулся со странным поведением ARM Cortex-A8 при программировании в сборке. Всякий раз, когда я ПЕРЕМЕЩАЮ что-либо в R4, моя программа вылетает (дамп стека ниже) 10-14 09: 48: 43.117: INFO / DEBUG (...
вопрос задан: 2 May 2012 04:43
0
ответов

В чем разница между RCR и ROR?

Я понимаю из терминов, что RCR будет вращать бит справа налево, беря бит из переноса, в то время как ROR будет вращать бит справа налево, беря бит справа, но...
вопрос задан: 2 May 2012 02:09
0
ответов

Допускается ли добавление A, 5?

ADD A, 5 Теперь A и 5 оба являются непосредственными. Это разрешено на ассемблере?
вопрос задан: 2 May 2012 02:09
0
ответов

Что делает следующая инструкция по сборке: addd -8(%rbp), %xmm0?

Я пытаюсь выяснить, что на самом деле делает инструкция по сборке. Кроме того, я знаю, что %xmm0 - это...
вопрос задан: 1 May 2012 15:40
0
ответов

Почему генерируются инструкции И?

Для такого кода: int res = 0; для (целое я = 0; я < 32; я ++) { рез += 1 << я; } Генерируется следующий код (режим деблокирования, отладчик не подключен, 64-битная версия): xor edx,edx mov r8d,1 _loop: ...
вопрос задан: 1 May 2012 09:12
0
ответов

Если регистры такие невероятно быстрые, почему у нас их не стало больше?

В 32-битной версии у нас было 8 регистров общего назначения. С 64-битной версией количество удваивается, но, кажется, не зависит от самого 64-битного изменения. регистры. С 64-битной версией количество удваивается, но, кажется, не зависит от самого 64-би
вопрос задан: 1 May 2012 06:09
0
ответов

Как Code Code Call Call Code Code (например, оптимизирован strlen)?

Я всегда читаю вещи о том, как определенные функции в языке программирования C оптимизированы путем написания в сборке. Позвольте мне извиниться, если это предложение звучит немного ошибочно. Итак, я ...
вопрос задан: 1 May 2012 04:17