4. Registros de datos : ( AX, BX,CX y DX ). Se direccionan como palabra o parte de byte. Registros de segmentos: (CS, DS, SS y ES). Registros punteros: (SP y BP). Registros índice: (SI y DI ). Se utilizan en operaciones de cadenas de caracteres. Registro apuntador a la siguiente instrucción: Indica donde se desplazará la siguiente instrucción Registros banderas: Sirven para representar el estado actual de la maquina y el resultado del procesamiento (flags)
5.
6.
7.
8.
9.
10.
11.
12. INSTRUCCIONES El Motorola 68000 tiene 56 instrucciones que, combinadas con los 14 modos de direccionamiento y los 5 formatos de datos, ofrece al programador una herramienta potente para el desarrollo de programas. Dichas instrucciones se dividen en distintos grupos : Operaciones de movimiento de datos: MOVE, MOVEA, MOVEM,MOVEQ, EXG, LEA, PEA , SWAP, LINK y UNLNK. Operaciones de aritmética entera: ADD, ADDA, ADDI, ADDQ, ADDX,CLR, CMP, MPA, CMPI, CMPM, DIVU, DIVS, EXT, MULU, MULS,NEG, NEGX, SUB, SUBA, SUBI, SUBW , SUBX y CMP. Operaciones lógicas: AND, ANDI, EOR, EORI, OR, ORI, NOT y TST Operaciones en BCD : ABCD, NBCD y SBCD Operaciones de desplazamiento y rotación: ASL, ASR, LSL, LSR, ROL, ROR, ROXL, ROXR y SWAP.
13.
14. MOV AX, SUM1: Mueve el valor de la variable SUM1 a la dirección de memoria AX, sobrescribiendo el valor anterior. Direccionamiento directo. MOV BX 200H: Mueve el valor 200 a la posición de memoria BX. Direccionamiento inmediato. MOV BL 0H: Escribe el valor 0 a la posición de memoria BL. ADD BX, AX: Lee el contenido de AX(100) lo dirige hasta la ALU esta se encarga de sumar y escribir el resultado en BX, escribiendo en la dirección el valor 300. MOV CX, 702H: Escribe el valor 702 en la posición de memoria CX.
15.
16.
17.
18. Modo inmediato Tiene dos operandos un registro y una constante que se usa por su valor. El valor constante no se tiene que buscar en memoria, pues ya se obtuvo al hacer el “fetch” de la instrucción. Por tanto, es rápido aunque no tanto como el modo registro; requiere ir al BIU por el dato. Ejemplo: MOV destino, valor: MOV AH, 9 Modo directo Uno de los operandos involucra una localidad específica de memoria. El valor constante se tiene que buscar en memoria, en la localidad especificada. Es más lento que los anteriores, pero es el más rápido para ir a memoria, pues ya “sabe” la localidad, la toma de la instrucción y no la tiene que calcular. Ejemplo: MOV AH, Variable: MOV AH, [0000].
19. Modo indirecto Se usan los registros SI, DI como apuntadores. El operando indica una localidad de memoria, cuya dirección (sólo la parte desplazamiento) está en SI o DI. Es más lento que los anteriores, pues tiene que “calcular” la localidad Ejemplos: MOV AL, [SI] Modo indexado de base [ BX o BP + SI o DI (opcionales) + constante (opcional) ] Modo direccionamiento implícito Ejemplos: PUSHF, POPF, NOP