Quando um computador interpreta instruções de nível de assembly , essas instruções são transformadas em equivalentes binários para a CPU ler. Quando a CPU executa as instruções, ela interpreta a parte opcode da instrução em "microprogramas" individuais, contendo seus equivalentes microcódigo . Apenas para você saber, uma instrução de montagem completa consiste em um opcode e qualquer dado aplicável que a acompanhe, se necessário (por exemplo, nomes de registros, endereços de memória).
As instruções de microcódigo são de nível extremamente baixo (mais ainda na montagem) e controlam os sinais digitais reais que controlam o fluxo da lógica no microprocessador. Por exemplo, uma instrução de microcódigo poderia atualizar um sinalizador de registro de código de condição com um novo valor ou conectar uma CPU registrar com uma das ALU unidades. Tarefas mais complexas são possíveis, mas isso mostra a idéia geral do qual microcódigo é usado.
O fluxo geral da compilação para a execução é o seguinte. As instruções de montagem são montadas (transformadas em seus equivalentes binários 0s e 1s, ou a partir de agora, sinais lógicos). Esses sinais lógicos são, por sua vez, interpretados pela CPU e transformados em sinais lógicos mais baixos, que direcionam o fluxo da CPU para executar a instrução específica. Isso pode levar um ou mais ciclos de clock, dependendo da arquitetura e do design do processador (a maioria dos manuais de referência de processador informa quantos ciclos de clock são necessários para executar uma instrução específica, como este, por exemplo ).
Tudo isso é feito com microcódigo programado (fisicamente incorporado ao processador em algum tipo de ROM , definido durante a fabricação), que direciona o fluxo através de portas lógicas de baixo nível reais. Isso fornece uma interface entre as instruções de montagem abstratas e a lógica elétrica física no processador.
Assim, em resumo, as instruções do processador são montadas e carregadas pelo processador. O processador então usará essas instruções para procurar o microprograma (na forma de microcódigo) correspondente àquela instrução em particular, que é o que "realmente" executa a instrução. Uma vez que os microcódigos para a instrução em particular tenham sido executados (o que pode levar um ou mais ciclos de clock), o processador executa o microcódigo para buscar a próxima instrução, e o ciclo se repete.