Resultados da pesquisa a pedido "x86-64"

2 a resposta

Por que "mov rcx, rax" é necessário ao chamar printf no assembler x64?

Estou tentando aprender montador x64. Eu escrevi "olá mundo" e tentei chamar printf usando o seguinte código: EXTERN printf: PROC PUBLIC hello_world_asm .data hello_msg db "Hello world", 0 .code hello_world_asm PROC push rbp ; save frame pointer ...

3 a resposta

Por que posso acessar dword / word / byte inferior em um registro, mas não superior?

Comecei a aprender assembler, e isso não me parece lógico. Por que não consigo usar vários bytes mais altos em um registro? Eu entendo a razão histórica derax->eax->ax, então vamos nos concentrarNovo Registros de 64 bits. Por exemplo, eu posso ...

3 a resposta

Divisão inteira repetida por um valor constante de tempo de execução

Em algum momento do meu programa, calculo um divisor inteirod. Desse ponto em dianted vai ser constante. Mais tarde, no código, dividirei por issod várias vezes - executando uma divisão inteira, já que o valor ded não é uma constante conhecida ...

1 a resposta

Por que o alinhamento de loop em 32 bytes torna o código mais rápido?

Veja este código: one.cpp: bool test(int a, int b, int c, int d); int main() { volatile int va = 1; volatile int vb = 2; volatile int vc = 3; volatile int vd = 4; int a = va; int b = vb; int c = vc; int d = vd; int s = 0; __asm__("nop"); ...

2 a resposta

Por que o MOV AH, 1 não é suportado no modo de 64 bits do microprocessador intel?

No livro "OS MICROPROCESSADORES INTEL" de Barry B. Brey, está escrito que MOV AH, 1não é permitido no modo de 64 bits, mas permitido no modo de 32 ou 16 bits. E seMOV AL, 1 pode ser permitido no modo de 64 bits, qual é o problema comMOV AH, 1 ?

1 a resposta

Havia um modelo P4 com operações de 64 bits com bombeamento duplo?

Lembro-me de que uma das características interessantes da microarquitetura P4 inicial eraALU de bombeamento duplo [http://www.realworldtech.com/forum/?threadid=2538&curpostid=2538]. Eu acho que a Intel chamou algo como oUnidade de Execução ...

2 a resposta

Ponto flutuante duplo atômico ou carga vetorial SSE / AVX / armazenamento em x86_64

Aqui [http://en.cppreference.com/w/cpp/atomic/atomic_is_lock_free](e em algumas perguntas de SO) vejo que o C ++ não suporta algo como o free-lockstd::atomic<double> e ainda não pode suportar algo como o vetor atômico AVX / SSE porque é ...

1 a resposta

Por que esta instrução MOVSS usa endereçamento relativo ao RIP? [duplicado

Esta pergunta já tem uma resposta aqui: Por que o endereço das variáveis estáticas é relativo ao ponteiro de instruções? [/questions/40329260/why-is-the-address-of-static-variables-relative-to-the-instruction-pointer] 1 resposta Encontrei o ...

3 a resposta

Quando devo usar diretivas de tamanho em x86?

Quando usar diretivas de tamanho no x86 parece um pouco ambíguo.Este guia de montagem x86 [http://www.cs.virginia.edu/~evans/cs216/guides/x86.html]diz o seguinte: Em geral, o tamanho pretendido do item de dados em um determinado endereço ...

1 a resposta

diferença entre o registro MMX e XMM?

Atualmente, estou aprendendo programação de montagem no processador Intel x86. Alguém poderia me explicar, qual é a diferença entre o registro MMX e XMM? Estou muito confuso em termos de quais funções eles servem e a diferença e ...