Resultados da pesquisa a pedido "assembly"

3 a resposta

Quais registros são preservados através de uma chamada de função linux x86-64?

Eu acredito que entendo como o Linux x86-64 ABI usa registradores e stack para passar parâmetros para uma função (cf.discussão prévia da ABI). O que me atrap...

4 a resposta

Estado inicial dos registradores e pilha do programa no Linux ARM

No momento, estou jogando com o assembly ARM no Linux como um exercício de aprendizado. Estou usando o assembly 'bare', ou seja, sem libcrt ou libgcc...

1 a resposta

SIMD vectorize atan2 usando o assembly ARM NEON

Eu quero calcular a magnitude e o ângulo de 4 pontos usando instruções de néon SIMD e montagem do braço. Existe uma biblioteca embutida na maioria das lingua...

1 a resposta

Implementando o GDT com o kernel básico

Recentemente, fiquei fascinado com o desenvolvimento do kernel e comecei com o tutorial bare-bones no Wiki OSDev. Depois de implementar o exemplo Hello World...

3 a resposta

alocação de mul e memória nos registros edx :: eax with masm

Estou tentando entender a lógica do uso do operando "mul" no assembler (estou usando a Comunidade do Visual Studio e o MASM). Por que, depois de "mul ebx", o resultado também muda e edx, e não apenas o eax? "O resultado (de MUL) é armazenado no ...

1 a resposta

o retorno flutua para o objetivo-c a partir da função de montagem do braço

Eu escrevi uma função de montagem que funciona bem em um iPhone 4 (código de 32 bits) e também em um iPhone 6s (código de 64 bits). Passo quatro números de ponto flutuante de uma função de chamada no objetivo-c. Aqui está a estrutura que eu uso ...

2 a resposta

Implementando um Matcher para a Regex '[ab] [^ r] + r]' no assembly

Preciso de ajuda com meu código de montagem. Preciso usar código de gravação, que encontre o intervalo, adequado à minha expressão regex. Meu regex:[ab][^r]+r, primeiro, estou procurando se há 'a' ou 'b' e pule para a seção 'Iniciar'. Agora eu ...

2 a resposta

obter o lr do chamador da sub-rotina em C variável - braço

Eu tenho uma função C que é suposto obter o valor do registrador lr do chamador em uma variável local.Eu tentei o seguinte código:

2 a resposta

Por que estou recebendo zero do mov ax, bx + si + 1?

mov ax,10 mov bx,4 mov si,ax mov ax,bx+si+1 LEA ax,[bx+si+1]Quando adiciono bx, si e 1 juntos e passo para ax, o resultado é 0. Na próxima linha, quando uso o LEA, ele funciona e recebo 15. Por que estou recebendo zero ao usar o move?

3 a resposta

Melhor montagem ou compilação para um mínimo de três valores

Eu estou olhando para código gerado pelo GCC-4.8 para x86_64 e me perguntando se existe uma maneira melhor (mais rápida) de calcular o mínimo de três valores...