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.