Resultados da pesquisa a pedido "x86-64"

2 a resposta

Diferenças na inicialização do registro EAX ao chamar uma função em C e C ++

Há uma diferença curiosa entre assemblies de um pequeno programa, quando compilado como um programa C ou como um programa C ++ - (para Linux x86-64). O código em questão: int fun(); int main(){ return fun(); }Compilando-o como um programa C ...

2 a resposta

O mfence for rdtsc é necessário na plataforma x86_64?

unsigned int lo = 0; unsigned int hi = 0; __asm__ __volatile__ ( "mfence;rdtsc" : "=a"(lo), "=d"(hi) : : "memory" );mfence no código acima, é necessário? Com base no meu teste, o pedido de CPU não foi encontrado. O fragmento do código de teste ...

1 a resposta

Compilador usando variáveis locais sem ajustar o RSP

Em questãoCompiladores: Compreendendo o código de montagem gerado a partir de pequenos programas [https://stackoverflow.com/questions/42994231/compilers-understanding-assembly-code-generated-from-small-programs/42994347#42994347] o compilador usa ...

1 a resposta

Qual é a diferença entre retq e ret?

Vamos considerar o seguinte programa, que calcula um quadrado não assinado do argumento: .global foo .text foo: mov %rdi, %rax mul %rdi retIsso é compilado corretamente poras, mas desmonta para 0000000000000000 <foo>: 0: 48 89 f8 mov %rdi,%rax ...

1 a resposta

Erro de acesso à memória sys_rt_sigaction (manipulador de sinais)

Seguindo istoInterface de sinais do Linux [http://syprog.blogspot.mx/2011/10/iterfacing-linux-signals.html]artigo, eu tenho tentado usarsys_rt_sigaction noamd64, mas sempre obtenhaerro de acesso à memóriaao enviar o sinal.sigração de ...

1 a resposta

Quais são os requisitos de alinhamento para sys_brk

Estou usando o sys_brk syscall para alocar dinamicamente a memória no heap. Percebi que, ao adquirir o local de interrupção atual, geralmente obtenho um valor semelhante a este: mov rax, 0x0C mov rdi, 0x00 syscallresulta em rax 0x401000O valor ...

1 a resposta

Convertendo código C em assembly x86-64

Estou tentando converter meu código C para x86-64. Meu objetivo é reverter uma lista vinculada. Os dois parâmetros passados são o cabeçalho ptr e o deslocamento para obter o endereço do campo do ponteiro (ou seja, o ponteiro para o próximo nó na ...

1 a resposta

x64: Por que esse código me fornece "Erro de limite de endereço"

Por que o seguinte assembly x64 me fornece "Erro de limite de endereço"? Isso só acontece quando adiciono código depoiscall _print_string. Suponho que parte do registro tenha sido modificada, mas eles não devem ser revertidos ...

1 a resposta

config.site para bibliotecas de fornecedores no Fedora x86_64

Estou tendo problemas para criar algumas bibliotecas baseadas em Autotool no Fedora 26, x86_64. O Fedora de 64 bits coloca bibliotecas de terceiros e fornecedores em/usr/local/lib64. O Ubuntu 17 usa/usr/local/lib então os mesmos projetos são ...

2 a resposta

Por que o NASM no Linux altera os registros no assembly x86_64

Eu sou novo na programação de montagem x86_64. Eu estava escrevendo o programa "Hello World" simples na montagem x86_64. Abaixo está o meu código, que funciona perfeitamente bem. global _start section .data msg: db "Hello to the world of ...