Resultados da pesquisa a pedido "assembly"
Por que o compilador reserva um pouco de espaço na pilha, mas não todo o tamanho da matriz?
O código a seguir int main() { int arr[120]; return arr[0]; }Compila para isso: sub rsp, 360 mov eax, DWORD PTR [rsp-480] add rsp, 360 retSabendo que as entradas são de 4 bytes e a matriz é do tamanho 120, a matriz deve ter 480 bytes, mas ...
Assembly: descritor de arquivo 0 ou 2 para ler a entrada do usuário
Estou aprendendo montagem e havia diferentes descritores de arquivo usados para ler a entrada do usuário. Para ler a entrada do teclado, eu esperava o descritor de arquivo 0 (stdin), mas me deparei com ...
Um movimento para um registro de segmentação é mais lento que um movimento para um registro de uso geral?
Especificamente é: mov %eax, %dsMais lento que mov %eax, %ebxOu eles têm a mesma velocidade. Pesquisei on-line, mas não consegui encontrar uma resposta definitiva. Não tenho certeza se essa é uma pergunta boba, mas acho que a modificação de ...
glibc scanf Falha na segmentação quando chamada de uma função que não alinha o RSP
Ao compilar o código abaixo: global main extern printf, scanf section .data msg: db "Enter a number: ",10,0 format:db "%d",0 section .bss number resb 4 section .text main: mov rdi, msg mov al, 0 call printf mov rsi, number mov rdi, format mov ...
Como as funções de bloqueio e desbloqueio do mutex impedem a reordenação da CPU?
Tanto quanto sei, uma chamada de função atua como uma barreira do compilador, mas não como uma barreira da CPU. estetutorial [http://preshing.com/20120913/acquire-and-release-semantics/]diz o seguinte: adquirir um bloqueio implica adquirir ...
Usando registros ymm como um local de armazenamento "semelhante à memória"
Considere o seguinte loop em x86: ; on entry, rdi has the number of iterations .top: ; some magic happens here to calculate a result in rax mov [array + rdi * 8], rax ; store result in output array dec rdi jnz .topÉ simples: algo calcula um ...
Como posso criar um gadget espectro na prática?
Estou desenvolvendo (NASM + GCC visando ELF64) umPoC [https://en.wikipedia.org/wiki/Proof_of_concept#Software_development]que usa um gadget espectro que mede o tempo para acessar um conjunto de linhas de cache ( FLUSH + ...
Carregando um xmm dos registros do GP
Digamos que você tenha valores emrax erdx você deseja carregar em umxmm registo. Uma maneira seria: movq xmm0, rax pinsrq xmm0, rdx, 1É bem lento! Existe uma maneira melhor?
Uma barreira da memória atua tanto como marcador quanto como instrução?
Eu li coisas diferentes sobre como funciona uma barreira de memória. Por exemplo, o usuárioJohana resposta deessa ...
Caminho mais longo na árvore binária no MIPS
Dada a árvore binária desta maneira: .data tree: .word a a: .word 5, b, c b: .word 2, d, e c: .word 1, 0, 0 d: .word 5, f, g e: .word 9, 0, h f: .word 0, 0, 0 g: .word 6, i, 0 h: .word 55, 0, j i: .word 4, 0, 0 j: .word 8, 0, 0A árvore fica ...