Resultados da pesquisa a pedido "x86-64"
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 ...
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 ...
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 ...
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 ...
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 ...
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 ...
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 ...
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 ...
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 ...
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 ...