Лучшие x86-64 вопросы ИТ разработчиков

  • 0голос
  • 1ответ
  • 0просмотров

серия гармоник со сборкой x86-64

Попытка вычислить гармонический ряд. Сейчас я ввожу номер, на который я хочу добавить дополнение. Когда я ввожу небольшое число, например 1.2, программа просто останавливается, не падает, похоже, она выполняет вычисления. Но она никогда не ...

ЗаданApr 03, 2012, 10:27 PMотuser1050632
  • 10голосов
  • 2ответа
  • 0просмотров

Как скомпилировать мою собственную стандартную библиотеку glibc C из исходного кода и использовать ее?

Я пытаюсь собрать свой собственный glibc. У меня есть каталогglibc, которые содержатglibc Исходный код я скачал из интернета. Из этого каталога я набралmkdir ../build-glibc, Теперь изbuild-glibc каталог, который я напечатал../glibc/configure, ...

  • 20голосов
  • 3ответа
  • 0просмотров

Значение двойного подчеркивания в начале

В стандартной библиотеке (glibc) я вижу функции, определенные с начальными двойными подчеркиваниями, такие как__mmap вsys/mman.h, Какова цель? И как мы можем по-прежнему вызывать функциюmmap который, кажется, нигде не объявлен. Я имею в виду, мы ...

ЗаданMay 21, 2012, 2:20 PMотpythonic
  • 25голосов
  • 6ответов
  • 0просмотров

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

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

  • 9голосов
  • 3ответа
  • 0просмотров

Насколько быстрым является неоспоримый замок?

И насколько она быстрее / медленнее по сравнению с неоспоримой атомарной переменной (такой как атомарная операция C ++). Кроме того, насколько медленнее оспариваемые атомные переменные по сравнению с неоспоримой блокировкой? Архитектура, над ...

ЗаданJun 13, 2012, 9:51 AMотpythonic
  • 15голосов
  • 4ответа
  • 0просмотров

Linux: большой массив int: mmap против файла поиска?

Предположим, у меня есть набор данных, представляющий собой массив из 1e12 32-битных целых (4 ТБ), который хранится в файле в файловой системе 4D HDD ext4 Учтите, что данные, скорее всего, случайны (или, по крайней мере, кажутся случайными). // ...

ЗаданJun 14, 2012, 11:58 AMотAndrew Tomazos
  • 7голосов
  • 3ответа
  • 0просмотров

Ложный обмен и атомарные переменные

Когда разные переменные находятся внутри одной строки кэша, вы можете испытать Ложный обмен [http://en.wikipedia.org/wiki/False_sharing]Это означает, что даже если два разных потока (работающих на разных ядрах) обращаются к двум ...

ЗаданApr 13, 2012, 3:49 PMотlurscherpythonic
  • 9голос
  • 1ответ
  • 0просмотров

Стоимость ловушки ошибки страницы

У меня есть приложение, которое периодически (через каждые 1 или 2 секунды) берет контрольные точки, разветвляясь. Таким образом, контрольная точка - это форк оригинального процесса, который просто не работает, пока его не попросят запустить, ...

ЗаданApr 19, 2012, 8:00 AMотpythonic
  • 24голосов
  • 5ответов
  • 0просмотров

Как обрабатываются прерывания в SMP?

Как обрабатываются прерывания на машинах SMP (Symmeteric multiprocessor / multicore)? Есть только один блок управления памятью или больше? Скажем, два потока, A и B, работающие на разных ядрах, касаются страницы памяти (одновременно), которой ...

ЗаданApr 19, 2012, 7:22 PMотpythonic
  • 8голосов
  • 5ответов
  • 0просмотров

Как проверить наличие графического процессора в CentOS Linux

Предполагается, что в Linux GPU можно найти с помощью командыlspci | grep VGA, Он отлично работает в Ubuntu, но когда я пытаюсь использовать то же самое в CentOS, он говорит, что команда lspci не найдена. Как я могу проверить наличие карты GPU в ...

ЗаданApr 25, 2012, 6:12 AMотpythonic
  • 89голосов
  • 2ответа
  • 0просмотров

Почему инструкции x86-64 для 32-битных регистров обнуляют верхнюю часть полного 64-битного регистра?

вx86-64 Обзор руководств Intel [http://x86asm.net/articles/x86-64-tour-of-intel-manuals/], Я читаю > Perhaps the most surprising fact is that an instruction such as MOV EAX, EBX automatically zeroes upper 32 bits of RAX register. Документация ...

ЗаданAug 01, 2018, 4:49 PMотNubok
  • 4голос
  • 1ответ
  • 0просмотров

vmalloc_to_pfn возвращает 32-битный адрес в системе Linux 32. Почему он отсекает старшие биты физического адреса PAE?

Я используюvmalloc_to_pfn()чтобы получить физический адрес в 32-битной системе PAE Linux. Похоже, что vmalloc_to_pfn () возвращает "unsigned long" это означает, что он 32-разрядный в 32-разрядной системе, 64-разрядный в 64-разрядной системе. В ...

ЗаданJul 11, 2012, 10:57 PMотasmprogrammer
  • 3голосов
  • 2ответа
  • 0просмотров

x86-64 Большое целочисленное представление?

Как высокопроизводительные собственные большие целочисленные библиотеки в x86-64 представляют большие целые числа в памяти? (или это меняется? Есть ли самый распространенный способ?) Наивно я думал о том, чтобы хранить их как строки с нулевыми ...

ЗаданDec 10, 2016, 5:05 PMотphuclvAndrew Tomazos
  • 7голосов
  • 4ответа
  • 0просмотров

динамически создавать va_list в GCC - это можно сделать?

моя проблема сvsprintf является то, что я не могу получить входные аргументы напрямую, я должен сначала получить входные данные один за другим и сохранить их вvoid**, а затем передать этоvoid** вvsprintf()Это нормально для Windows, но когда я ...

ЗаданJun 04, 2015, 4:58 AMотJohn Drouharduser1558064
  • 11голосов
  • 0ответов
  • 0просмотров

Как преобразовать 32-битную встроенную сборку gcc в Linux в 64-битный код? [закрыто]

Я пытаюсь конвертироватьRR0D Rasta Ring 0 Отладчик [http://rr0d.droids-corp.org/]из 32-битного режима в 64-битный режим (длинный режим) в Linux, используя gcc. Я знаком с 32-битной сборкой x86 (в среде MS-DOS), но я новичок в 64-битной сборке x86 ...

ЗаданAug 14, 2012, 9:00 AMот19 revsnrz
  • 3голос
  • 1ответ
  • 0просмотров

Не удается связать разделяемую библиотеку из объекта x86-64 из сборки из-за PIC

Я портирую разделяемую библиотеку из 32-битной в 64-битную. Он состоит из некоторой сборки (написанной для NASM), которая экспортирует несколько процедур и немного кода C высокого уровня. Я строю на 64-битной машине Debian с NASM 2.10.01 и GNU ld ...

ЗаданJul 18, 2018, 5:21 PMотjwwIneQuation
  • 12голос
  • 1ответ
  • 0просмотров

C - неопределенные символы для архитектуры x86_64 при компиляции на Mac OSX Lion

У меня возникают некоторые проблемы при компиляции очень очень простого файла name.c в Mac OSX Lion. Теперь я начал следовать курсу Harvard CS50 на cs50.net. Я не совсем новичок в программировании, но мне было любопытно, как этот курс ...

ЗаданJul 30, 2016, 2:04 PMотJonathan LefflerPillo
  • 11голос
  • 1ответ
  • 0просмотров

Как загрузить пиксельную структуру в регистр SSE?

У меня есть структура данных 8-битных пикселей: struct __attribute__((aligned(4))) pixels { char r; char g; char b; char a; }Я хочу использовать инструкции SSE для вычисления определенных вещей на этих пикселях (а именно, преобразование Паэта). ...

ЗаданApr 06, 2014, 12:08 PMотfuz
  • 3голосов
  • 2ответа
  • 0просмотров

Сколько циклов занимают математические функции на современных процессорах

Мы знаем, что современные процессоры выполняют такие инструкции, какcosine а такжеsin непосредственно на процессоре, поскольку у них есть коды операций для него. Мой вопрос состоит в том, сколько циклов обычно занимают эти инструкции. Они ...

ЗаданSep 08, 2012, 7:06 PMотpythonic
  • 4голосов
  • 3ответа
  • 0просмотров

Как избежать ввода ввода в стандартный ввод, который не помещается в буфер в оболочку в Linux 64-битной сборке Intel (x86-64)

Edit:Название изменилось, поскольку @Gunner указал, что это не переполнение буфера. При чтении пользовательского ввода отstdin сNR_read в Linux, 64-битная сборка Intel, мне интересно, как можно избежать того, что ввод, который не помещается ...

ЗаданSep 18, 2012, 2:35 AMотnrz
  • 3голос
  • 1ответ
  • 0просмотров

Легко проверять коды операций сборки Intel в Linux

Я искал практический инструмент, который печатал бы коды операций любой 64-битной или 32-битной инструкции Intel в Linux, например. что-то вродеHiew's [http://www.hiew.ru/]ассемблер в дос. Веб-сервис также будет одним из вариантов. Поскольку я ...

ЗаданSep 18, 2012, 12:08 PMотnrz
  • 11голос
  • 1ответ
  • 0просмотров

Можете ли вы ввести x64 32-битный «подрежим длинной совместимости» вне режима ядра?

Это может быть точной копиейМожно ли выполнить 32-битный код в 64-битном процессе, переключив режим? [https://stackoverflow.com/questions/5081203/is-it-possible-to-execute-32-bit-code-in-64-bit-process-by-doing-mode-switching] , но этот вопрос ...

ЗаданMay 23, 2017, 12:09 PMотCommunityQuuxplusone
  • 3голосов
  • 2ответа
  • 0просмотров

Сколько циклов занимают математические функции на современных процессорах

Мы знаем, что современные процессоры выполняют такие инструкции, какcosine а такжеsin непосредственно на процессоре, поскольку у них есть коды операций для него. Мой вопрос состоит в том, сколько циклов обычно занимают эти инструкции. Они ...

ЗаданSep 08, 2012, 5:06 PMотpythonic
  • 4голосов
  • 3ответа
  • 0просмотров

Как избежать ввода ввода в стандартный ввод, который не помещается в буфер в оболочку в Linux 64-битной сборке Intel (x86-64)

Редактировать:Название изменилось, поскольку @Gunner указал, что это не переполнение буфера. При чтении пользовательского ввода отstdin сNR_read в Linux, 64-битная сборка Intel, мне интересно, как можно избежать того, что ввод, который не ...

ЗаданSep 17, 2012, 10:59 AMотnrz
  • 3голос
  • 1ответ
  • 0просмотров

Легко проверять коды операций сборки Intel в Linux

Я искал практический инструмент, который печатал бы коды операций любой 64-битной или 32-битной инструкции Intel в Linux, например. что-то вродеHiew's [http://www.hiew.ru/]ассемблер в дос. Веб-сервис также будет одним из вариантов. Как я нене ...

ЗаданSep 18, 2012, 9:56 AMотnrz
  • 11голос
  • 1ответ
  • 0просмотров

Можете ли вы ввести x64 32-битный «подрежим длинной совместимости» вне режима ядра?

Это может быть точной копиейМожно ли выполнить 32-битный код в 64-битном процессе, переключив режим? [https://stackoverflow.com/questions/5081203/is-it-possible-to-execute-32-bit-code-in-64-bit-process-by-doing-mode-switching] , но этот вопрос из ...

ЗаданOct 03, 2012, 6:31 PMотQuuxplusone
  • 4голосов
  • 2ответа
  • 0просмотров

Почему printf печатает случайное значение с указателем формата с плавающей запятой и целочисленным форматом

Я написал простой код на 64-битной машине int main() { printf("%d", 2.443); }Итак, так будет вести себя компилятор. Второй аргумент будет идентифицирован как двойной, поэтому он будет помещать 8 байтов в стек или, возможно, просто использовать ...

ЗаданOct 12, 2012, 12:30 AMот0xhacker
  • 14голосов
  • 2ответа
  • 0просмотров

gfortran для чайников: что точно делает mcmodel = medium?

У меня есть код, который дает мне ошибки перемещения при компиляции, ниже приведен пример, который иллюстрирует проблему: program main common/baz/a,b,c real a,b,c b = 0.0 call foo() print*, b end subroutine foo() common/baz/a,b,c real a,b,c ...

ЗаданOct 16, 2012, 11:48 AMотmgilson
  • 4голос
  • 1ответ
  • 0просмотров

Как реализованы регистры MTRR? [закрыто]

x86 / x86-64 предоставляет MTRR (Memory-type-range-register), который может быть полезен для обозначения разных частей физического адресного пространства для разных видов использования (например, Cacheable, Unchangeable, Writecombining и т. ...

ЗаданNov 08, 2012, 7:23 PMотArka
  • 4голосов
  • 2ответа
  • 0просмотров

Внедрение кода x86 в процесс x86 из процесса x64

Я понимаю названиенемного запутанный, поэтому позвольте мне объяснить, что яЯ пытаюсь сделать: Я только что закончил писать простой DLL-инжектор для проверки концепции IЯ пытаюсь написать. Программа делает снимок текущих процессов, перечисляет ...

ЗаданNov 08, 2012, 7:40 PMотCharles Grunwald
  • 7голосов
  • 4ответа
  • 0просмотров

нажмите на 64-разрядной Intel OSX

Я хочу поместить 64-битный адрес в стек, как показано ниже, __asm("pushq $0x1122334455667788");Но я получаю ошибку компиляции, и я могу только нажать следующим образом, __asm("pushq $0x11223344");Может ли кто-нибудь помочь мне понять мою ...

ЗаданNov 12, 2012, 7:51 PMотRLT
  • 3голосов
  • 2ответа
  • 0просмотров

Как интерпретировать этот адрес -0x80 (% rbp,% rax, 4)

В настоящее время я пытаюсь выучить ассемблер (и влияние различных опций компилятора), анализируя простые фрагменты кода на Си. Теперь я наткнулся на следующую инструкцию: mov %edx,-0x80(%rbp,%rax,4)Что я не понимаю, это выражение для ...

ЗаданNov 13, 2012, 9:28 AMотTheodros Zelleke
  • 8голос
  • 1ответ
  • 0просмотров

Написание модуля ядра Linux x86_64 на ассемблере

Я пытаюсь написать простой модуль ядра (v3.6) в Nasm, но insmod сказать мне: $ sudo insmod ./hello.ko insmod: ERROR: could not insert module ./hello.ko: Invalid module format $ echo $? 1Я компилирую свой код с помощью: $ nasm -f elf64 -o ...

ЗаданDec 02, 2012, 9:28 AMотAlexander Lavrukov
  • 11голосов
  • 3ответа
  • 0просмотров

Ускорить сборку x64 ADD loop

я работаю над арифметикой для умножения очень длинных целых чисел (около 100 000 десятичных цифр). Как часть моей библиотеки я добавляю два длинных номера. Профилирование показывает, что мой код выполняет до 25%время в подпрограммах add () и sub ...

ЗаданDec 20, 2012, 10:22 AMотcxxl
  • 1голосов
  • 0ответов
  • 0просмотров

(сборка Linux x86_64) Почему printf со строкой формата float работает только с rsp% 0x10 = 0

У меня проблема с записью вызова printf на ассемблере Linux x86_64. Если я попробую вывести двойное значение, когдаrsp % 0x10 != 0Распечатайте падение с segfault. Посмотрите на мой код (синтаксис Nasm): [bits 64] global _start extern printf ...

ЗаданDec 22, 2012, 4:34 AMотAlexander Lavrukov
  • 4голос
  • 1ответ
  • 0просмотров

Что делает этот пролог / эпилог функции ассемблера с помощью rbp / rsp / exit?

Я только начинаю изучать ассемблер для Mac, используя компилятор GCC для сборки моего кода. К сожалению, есть ОЧЕНЬ ограниченные ресурсы для обучения, как это сделать, если вы новичок. В конце концов мне удалось найти простой пример кода, который ...

ЗаданJan 12, 2013, 4:46 PMотWilliam Oliver
  • 15голос
  • 1ответ
  • 0просмотров

Почему линкер Linux / GNU выбрал адрес 0x400000?

экспериментирую с исполняемыми файлами ELF и набором инструментов gnu в Linux x86_64: соединены и удалены (вручную)Привет, мир" test.s: .global _start .text _start: mov $1, %rax ...в исполняемый файл ELF64 размером 267 байт ... 0000000: 7f45 ...

ЗаданJan 14, 2013, 5:12 AMотAndrew Tomazos
  • 9голосов
  • 2ответа
  • 0просмотров

Расположение структур в Linux / x86-64 системных вызовов для ассемблерных программистов?

Многие системные вызовы linux / x86-64 принимают указатели на структуры в качестве аргументов. Например, второй параметрstat(2) являетсяstruct stat*... struct stat { dev_t st_dev; /* ID of device containing file */ ino_t st_ino; /* inode number ...

ЗаданJan 16, 2013, 8:50 AMотAndrew Tomazos
  • 0голос
  • 1ответ
  • 0просмотров

Бинарная бомба фаза 5

Я работал над Бинарной бомбой для школы, и я абсолютно потерян в Фазе 5. Цель задания - разобрать код и найти строку, которая, как я обнаружил, "листовок» и перепроектировать это, чтобы иметь то же самое числовое значение каклистовок» делает. Тем ...

ЗаданFeb 01, 2013, 2:17 AMотJames Brown
  • 28голосов
  • 3ответа
  • 0просмотров

x86_64 ASM - максимальное количество байт для инструкции?

Какое максимальное количество байтов требуется для полной инструкции в коде x64 asm? Я думаю, что-то вроде перехода по адресу может занимать до 9 байт:FF 00 00 00 00 11 12 3F 1Fно я нене знаю, если этоs максимальное количество байтов, ...

ЗаданFeb 04, 2013, 11:47 PMотJohnny Pauling
  • 1голос
  • 1ответ
  • 0просмотров

ASM: записать команду перехода в двоичный файл x86-64

Отладка 64-битного приложения Mac OSX с помощью GDB. Я вижу, что перепрыгивание через кусок кода решает все мои проблемы. Но: Как я могу исправить исполняемый файл для реализации перехода? Я хочу, чтобы приложение автоматически переходило к ...

ЗаданFeb 17, 2013, 12:46 PMотJohn White
  • 19голосов
  • 2ответа
  • 0просмотров

Системный вызов Intel x86 vs x64

Читая о разнице в сборке между x86 и x64. На x86 номер системного вызова помещается вeax, затемint 80h выполняется для генерации программного прерывания. Но на x64 номер системного вызова помещается вrax, затемsyscall выполняется. Я сказал, ...

ЗаданMar 01, 2013, 10:46 PMотbecks
  • 6голосов
  • 3ответа
  • 0просмотров

Что такое long double на x86-64?

Кто-то сказал мне, что: > В x86-64 арифметика FP выполняется с SSE, и поэтому long double составляет 64 бита. Но в x86-64 ABI говорится, что: C type | sizeof | alignment | AMD64 Architecture long double | 16 | 16 | 80-bit extended ...

ЗаданMar 02, 2013, 2:45 PMотAndrew Tomazos
Пред123След