Результаты поиска по запросу "x86"

2 ответа

gmplib.org/repo/gmp/file/tip/mpn/x86/mul_basecase.asm

ual C ++ _umul128 не определен при таргетинге на 32-битные Windows. Как можно умножить два 64-битных целых без знака при таргетинге на Win32? Решение должно работать только на Visual C ++ 2017 с ориентацией на 32-разрядную версию Windows.

1 ответ

 системного программирования, просто читая справочные страницы Linux и видя, что разные программы использовали

исал простуюCпрограмма, которая просто вызываетВыход() [http://man7.org/linux/man-pages/man3/exit.3.html]функция, однакоТрассирование [https://linux.die.net/man/1/strace]говорит, что двоичный файл на самом деле вызывает exit_group, является ли ...

1 ответ

@ineedahero: не стесняйтесь перестать читать после первого предложения или абзаца, а затем. Это точно описывает его нормальную работу.

mov ecx, 16 looptop: . . . loop looptopко раз будет выполняться этот цикл? Что будет еслиecx = 0 начать с? Есть лиloop прыгать или провалиться в таком случае?

ТОП публикаций

2 ответа

Может быть комментарий.

аюсь написать загрузчик (привет мир сортировки). Я использую Bochs для моделирования (платформа Linux-Ubuntu). Но я не могу сделать загрузочный ISO для моего двоичного файла. Хотя в учебнике используется VFD (виртуальная дискета), но это для ...

2 ответа

 местах. Но PowerPC relaxed все равно будет медленным для этого теста, потому что он по-прежнему требует, чтобы хранилище фиксировало L1D, а не просто находилось в буфере хранилища, так что вы могли бы испытать пинг-понг в строке кэша.

трите на этот фрагмент: #include <atomic> #include <thread> typedef volatile unsigned char Type; // typedef std::atomic_uchar Type; void fn(Type *p) { for (int i=0; i<500000000; i++) { (*p)++; } } int main() { const int N = 4; std::thread ...

2 ответа

, Форма с 2 операндами быстрее и записывает только один регистр.)

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

0 ответов

 перенести эту поддержку обратно на основную версию yasm.

граммирую на смеси C, C ++ и ассемблера, и я хотел бы получить надежные следы от любой части кода. Это в основном работает хорошо для кода C и C ++, так как я могу генерировать отладочную информацию с-g, который для современных x86-компиляторов ...

2 ответа

X86 кодирует относительное смещение ближнего вызова

Допустим, у меня есть следующий набор инструкций: 00E79E00 | E8 AE580000 CALL someprocess.00E7F6B3 00E79E05 | 85C0 TEST EAX, EAX (output taken from OllyDbg)Как мне кодировать смещение rel32 из ближнего вызова (0xE8), чтобы я мог получить ...

1 ответ

@PeterCordes интересно, никогда не думал об этом таким образом, что коды операций на самом деле иногда содержат различный размер данных, и процессор делает ноль / знак, расширяет их до правильного пути, но, конечно, вы абсолютно правы.

е всего, это домашнее задание. У меня есть цикл, чтобы получить значения из двух цифр индивидуально, и соединяя их, делая умножение первой цифры на 10 и добавление со второй цифрой, чтобы получить целое число. Я делаю все это и сохраняю в ...

1 ответ

@BeeOnRope: добавлена ​​версия SSE2. Отдельный movd / punpckldq, но все же лучше, чем 2 скалярных операции на некоторых процессорах.

тавьте себе цикл хранения-загрузки, подобный следующему, который загружаетDWORDs из несмежных местоположений и хранит их непрерывно: top: mov eax, DWORD [rsi] mov DWORD [rdi], eax mov eax, DWORD [rdx] mov DWORD [rdi + 4], eax ; unroll the above ...