Tu pregunta es bastante vaga. Cuando dice cómo asigna un código de operación a binario, ¿pregunta por el ensamblador? El ensamblador leería su código fuente, analizaría las palabras "AGREGAR AX1 BX2" en "011" y cualquiera que sea el campo de bits para esos dos registros, y eliminaría un archivo binario. así que algo a lo largo de las líneas de:
strtok(p_buf," ",blah blah blah)
if (strcmp(p_buf,"ADD")
fprintf(objectocode_file,"011")
strtok(p_buf," ",blah blah blah)
if (strcmp(p_buf,"AX1")
.........
Un ensamblador básicamente consiste en analizar su lenguaje humano escrito y reescribirlo en el lenguaje de máquina, utilizando las reglas que se diseñaron en él.
¿O está preguntando sobre el registro de instrucciones (IR) y el decodificador? En el nivel de hardware, la unidad aritmética y lógica (ALU) de su CPU básicamente va a alimentar los operandos (AX, BX, CX, etc.) a las funciones lógicas para las diversas operaciones, y (nuevamente en términos muy básicos), demultiplex ( o decodifique o cambie o cualquier palabra que use) las salidas de estas diversas operaciones basadas en OPCODE, por lo que si puede imaginar las salidas del sumador, el sustractor, el registro de desplazamiento, el comparador, etc., todas como entradas a DEMUX, el control Entrada a la que seria el codigo. En verdad, el IR cambia los operandos en las entradas a las diversas funciones lógicas también.
Se trata de toda la Arquitectura del microordenador 101, y para obtener información más detallada, cualquier texto de nivel de licenciatura o posgrado debe tener todo esto.