Resultados da pesquisa a pedido "x86"
executing assembly dentro de uma função em c ++
long getesp() { __asm__("movl %esp,%eax"); } void main() { printf("%08X\n",getesp()+4); }por que esp aponta valor antes da configuração do quadro de pilha e faz alguma diferença entre o código abaixo? void main() { __asm__("movl %esp,%eax"); }
Se a instrução parecer estar avaliando mesmo quando a condição for avaliada como false
Late At Work ontem à noite, estávamos tentando descobrir por que algo estava falhando. Uma verificação de validação falhou quando não deveri cabamos adicionando uma declaração de impressão a este código (desmontado do Reflector para verificar se ...
Possível interceptar a gravação no endereço (x86 - linux)
Eu quero detectar quando ocorre um endereço de gravação na memória - por exemplo, definindo um retorno de chamada anexado a uma interrupção. Alguém sabe como? Eu gostaria de poder fazer isso em tempo de execução (possivelmente o gdb possui esse ...
Uma instrução shift é mais rápida que uma instrução IMUL?
Qual é mais rápido - val = val*10;o val = (val<<3) + (val<<2); Quantos ciclos de relógio fazimul toma quando comparado à instrução shift?
Como posso detectar o número de núcleos na montagem x86?
Estou escrevendo um sistema operacional muito simples como uma ferramenta de aprendizado para mim. Minha tarefa atual é detectar o máximo possível sobre o hardwar Até agora, consegui encontrar muitas informações sobre a CPU usando a ...
LEA ou ADD instruções?
Quando estou montando manuscrito, geralmente escolho o formulário lea eax, [eax+4] Sobre o formulário .. add eax, 4 Ouvi dizer que lea é uma instrução "0-clock" (como NOP), enquanto 'add' não é. No entanto, quando olho para o Assembly produzido ...
Montagem em linha que derruba a zona vermelha
Estou escrevendo um programa de criptografia, e o núcleo (uma ampla rotina de multiplicação) é escrito no assembly x86-64, tanto para velocidade quanto porque usa extensivamente instruções comoadc que não são facilmente acessíveis a partir de C. ...
O que o cltq faz na montagem?
0x0000000000400553 <main+59>: mov -0x4(%rbp),%eax 0x0000000000400556 <main+62>: cltq 0x0000000000400558 <main+64>: shl $0x3,%rax 0x000000000040055c <main+68>: mov %rax,%rdx Na verdade, meu programa é tão simples quanto: 5 int main(int argc, char ...
Como os registros fs / gs são usados no Linux AMD6
Na arquitetura x86-64, dois registradores têm um propósito especial: FS e GS. No linux 2.6. *, O registro FS parece ser usado para armazenar informações sobre threads locais. Isso está correto?O que é armazenado em fs: 0? Existe alguma ...
Como mover imediatos de 128 bits para registros XMM
Já existeuma pergunt [https://stackoverflow.com/questions/4609677/implementation-of-aes-in-assembly] nisso, mas foi fechado como "ambíguo", então estou abrindo um novo - encontrei a resposta, talvez ajude os outros també A questão é: como ...