Alguém poderia explicar o que isso significa? (Intel Sintaxe, x86, Windows) and dword ptr [ebp-4],
Alguém poderia explicar o que isso significa? (Intel Sintaxe, x86, Windows) and dword ptr [ebp-4],
Esta é uma questão de baixo nível. Na montagem x86, existem duas instruções SSE: MOVDQA xmmi, m128 e MOVNTDQA xmmi, m128 O Manual do Desenvolvedor de Software IA-32 diz que NT em MOVNTDQA significa Non-Temporal e que, caso contrário, é igual a MOVDQA. Minha pergunta é: o que significa...
Todas as instruções a seguir fazem a mesma coisa: definir %eaxcomo zero. Qual caminho é o ideal (exigindo menos ciclos de máquina)? xorl %eax, %eax mov $0, %eax andl $0,
Qual é o real propósito e uso dos registros EDI e ESI no assembler? Eu sei que eles são usados para operações de string para uma coisa. Alguém também pode dar um
No Tour do x86-64 dos manuais da Intel , li Talvez o fato mais surpreendente seja que uma instrução como essa MOV EAX, EBXzera automaticamente os 32 bits superiores do RAXregistro. A documentação da Intel (3.4.1.1 Registros de uso geral no modo de 64 bits no manual Arquitetura básica) citada...
Estou tentando entender alguma montagem. A montagem da seguinte forma, estou interessado na testllinha: 000319df 8b4508 movl 0x08(%ebp), %eax 000319e2 8b4004 movl 0x04(%eax), %eax 000319e5 85c0 testl %eax, %eax 000319e7 7407 je 0x000319f0 Estou tentando entender esse ponto testlentre %eaxe...
Eu instalei o Ubuntu 14.04 (Trusty Tahr) ontem. Tudo parece bem. Mas quando tentei compilar algum código C, encontrei o seguinte erro. O erro parece ser devido à falta de suporte à arquitetura de 32 bits do sistema operacional. A saída de erro é a seguinte: /usr/bin/ld: i386 architecture of input...
Eu estive traçando um perfil de alguns de nossos cálculos matemáticos básicos em um Intel Core Duo e, ao examinar várias abordagens para a raiz quadrada, notei algo estranho: usando as operações escalares SSE, é mais rápido obter uma raiz quadrada recíproca e multiplicá-la para obter o sqrt, do que...
Como está atualmente, esta pergunta não se encaixa em nosso formato de perguntas e respostas. Esperamos que as respostas sejam apoiadas por fatos, referências ou experiência, mas esta pergunta provavelmente irá solicitar debate, argumentos, pesquisas ou discussão extensa. Se você...
Estou tentando instalar um serviço do Windows usando InstallUtil.exe e estou recebendo a mensagem de erro System.BadImageFormatException: Não foi possível carregar o arquivo ou assembly ' {xxx.exe}' ou uma de suas dependências. Foi feita uma tentativa de carregar um programa com um formato...
Algumas perguntas sobre os anéis de privilégio de CPU x86: Por que os anéis 1 e 2 não são usados pela maioria dos sistemas operacionais? É apenas para manter a compatibilidade do código com outras arquiteturas ou há um motivo melhor? Há algum sistema operacional que realmente use esses anéis?...
Então, eu sei quais são os seguintes registros e seus usos: CS = Segmento de Código (usado para IP) DS = segmento de dados (usado para MOV) ES = Segmento de Destino (usado para MOVS, etc.) SS = segmento de pilha (usado para SP) Mas para que os seguintes registros devem ser usados? FS =...
Estou fazendo um trabalho crítico de desempenho em C ++ e atualmente estamos usando cálculos inteiros para problemas que são inerentemente de ponto flutuante porque "é mais rápido". Isso causa muitos problemas irritantes e adiciona muitos códigos irritantes. Agora, eu me lembro de ter lido sobre...
Eu queria escrever algo básico em montagem no Windows, estou usando NASM, mas não consigo fazer nada funcionar. Como escrever e compilar hello world sem a ajuda de funções C no Windows?
Sou um iniciante em linguagem assembly e percebi que o código x86 emitido por compiladores geralmente mantém o ponteiro do frame por perto, mesmo no modo de liberação / otimizado, quando poderia usar o EBPregistro para outra coisa. Eu entendo por que o ponteiro do frame pode tornar o código mais...
Quando leio sobre assembler, frequentemente encontro pessoas escrevendo que empurram um certo registro do processador e o pop novamente mais tarde para restaurar seu estado anterior. Como você pode empurrar um registro? Onde é empurrado? Por que isso é necessário? Isso se resume a uma única...
Alguém pode explicar o que o seguinte código assembly faz? int 0x80
Gostaria de desmontar o MBR (primeiros 512 bytes) de um disco x86 inicializável que tenho. Copiei o MBR para um arquivo usando dd if=/dev/my-device of=mbr bs=512 count=1 Alguma sugestão de um utilitário Linux que pode desmontar o arquivo
Começando com o Pentium Pro (microarquitetura P6), a Intel redesenhou seus microprocessadores e usou o núcleo RISC interno de acordo com as antigas instruções CISC. Desde o Pentium Pro, todas as instruções CISC são divididas em partes menores (uops) e depois executadas pelo núcleo RISC. No...
Esta questão pretende preencher o vazio de boas informações gratuitas sobre o assunto. Acredito que uma boa resposta caberá em uma grande resposta do SO ou pelo menos em algumas respostas. O objetivo principal é fornecer aos iniciantes apenas informações suficientes para que possam ler o...