Популярные вопросы по тегу 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 примеров и данн ...