Perguntas com a marcação «assembly»

Perguntas de programação em linguagem assembly (asm). Certifique-se de marcar também com o processador e / ou conjunto de instruções que você está usando, bem como o montador. AVISO: Para assemblies .NET, use a tag [.net-assembly]. Para Java ASM, use a tag [java-bytecode-asm].


14
<É mais rápido que <=?
É if( a &lt; 901 )mais rápido que if( a &lt;= 900 ). Não é exatamente como neste exemplo simples, mas há pequenas alterações de desempenho no código complexo de loop. Suponho que isso tenha algo a ver com o código de máquina gerado, caso isso seja verdade.

10
Substituir um contador de loop de 32 bits por 64 bits introduz desvios de desempenho malucos com _mm_popcnt_u64 em CPUs Intel
Eu estava procurando o caminho mais rápido para popcountgrandes matrizes de dados. Eu encontrei um efeito muito estranho : alterar a variável de loop de unsignedpara uint64_treduzir o desempenho em 50% no meu PC. O benchmark #include &lt;iostream&gt; #include &lt;chrono&gt; #include &lt;x86intrin.h&gt; int main(int argc, char* argv[]) { using namespace …




30
Quando a montagem é mais rápida que C?
Uma das razões declaradas para conhecer o assembler é que, ocasionalmente, ele pode ser empregado para escrever código com melhor desempenho do que escrever esse código em uma linguagem de nível superior, C em particular. No entanto, também ouvi dizer muitas vezes que, embora isso não seja totalmente falso, os …
475 c  performance  assembly 


4
Por que o Java alterna ints contíguos parece correr mais rápido com casos adicionados?
Estou trabalhando em algum código Java que precisa ser altamente otimizado, pois será executado em funções ativadas que são invocadas em muitos pontos da lógica do meu programa principal. Parte desse código envolve a multiplicação de doublevariáveis ​​por 10elevadas para int exponents não negativos arbitrários . Uma maneira rápida (edit: …

10
Usando o GCC para produzir montagem legível?
Eu queria saber como usar o GCC no meu arquivo de origem C para despejar uma versão mnemônica do código da máquina para que eu pudesse ver em que meu código estava sendo compilado. Você pode fazer isso com Java, mas não consegui encontrar uma maneira com o GCC. Estou …
256 c  gcc  assembly 

3
O que é um retpoline e como ele funciona?
Para mitigar a divulgação do kernel ou da memória entre processos (o ataque Spectre ), o kernel 1 do Linux será compilado com uma nova opção , -mindirect-branch=thunk-externapresentada gccpara executar chamadas indiretas por meio do chamado retpoline . Esse parece ser um termo recém-inventado, pois uma pesquisa no Google mostra …

10
Como é a linguagem assembly multicore?
Era uma vez, para escrever um montador x86, por exemplo, você teria instruções dizendo "carregar o registro EDX com o valor 5", "incrementar o registro EDX", etc. Com CPUs modernas que possuem 4 núcleos (ou mais), no nível do código da máquina, parece que existem 4 CPUs separadas (ou seja, …
243 assembly  x86  cpu  multicore  smp 

12
'Switch' é mais rápido que 'if'?
Uma switchdeclaração é realmente mais rápida que uma ifdeclaração? Executei o código abaixo no compilador x64 C ++ do Visual Studio 2010 com o /Oxsinalizador: #include &lt;stdlib.h&gt; #include &lt;stdio.h&gt; #include &lt;time.h&gt; #define MAX_COUNT (1 &lt;&lt; 29) size_t counter = 0; size_t testSwitch() { clock_t start = clock(); size_t i; for …



Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.