Популярные вопросы по тегу ASSEMBLY

numpy around / rint медленно по сравнению с astype (int)

... e(int) (если в конечном 9 итоге вы этого хотите). Вопрос: ли я прав, полагая, что 8 самое современное оборудование способно 7 выполнять обе операции одновременно. Если 6 да, то почему округление numpy занимает 5 в 8 раз больше времени? Так получилось, что 4 я не особо привередлив в точности арифметики, но 3 я не вижу, как этим воспользоваться с помощью 2 numpy (я занимаюсь беспорядочной биологией, а 1 ...

В чем смысл слотов задержки?

... а вызывается инструкция перехода, и 7 следующая инструкция, следующая за переходом, также 6 загружается из памяти. Какой в ​​этом смысл? Разве 5 вы н ...

x86 / x64 Добавить адресацию смещения

... процессора 9 x86 / x64 и не могу понять, что люди подразумевают 8 под адресом «смещения». Например, инструкция 7 по добавлению подробно описана здесь: http://www.c-jump.com/CIS77/CPU/x86/X77_0150_encoding_add_edx_displacement.htm Я 6 просто пытаюсь реализовать инструкцию добавл ...

Значение префикса REX.w перед AMD64 jmp (FF25)

... 10 DLL. 64-битная версия kernel32.dll использует простую 9 инструкцию FF25 jmp в своих таблицах перехода импорта. С 8 другой стороны, 64-битная версия advapi32.dll использует 7 48FF25, который указывает префикс REX.w=1 перед кодом 6 операции jmp. Однако оба, похоже, име ...

64-битный режим не поддерживает 32-битные инструкции PUSH и POP.

... ошибку типа: «инструкция 4 не поддерживается в 64-битном режиме» (Или 3 с YASM, invalid size for operand 1) Предметные инструкции: pop ecx и push e ...

Как именно работает стек вызовов?

... е 5 адрес памяти, например a и b в foo. Но опять 4 же, это означает, что не всплывает в стеке, пока мы не дойдем до a и b. Эти два случая заставляют 3 меня думать, что я не совсем понял, как 2 именно стек работает и как он стро ...

Ошибка ассемблера Linux "невозможное ограничение в asm"

... помощью: gcc testasm.c -otestasm Компилятор 6 отвечает: «Невозможное ограничение в« asm 5 »». #include <stdio.h> int main(void) { int foo=10,bar=15; __asm__ __volatile__ ("addl %%ebx,%%eax" : "=eax"(foo) : "eax"(foo), "ebx"(bar) : "eax" ); printf( ...

Как преобразовать двоичное целое число в шестнадцатеричную строку?

... ли 6 распечатывать "на лету", но хранение в памяти 5 и одновременная печать обычно более эффективны. (Вы 4 можете изменить цикл, который сохраняет, чтобы 3 вместо этого печатать по одному.) Можем ли 2 мы эффективно обрабатывать все полубайты ...

Что означает "DS: [40207A]" в сборке?

... 0103A CALL DWORD PTR DS:[40 ...

Каковы размеры операндов tword, oword и yword?

... 3 логические имена? Я знаю, что хотя размеры 12 слов могут различаться в разных системах, NASM 11 word составляет 2 байта, dword - вдвое больше (4 10 байта), qword - четверное слово (8 байтов), но 9 ... tword - это тройное слово (6 байтов)? А для oword и yword я даже 8 не могу придумать правдоподобного значения. Учтите, что 7 это, вероятно, простой вопр ...

Почему программы чаще не пишутся на ассемблере?

... семблере сильно отличается от программирования 21 на HLL. Возможно, хороший и опытный программист 20 на ассемблере сможет писать программы так 19 же легко и так же быстро, как опытный программист 18 на C, пишущий на C. Возможно, это связано 17 с тем, что программирование на ассемблере 16 сильно отличается от HLL и требует другого 15 мышления, методов и способов, из-за чего 14 кажет ...

Как проще всего определить, равно ли значение регистра нулю или нет?

... 6 проще всего проверить, равно ли значение 5 регистра нулю? Я использовал инструкцию cmp, но 4 ищу альтернативный способ. Это мой код, использующий 3 инструкцию cmp, а регистр - ebx cmp ebx,0 je equ1 mov ebx,0 jmp ...

Как работает инструкция по сборке MOVSX?

... ние байты [EDX] = 9F, перемещает 4 их в ECX, а затем расширяет их знаком, чтобы 3 они соответствовали 16 битам = 0000009F. Однако 2 фактический результат - 00000016. ...

Доступ к элементу массива на языке ассемблера (windows)

... чил доступ к элементу массива 4 ... предположим, что массив содержит день 3 недели ... например, вс, пн, вторник, среда 2 .. ...

Канонический адрес x86-64?

... На процессорах, поддерживающих 3 архитектуру Intel 64, каждое из полей IA32_SYSENTER_ESP и 2 IA32_SYSENTER_EIP до ...

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

... . Но на x64 номер системного вызова 5 помещается в rax, затем выполняется syscall. Мне сказали, что 4 syscall легче и быстрее, чем ...

Как представить шестнадцатеричное значение, такое как FFFFFFBB, в программировании на ассемблере x86?

... аю программирование на встроенной 4 ассемблере x86. Я хотел написать mov ecx, FFFFFFBB, но компиля ...

Можно ли включить встроенную сборку в код Go?

... включить встроенную сборку в ...

Понимание регистра% rip в сборке Intel

... 1b: 00 00 00 1e: c6 05 00 00 00 00 04 movb $0x4,0x0(%rip) # 25 <fun+0x25> 25: b8 0c 00 00 00 mov $0xc,%eax 2a: 5d pop %rbp 2b: c3 retq Я не знаю, как 6 вычислить термины, расположенные справа, которые, похоже, использовались 5 address of local variables. Более того, я не знаю, как рассчитать 4 его с помощью %rip re ...

Что означает точка в начале имени в GNU Assembler?

... ессора, предназначенная для ввода 5 в ассемблер GNU как: .section .isr_vector,"a",%progbits Означает ли точка в начале 4 имени .isr_vector что-нибудь особенное? PS: на это 3 имя ссылается компоновщик GNU ld. РЕДАКТИРОВАТЬ: Это 2 имя также отображается в выводе readelf 1 как заголовок раздела: Section Headers: ...

Самый оптимизированный способ расчета модуля в C

... простым 5 числом меньше 2 ^ 16, что составляет 65521 как 4 я показал для n == 2 ^ 16, побитовые операции 3 могут оптимизировать вычисления. Какие побитовые 2 операции я могу выполнить при n == 65521 ...

Что означает .comm?

... перевел эту программу, #include <stdio.h> int dam[1000][1000]; int main (int argc, const char * argv[]) { // insert code here... printf("Hello, World!\n"); return 0; } для сборки 3 с использованием gcc production, .cstring LC0: .ascii "Hello, World!\0" .text .globl _main ...

Почему перед использованием инструкции DIV значение EDX должно быть равно 0?

... Я полагал, что использование 3 div приведет к перезаписи частного eax, а остаток 2 - к перезаписи edx. Получение этой INTEGER OVERFLOW 1 ERROR действительно м ...

Что означает func в наборе инструкций R-Format?

... в языке ассемблера. Я читал об архитектуре MIPS и 3 застрял в последнем поле Формат регистра (R-Format). В ...

shrl vs sarl .. x86 сборка GNU

... Предположим, что 8 переменная X находится в регистре edx, а 7 Y находится в регистре eax, и обе они (32-битное 6 int). Что здесь происходит ?? Я знаю, что 5 shrl $ 20,% edx сдвигает% eax вправо на 4 20 бит, то же самое, что и: eax / (2 ^ 20) а 3 затем sarl то же самое, поэтому 'sa ...

Ввод-вывод с отображением памяти против ввода-вывода с отображением порта

... отображением портов использует порты (со 3 специальными инструкциями по сборке) для 2 связи через цифровые порты. В чем преимущества 1 одного метода по ...

Может ли num ++ быть атомарным для int num?

... оответствующая num++, является одной 15 инструкцией, можем ли мы сделать вывод, что 14 num++ в этом случае является атомарным? И если да, то означает ли это, что сгенерированный таким образом num++ можно использовать в параллельных (многопоточных) сценариях без какой-либо опасности гонок данных (т. е. нам не нужно делать 13 это, например, std::atomic<int> и наложить соответствующие 12 затраты, так как это все равно атомарно)? ОБНОВЛ ...

Разница между lea и offset

... ar db "Defference $" В чем разница между mov dx,offset ar и lea dx, ...

Сборка x86 - "отпуск" Инструкция

... сть movl %ebp, %esp и то, что она действует 2 для высвобождения накопленной памяти (как 1 описано в this questi ...

Что означает СМЕЩЕНИЕ в 16-битном ассемблерном коде?

... реального режима. Я наткнулся на строки: mov bx, cs mov ds, bx mov si, OFFSET value1 pop es ...

Что cltq делает в сборке?

... lt> 0x0000000000400553 <main+59>: mov -0x4(%rbp),%eax 0x0000000000400556 <main+62>: cltq 0x0000000000400558 <main+64>: shl $0x3,%rax 0x000000000040055c <main+68>: mov %rax,%rdx 0x000000000040055f <main+71>: mov 0x2003c2(%rip),%rax # 0x600928 <environ@@GLIBC_2.2.5> 0x000000000 ...

Комментирующий синтаксис для сборки синтаксиса x86 AT&T

... таксисе Intel есть комментарии через 4 точку с запятой. Когда я переключился на 3 AT&T, она действительно п ...

Что делает "nop dword ptr [rax + rax]" инструкция по сборке x64?

... 44 00 00 nop dword ptr [rax+rax] А вот скриншот: Насколько 3 мне известно, nop сам по себе является do nothing, но 2 я никогда не видел его с таким операндом. М ...

Массив печатается как 0 в 32-битной сборке Intel.

... огда я попробовал цикл и напечатал 1 значение var, он напечатал нули. .data ...

Как рассчитать целевой адрес перехода и целевой адрес филиала?

... евым адресом перехода и целевым адресом филиала и как рассчитат ...

Определение значений со знаком и без знака в сборке

... рицательный, и не установлен, если 6 он положительный. Если я обнаружу, что это 5 целое число без знака, MSB не имеет значения. Это 4 правильно? Тем не менее, это, похоже, не 3 помогает: мне все еще нужно определит ...

x86 cmpl и jne

... удет ли выполнено "jne". 80484bf: 83 7d f0 07 cmpl $0x7,-0x10(%ebp) 80484c3: 75 16 jne 80484db ...

Как я могу выполнять ввод / вывод на консоли с помощью MASM?

... авить вывод на консоль и принять 2 ввод пользователя с консоли с помощью сборк ...

В чем практическая разница между регистрами SI и DI?

... в чем разница ...

Выполнение инструкций x86 rep на современных (конвейерных / суперскалярных) процессорах

... ости 13 на современных процессорах или они просто 12 реализованы для обратной совместимости. Я 11 могу понять, почему Intel изначально реализовала 10 инструкции rep назад, когда процессоры выполняли 9 только одну инструкцию за раз, но есть ли 8 польза от их использования сейчас? С циклом, который 7 компилируется в большее количество инструкций, есть 6 еще что-то ...

Как перевести сборку в двоичный?

... # This label must be main:, not MAIN: movi r16,val # WHAT WOULD THIS LINE BE IN BINARY? movi r17,0 loop: addi r17,r17,1 subi r16,r16,1 bn ...

Инструкция BL ARM - Как это работает

... broutine at computed address. Итак, если мы 16 подумаем о столбце слева как о адресах каждой 15 инструкции, то после B по адресу 1 регистр 14 связи будет содержать значение 1, верно? Затем 13 программа переходит к методу и использует 12 значение регистра связи, чтобы узнать, куда 11 вернуться. Если мы перейдем к адресу 6, где 10 я застрял, мы знаем, какой BL копирует адрес 9 следу ...

Что означает "int 21h" в ассемблере?

... блера, и 2 мне интересно, что означает команда int 21h. Например: ...

nasm - Невозможно связать объектный файл с ld в macOS Mojave

... ld!", 10 Затем 4 я использую nasm и ld, как и раньше: $ nasm -f macho64 hello.asm $ ld hello.o -o hello Но ld выдает 3 следующую ошибку: ld: warning: No version-min specified on command line Undefined symbols for architecture x86_64: "_main", referenced from: implicit entry/start for main executable ld: symbol(s) not found for inferred architecture x86_64 Я попытался переключить 2 start ...

Как заставить GDB дизассемблировать код, когда он говорит: «Ни одна функция не содержит программный счетчик для выбранного кадра»?

... для выбранного кадра»? Отлаживая 8 программу, начиная с абсолютного адреса 7 0x00402200, я получаю следующий вывод при попытке 6 дизассемблировать код по этому адресу: [New Thread 65212.0x10378] Breakpoint 1, 0x00402200 in ?? () (gdb) stepi 0x00402202 in ...

В чем разница между iret и iretd, iretq?

... чем они отличаются 3 и какой из них использовать. спасибо за 2 помощь !! У меня есть еще один вопрос о моделировании 1 iret, вы можете взглянуть? http: //stackoverflow.com/questions/11756274/how-to-simulate-a-ir ...

Что делает эта инструкция?: - mov% gs: 0x14,% eax

... #saves ebp to stack 0x08048475 <+1>: mov %esp,%ebp # saves esp to ebp 0x08048477 <+3>: sub $0x10,%esp # making 16 bytes space in stack 0x0804847a <+6>: mov %gs:0x14,%eax # what does i ...

Симулятор mars MIPS Big or Little Endian

... анить 14 4 байта в памяти с помощью .byte 0, 0, 0, 1, в 13 памяти это отображается как 0x01000000, поэтому 12 в обратном порядке, что, кажется, указывает 11 на то, что симулятор работает с прямым порядком 10 байтов, однако, когда я загрузите 4 байта 9 как целое число в регистр, в регистре снова 8 появляется 0x01000000, как я понимаю, если 7 бы это было с прямым порядком байтов, то 6 было бы загружено 0x00000001. Кроме того, при ...

Как регистры fs / gs используются в Linux AMD64?

... альной информации потока. Это правильно? Что хранится в fs: 0? Есть ли какая-нибудь структура C, описывающая это соде ...

Когда сборка быстрее, чем C?

... изводительного кода, крайне 18 редки и требуют экспертных знаний и опыта 17 работы с сборка. Этот вопрос даже не касается 16 того факта, что инструкции ассемблера будут 15 машинно-зависимыми и непереносимыми, или 14 каких-либо других аспектов ассемблера. Конечно, есть 13 много веских причин для знания ассемблера, помимо 12 этой, но это должен быть конкретный вопрос, требующий 11 примеров и данн ...