Resultados da pesquisa a pedido "assembly"

2 a resposta

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 ...

1 a resposta

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 ...

1 a resposta

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 ...

1 a resposta

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 ...

2 a resposta

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 ...

2 a resposta

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 ...

1 a resposta

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 + ...

1 a resposta

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?

1 a resposta

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 ...

1 a resposta

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 ...