Entradas

Mostrando las entradas de mayo, 2023

Codigo

Imagen
 

Registros de Emu8086

 2.1. Registros de datos  Los registros de datos son de 16 bits, aunque están divididos. lo que permite su acceso en 8 bits. Estos registros son de propósito general aunque todos tiene alguna función por defecto. AX (acumulador) se usa para almacenar el resultado de las operaciones, es al único registro con el que se puede hacer divisiones y multiplicaciones. Puede ser accedido en 8 bits como AH para la parte alta (HIGH) y AL (LOW) para la parte baja.  BX (registro base) almacena la dirección base para los accesos a memoria. También puede accederse como BH y BL, parte alta y baja respectivamente.  CX (contador) actúa como contador en los bucles de repetición. CL (parte baja del registro) almacena el desplazamiento en las operaciones de desplazamiento y rotación de múltiples bits.  DX (datos) es usado para almacenar los datos de las operaciones.  2.2. Registros de segmento  Los registros de segmento son de 16 bits (como ya se dicho antes) y contienen el valor de segmento. CS (segmento d

Ensamblador

.STACK n sirve para fijar un tamaño n del segmento de pila, por defecto 1K.  .DATA abre el segmento de datos.  .CODE abre el segmento de código, al final código debe aparecer END. .TEXT text le dice al ensamblador que la información que sigue es el texto del programa (instrucciones de montaje), y el código de máquina traducido debe escribirse en el segmento de texto de la memoria. DB, DW y DD se usan para asignar espacio a las variables en memoria. DB tamaño byte, DW tamaño WORD y DD tamaño DWORD. MOV  realiza la transferencia de datos del operando de origen al destino. Como ya hemos visto en  la parte de los modos de direccionamiento, MOV admite todos los tipos de direccionamiento.  Ambos operandos deben ser del mismo tamaño y no pueden estar ambos en memoria. mov rax, 1: Mueve el valor 1 al registro rax, que es utilizado para especificar el número de la llamada al sistema en Linux. mov rdi, 1: Mueve el valor 1 al registro rdi, que es utilizado como el primer argumento de la llamada a

Generación de código objeto

Imagen
 4.1 Registro Los registros son la memoria principal de la computadora. Existen diversos registros de propósito general y otros de uso exclusivo.  Algunos registros de propósito general son utilizados para cierto tipo de funciones. Existen registros acumuladores, puntero de instrucción, de pila, etc.  Distribución La distribución es el proceso en el que el programa generado puede ejecutarse en otras máquinas.  Con respecto al ensamblador, la mayoría del direccionamiento se hace relativo para que el programa sea relocalizable por un programa llamado cargador. En el caso de programas compilados se necesitan de las librerías, si son estáticas se incluyen en el ejecutable por lo que el programa se hace gráfico, si son dinámicas no pero el programa es más pequeño. Debido a la complejidad del software actual se necesitan de asistentes para poder instalar y ejecutar un programa. Operar sobre registros es más rápido y eficiente que operar sobre memoria. Por ello, la adjudicación eficiente de r

comparacion

Imagen