Onde posso encontrar os conjuntos de instruções para microprocessadores Intel ou AMD? [fechadas]

0

Me desculpe se essas são perguntas estúpidas ou se não pertencem a este site. Eu não sei onde mais eu poderia perguntar isso.

Ok, primeiro de tudo, eu realmente não entendo como funcionam os conjuntos de instruções nos microprocessadores. Eles são implementados através de uma linguagem assembly? A Intel usa os mesmos conjuntos de instruções para todos os microprocessadores de uma linha de CPUs, como Haswell ou Ivy Bridge, ou cada microprocessador específico é diferente? Eu sempre achei que a microarquitetura era a mesma coisa que o conjunto de instruções, mas aparentemente não é. Alguém pode explicar isso para mim também? E uma última coisa: existe algum lugar onde se possa visualizar os conjuntos de instruções dos microprocessadores Intel ou AMD?

Muito obrigado antecipadamente.

    
por Bum Kim 19.11.2013 / 01:39

1 resposta

4

Se você quiser uma lista de instruções para qualquer CPU, geralmente você quer a referência do conjunto de instruções da CPU ou o guia de referência do programador.

Intel: link

AMD: link (os manuais do programador de arquitetura são o que você deseja)

A Intel possui várias arquiteturas de processadores, sendo o x86 o seu (e o) mais popular. O x86 foi (e continua sendo) estendido ao longo do tempo, geralmente revisões posteriores são compatíveis com versões anteriores. Por exemplo, o primeiro processador de arquitetura x86 da Intel foi o 8088. Em seguida, o 80286 foi lançado. Ele estende o conjunto de instruções do 8088. 80286 entende toda a montagem do 8088. E assim por diante em todo 80386, 80486, Pentium, a série Core e a série i.

I always thought that microarchitecture was the same thing as the instruction set

Não. A microarquitetura é "abaixo" e implementa a arquitetura principal. Neste caso, a Intel possui muitas microarquiteturas que implementam várias revisões do conjunto de instruções x86. A microarquitetura não é algo com que você precise se preocupar para aprender a programação em linguagem assembly. Você precisa saber qual x86 revisão (ou arquitetura, não micro arquitetura) que você está usando, como por ex. O Pentium tem instruções que os processadores 80386 não possuem. Você pode começar com um livro ou algo que ensine como programar um 8088, pois será mais simples e mais tarde as revisões de arquitetura (286, 386 etc.) se basearão nele.

Okay first of all, I don't really understand how instruction sets on microprocessors work. Are they implemented through an assembly language?

A linguagem de montagem permite que você, o programador, escreva a linguagem de máquina usando algo parecido com um texto legível por humanos, e normalmente permitirá que você use rótulos em vez de lembrar RAM bruta ou endereços de E / S. A alternativa seria inserir os opcodes de cada instrução manualmente, uma tarefa muito tediosa, considerando o número de instruções e modos de endereçamento x86.

Cada instrução é representada por um mnemônico e se traduz em uma única instrução em linguagem de máquina. Um assembler terá seu código de montagem (em um arquivo de texto) e montará (NÃO compila) para uma imagem binária que a CPU pode executar.

A AMD copiou o conjunto de instruções da Intel, mas começou a divergir com instruções do SSE, instruções do VMM e possivelmente outras. A maior parte do que você aprende para a montagem da Intel se aplicará, no entanto.

    
por 19.11.2013 / 01:55