Articles of assembly

Por que o registrador ARM PC aponta para a instrução depois da próxima execução?

De acordo com o ARM IC. No estado ARM, o valor do PC é o endereço da instrução atual mais 8 bytes. No estado do polegar: Para as instruções B, BL, CBNZ e CBZ, o valor do PC é o endereço da instrução atual mais 4 bytes. Para todas as outras instruções que usam labels, […]

Assembly Language – Como fazer o Modulo?

Existe algo como um módulo-operador no x86 Assembler?

É possível executar uma seqüência de assembly x86 de dentro do C #?

Continuando minha formação em engenharia reversa, muitas vezes eu queria ser capaz de copiar partes do código assembly x86 e chamá-lo de uma linguagem de alto nível de minha escolha para testes. Alguém sabe de um método de chamar uma seqüência de instruções x86 de dentro de um método c #? Eu sei que isso […]

Como calcular o endereço de destino de salto e o endereço de destino da filial?

Eu sou novo no idioma Assembly . Eu estava lendo sobre arquitetura MIPS e estou preso com endereço de destino de salto e endereço de destino de filial e como calcular cada um deles.

Registros x86_64 rax / eax / ax / al sobrescrevendo o conteúdo do registro completo

Como é amplamente divulgado, os modernos processadores x86_64 possuem registradores de 64 bits que podem ser usados ​​de forma compatível com versões anteriores como registradores de 32 bits, registradores de 16 bits e até registradores de 8 bits, por exemplo: 0x1122334455667788 ================ rax (64 bits) ======== eax (32 bits) ==== ax (16 bits) == ah […]

Para que servem as instruções IN & OUT no x86?

Eu encontrei essas instruções para IN & OUT ao ler o livro “Understanding Linux Kernel”. Eu olhei para o manual de referência. 5.1.9 Instruções de E / S Essas instruções movem dados entre as portas de E / S do processador e um registro ou memory. IN Read from a port OUT Write to a […]

Quais são as diretivas CFI no Gnu Assembler (GAS) usado para?

Parece haver uma diretiva .CFI após cada linha e também há grandes variações desses ex., .cfi_startproc , .cfi_endproc etc. mais aqui . .file “temp.c” .text .globl main .type main, @function main: .LFB0: .cfi_startproc pushq %rbp .cfi_def_cfa_offset 16 movq %rsp, %rbp .cfi_offset 6, -16 .cfi_def_cfa_register 6 movl $0, %eax leave ret .cfi_endproc .LFE0: .size main, .-main […]

Como posso ver o código assembly para um programa C ++?

Como posso ver o código assembly para um programa C ++? Quais são as ferramentas populares para fazer isso?

Assembléia x86 em um Mac

Alguém sabe de quaisquer boas ferramentas (estou procurando por IDEs) para gravar assembly no Mac. O Xcode é um pouco complicado para mim. Além disso, nos Macs Intel, posso usar o genérico x86 asm? Ou há um conjunto de instruções modificado? Qualquer informação sobre postar Intel. Além disso: Eu sei que no windows, o asm […]

Por que quebrar a “dependência de saída” do LZCNT é importante?

Enquanto benchmarking, eu medi uma taxa de transferência muito menor do que eu havia calculado, o que reduzi à instrução LZCNT (isso também acontece com o TZCNT), como demonstrado nos seguintes benchmarks: xor ecx, ecx _benchloop: lzcnt eax, edx add ecx, 1 jnz _benchloop E: xor ecx, ecx _benchloop: xor eax, eax ; this shouldn’t […]