La microprogramación es un lenguaje de programación a un nivel muy bajo sin llegar al nivel mas bajo (que es donde las operaciones se realizan con números binarios)
Para poder realizar la microprogramación, se deben conocer muy bien los registros del procesador en el que se va a trabajar, ya que en este lenguaje se interactúa muy de cerca con ellos.
También es importante conocer las instrucciones del mismo para poder usar algunas de ellas que simplifiquen las instrucciones, todo esto con las microinstrucciones que se usen por default para la programación
Un ejemplo de microprogramación seria la siguiente línea
MOV AX,0000000100000000b
PUSH AX
POPF
Esta instrucción pretende modificar un registro de bandera (If) con un valor de 1, estas microinstrucciones juntas en un lenguaje de alto nivel podrían significar algo como "If b = a", como se ve codificar en microprogramación es un poco mas laborioso, la ventaja de este lenguaje como en la mayoría de los lenguajes de bajo nivel, es la precisión de los datos, ya que en todo momento se sabe donde están los datos, y en que posición se encuentran los registros. PUSH AX
POPF
Como otro ejemplo se mostrara una rutina de microinstrucciones que representa una búsqueda
AR ß PC
DR ß M[AR]
PC ßPC+1
AR ß DR(0-10)
CAR(2-5) ß DR(11-14)
CAR(0,1,6) ß 0
Se muestran a continuación una tabla con instrucciones de microprogramación DR ß M[AR]
PC ßPC+1
AR ß DR(0-10)
CAR(2-5) ß DR(11-14)
CAR(0,1,6) ß 0
F1 | Microoperacion | Símbolo |
000 | Ninguno | NOP |
001 | AC ß AC + DR | ADD |
010 | AC ß 0 | CLRAC |
011 | AC ßAC+1 | INCAC |
100 | AC ß DR | DRTAC |
101 | AR ß DR(0-10) | DRTAR |
110 | AR ß PC | PCTAR |
111 | M[AR] ß DR | WRITE |
F2 | Microoperacion | Símbolo |
000 | Ninguno | NOP |
001 | AC ß AC -DR | SUB |
010 | AC ß AC < DR | OR |
011 | AC ß AC > DR | AND |
100 | DR ß M[AR] | READ |
101 | DR ß AC | ACTDR |
110 | DR ß DR + 1 | INCDR |
111 | DR(0-10) ß PC | PCTDR |
F3 | Microoperacion | Símbolo |
000 | Ninguno | NOP |
001 | AC ß AC Å DR | XOR |
010 | AC ß AC | COM |
011 | AC ß shl AC | SHL |
100 | AC ß shr AC | SHR |
101 | PC ß PC +1 | INCPC |
110 | PC ß AR | ARTPC |
111 | | Reservado |
CD | Condición | Símbolo | Comentario |
00 | Siempre = 1 | U | Transferencia incondicional |
01 | DR(15) | I | Bit de dirección indirecta |
10 | AC(15) | S | Bit se digno de AC |
11 | AC = 0 | Z | Valor cero en AC |
BR | Símbolo | Función |
00 | JMP | CAR ß AD si la condición =0 |
01 | CALL | CAR ß AD, SBR ß CAR +1 si la condición = 1 |
10 | RET | CAR ß SBR (Retorno de subrutina) |
11 | MAP | CAR(2-5) ß DR (11-14), CAR(0,1,6)ß 0 |
No hay comentarios:
Publicar un comentario