Resultados da pesquisa a pedido "x86-64"

1 a resposta

ponteiro da pilha de economia de falha na segmentação x86-64

Atualmente, estou acompanhandoeste tutorial [http://web.cecs.pdx.edu/~kstew2/cs533/project/assign1/], mas não sou aluno dessa escola. GDB me causa uma falha de segmentação emthread_start na linha movq %rsp, (%rdi) # save sp in old thread's tcb ...

1 a resposta

x86_64: IMUL é mais rápido que 2x SHL + 2x AD

Ao ver a montagem produzida pelo Visual Studio (2015U2) em/O2odo @ (release) Vi que esse trecho de código C 'otimizado à mão' é convertido novamente em uma multiplicação: int64_t calc(int64_t a) { return (a << 6) + (a << 16) - a; }Montagem imul ...

1 a resposta

O que acontece se você usar a ABI int 0x80 Linux de 32 bits no código de 64 bits?

int 0x80 no Linux sempre chama a ABI de 32 bits, independentemente de qual modo é chamado: args inebx, ecx, ... e números syscall de/usr/include/asm/unistd_32.h. (Ou trava nos kernels de 64 bits compilados semCONFIG_IA32_EMULATION). Código de ...

4 a resposta

Quais são as convenções de chamada para as chamadas do sistema UNIX e Linux no i386 e x86-64

s links a seguir explicam as convenções de chamada do sistema x86-32 para UNIX (sabor BSD) e Linux: http: //www.int80h.org/bsdasm/#system-call [http://www.int80h.org/bsdasm/#system-calls] http: ...

3 a resposta

m quais plataformas o número inteiro dividido por zero aciona uma exceção de ponto flutuant

Em outra pergunta, alguém estava se perguntando por que eles estavam recebendo um "erro de ponto flutuante" quando na verdade eles tinham um número inteiro dividido por zero em seu programa C ++. Surgiu uma discussão em torno disso, com alguns ...

1 a resposta

SSE: carregamento e armazenamento desalinhados que cruzam o limite da página

Li em algum lugar que antes de executar carregamento desalinhado ou armazene próximo ao limite da página (por exemplo, usando_mm_loadu_si128 / _mm_storeu_si128 intrinsics), o código deve primeiro verificar se o vetor inteiro (neste caso, 16 ...

2 a resposta

As vantagens de usar registros / instruções de 32 bits em x86-64

s vezes, o gcc usa um registro de 32 bits, quando eu esperava que ele usasse um registro de 64 bits. Por exemplo, o seguinte código C: unsigned long long div(unsigned long long a, unsigned long long b){ return a/b; } é compilado com a opção -O2 ...

2 a resposta

C sem assinatura por muito tempo e imulq

Como alguém novo na montagem, uso o gcc para engenharia reversa. Mas agora encontrei um problema de alguma forma engraçado: tento multiplicar dois inteiros de 64 bits por x86-64. O código C tem a seguinte aparência: unsigned long long ...

1 a resposta

Por que esta instrução MOVSS usa endereçamento relativo ao RIP? [duplicado

Esta pergunta já tem uma resposta aqui: Por que o endereço das variáveis estáticas é relativo ao ponteiro de instruções? [/questions/40329260/why-is-the-address-of-static-variables-relative-to-the-instruction-pointer] 1 resposta Encontrei o ...

1 a resposta

x86_64 registra rax / eax / ax / al sobrescrevendo o conteúdo completo do registro [duplicado]

Esta pergunta já tem uma resposta aqui: Por que as instruções x86-64 nos registros de 32 bits zeram a parte superior do registro completo de 64 ...