Resultados da pesquisa a pedido "x86-64"

2 a resposta

Problema ao mudar para o modo v8086 do modo protegido de 32 bits, definindo EFLAGS.VM para 1

Estou no modo protegido de 32 bits em execução no nível de privilégio atual (CPL = 0). Estou tentando entrar no modo v8086 definindo o sinalizador EFLAGS.VM (Bit 17) como 1 (e IOPL como 0) e executando um FMP JMP no meu código de modo real de 16 ...

1 a resposta

Por que clang produz asm ineficiente com -O0 (para esta soma simples de ponto flutuante

Estou desmontando este código no llvm clang Apple LLVM versão 8.0.0 (clang-800.0.42.1): int main() { float a=0.151234; float b=0.2; float c=a+b; printf("%f", c); } Compilei sem especificações -O, mas também tentei com -O0 (fornece o mesmo) ...

1 a resposta

rbp não permitido como base SIB?

Eu sou bastante novo na codificação binária x86-64. Estou tentando corrigir algum código antigo de "assembler". e qualquer forma, estou tentando fazer algo assim (sintaxe da Intel): mov [rbp+rcx], al O montador está atualmente gerando ...

1 a resposta

Qual é a diferença entre as instruções x86-64 da AT&T movq e movabsq?

Depois de leresta resposta de estouro de pilha [https://stackoverflow.com/questions/40315803/difference-between-movq-and-movabsq-in-x86-64] eesse documento [https://www.cs.cmu.edu/~fp/courses/15213-s07/misc/asm64-handout.pdf], Ainda não entendo a ...

1 a resposta

Como mover o dobro em% rax para uma determinada posição qword em% ymm ou% zmm? (Kaby Lake ou posterior)

A ideia é que eu gostaria de coletar valores retornados dedouble em um registro vetorial para processamento para máquinaimm width de uma vezsemarmazenando de volta na memória primeiro. O processamento específico é umvfma com outros dois ...

3 a resposta

Montagem intrigante para comparar std :: optional de tipos primitivos

Valgrind pegou uma enxurradaSalto ou movimento condicional depende de valores não inicializados em um dos meus testes de unidade. Inspecionando a montagem, percebi que o seguinte código: bool operator==(MyType const& left, MyType const& right) ...

1 a resposta

Que considerações são necessárias para prever a latência das operações em processadores superescalares modernos e como posso calculá-las manualmente?

Quero poder prever, manualmente, por quanto tempo aritmética arbitrária (ou seja, sem ramificação ou memória, embora isso seja bom também) o código de montagem x86-64 levará em conta uma arquitetura específica, levando em conta a reordenação de ...

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

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

3 a resposta

Como obter argumentos de valor usando assembly embutido em C sem Glibc?

Como obter argumentos de valor usando assembly embutido em C sem Glibc? eu preciso desse código paraLinux arquitecturax86_64 ei386. se você conheceMAC OS X ouWindows , também envie e guie. void exit(int code) { //This function not important! ...