EMU8086
viernes, 23 de febrero de 2018
Registros de PILA
La pila es un área de memoria importante y por ello tiene, en vez de uno, dos registros que se usan como desplazamiento (offset) para apuntar a su contenido. Se usan como complemento al registro y son:
1- SP- Stack Pointer: Se traduce como puntero de pila y es el que se reserva el procesador para uso propio en instrucciones de manipulado de pila. Por lo general, el programador no debe alterar su contenido.
2- BP- Base pointer: Se usa como registro auxiliar. El programador puede usarlo para su provecho.
Registro de Apuntador de Instrucciones
El registro apuntador de instrucciones (IP) de 16 bits contiene el desplazamiento de dirección de la siguiente instrucción que se ejecuta. El IP esta asociado con el registro CS en el sentido de que el IP indica la instrucción actual dentro del segmento de código que se esta ejecutando actualmente. Los procesadores 80386 y posteriores tienen un IP ampliado de 32 bits, llamado EIP.
La pila es un área de memoria importante y por ello tiene, en vez de uno, dos registros que se usan como desplazamiento (offset) para apuntar a su contenido. Se usan como complemento al registro y son:
1- SP- Stack Pointer: Se traduce como puntero de pila y es el que se reserva el procesador para uso propio en instrucciones de manipulado de pila. Por lo general, el programador no debe alterar su contenido.
2- BP- Base pointer: Se usa como registro auxiliar. El programador puede usarlo para su provecho.
Registro de Apuntador de Instrucciones
El registro apuntador de instrucciones (IP) de 16 bits contiene el desplazamiento de dirección de la siguiente instrucción que se ejecuta. El IP esta asociado con el registro CS en el sentido de que el IP indica la instrucción actual dentro del segmento de código que se esta ejecutando actualmente. Los procesadores 80386 y posteriores tienen un IP ampliado de 32 bits, llamado EIP.
Registro SI. El registro índice fuente de 16 bits es requerido por algunas operaciones con cadenas (de caracteres). En este contexto, el SI esta asociado con el registro DS.
Registro DI. El registro índice destino también es requerido por algunas operaciones con cadenas de caracteres. En este contexto, el DI esta asociado con el registro ES.
Ejercicio del vídeo en EMU8086
INGRESAR DATOS
.model small
.stack 64
.data
n1 db 0
n2 db 0
suma db 0
msg1 db "Dame el primer valor", '$'
msg2 db 10, 13, "Dame el segundo valor", '$'
msg3 db 10,13, "Suma", '$'
.code
inicio:
; direccionamos al segmento de datos
mov ax, @data
mov ds, ax
; solicitamos el primer digito
mov ah,09
lea dx, msg1
int 21h
; se lee el primer valor
mov ah,01
int 21h
sub al, 30h ; convertir el caracter a numero
mov n1,al
; solicitamos el segundo digito
mov ah, 09
lea dx, msg2
int 21h
; se lee el primer valor
mov ah,01
int 21h
sub al, 30h ; convertir el caracter a numero
mov n2, al
; operacion
mov al, n1
add al, n2
add al, 30h ; convierte el caracter
mov suma, al
mov ah, 09
lea dx, msg3
int 21h
; se imprime el caracter con el servicio 02 de la int 21h
mov ah, 02
mov dl, suma
int 21h
mov ah, 4ch
end inicio
end
Ejercicio del vídeo en EMU8086
INGRESAR DATOS
.model small
.stack 64
.data
n1 db 0
n2 db 0
suma db 0
msg1 db "Dame el primer valor", '$'
msg2 db 10, 13, "Dame el segundo valor", '$'
msg3 db 10,13, "Suma", '$'
.code
inicio:
; direccionamos al segmento de datos
mov ax, @data
mov ds, ax
; solicitamos el primer digito
mov ah,09
lea dx, msg1
int 21h
; se lee el primer valor
mov ah,01
int 21h
sub al, 30h ; convertir el caracter a numero
mov n1,al
; solicitamos el segundo digito
mov ah, 09
lea dx, msg2
int 21h
; se lee el primer valor
mov ah,01
int 21h
sub al, 30h ; convertir el caracter a numero
mov n2, al
; operacion
mov al, n1
add al, n2
add al, 30h ; convierte el caracter
mov suma, al
mov ah, 09
lea dx, msg3
int 21h
; se imprime el caracter con el servicio 02 de la int 21h
mov ah, 02
mov dl, suma
int 21h
mov ah, 4ch
end inicio
end
lunes, 12 de febrero de 2018
EJERCICIOS EN EMU8086 Y TURBO
emu8086
Ejemplos de banderas en emu8086
Bandera CF
CF: Bandera de acareo.
El tamaño maximo que puede soportar al es 255 y se produjo un acarreo de 1
emu8086
turbo
Ejemplos de banderas en emu8086
Bandera CF
CF: Bandera de acareo.
El tamaño maximo que puede soportar al es 255 y se produjo un acarreo de 1
Bandera ZF
ZF: Bandera de resultado 0 o comparación igual.
El resultado de la operación es 0
Bandera SF
SF: Bandera de resultado o comparación negativa.
Resultado de operación aritmética negativa.
Bandera OF
OF: Bandera de desbordamiento (aritmético).
Esta fuera del rango
martes, 6 de febrero de 2018
Registro de bandera.
El Registro de banderas es el que informa al usuario el estado actual del
microcontrolador.
De los 16 bits del registro de banderas, nueve son comunes a toda la familia de procesadores 8086, y sirven para indicar el estado actual de la maquina y el resultado del procesamiento. Muchas instrucciones que piden comparaciones y aritmética cambian el estado de las banderas, algunas cuyas instrucciones pueden realizar pruebas para determinar la acción subsecuente. En resumen, los bits de las banderas comunes son :
OF (desbordamiento) es el principal indicador de error producido durante las operaciones con signo. Vale 1 cuando:
• La suma de dos números con igual signo o la resta de dos números con signo opuesto
producen un resultado que no se puede guardar (más de 16 bits).
• El bit más significativo (el signo) del operando ha cambiado durante una operación de desplazamiento aritmético.
• El resultado de una operación de división produce un cociente que no cabe en el registro de resultado.
DF (dirección en operaciones con cadenas) si es 1 el sentido de recorrido de la cadena es de izquierda a derecha, si es 0 irá en sentido contrario.
IF (indicador de interrupción) cuando vale 1 permite al procesador reconocer interrupciones. Si se pone a 0 el procesador ignorará las solicitudes de interrupción.
TF (modo traza) indica al procesador que la ejecución es paso a paso. Se usa en la fase de depuración.
SF (indicador de signo) solo tiene sentido en las operaciones con signo. Vale 1 cuando en una de estas operaciones el signo del resultado es negativo.
ZF (indicador de cero) vale 1 cuando el resultado de una operación es cero.
AF (acarreo auxiliar) vale 1 cuando se produce acarreo o acarreo negativo en el bit 3.
PF (paridad) vale 1 si el resultado de la operación tiene como resultado un número con un número
par de bits a 1. Se usa principalmente en transmisión de datos.
CF (bit de acarreo) vale 1 si se produce acarreo en una operación de suma, o acarreo negativo en
una operación de resta. Contiene el bit que ha sido desplazado o rotado fuera de un registro o
posición de memoria. Refleja el resultado de una comparación.
El Registro de banderas es el que informa al usuario el estado actual del
microcontrolador.
De los 16 bits del registro de banderas, nueve son comunes a toda la familia de procesadores 8086, y sirven para indicar el estado actual de la maquina y el resultado del procesamiento. Muchas instrucciones que piden comparaciones y aritmética cambian el estado de las banderas, algunas cuyas instrucciones pueden realizar pruebas para determinar la acción subsecuente. En resumen, los bits de las banderas comunes son :
OF (desbordamiento) es el principal indicador de error producido durante las operaciones con signo. Vale 1 cuando:
• La suma de dos números con igual signo o la resta de dos números con signo opuesto
producen un resultado que no se puede guardar (más de 16 bits).
• El bit más significativo (el signo) del operando ha cambiado durante una operación de desplazamiento aritmético.
• El resultado de una operación de división produce un cociente que no cabe en el registro de resultado.
DF (dirección en operaciones con cadenas) si es 1 el sentido de recorrido de la cadena es de izquierda a derecha, si es 0 irá en sentido contrario.
IF (indicador de interrupción) cuando vale 1 permite al procesador reconocer interrupciones. Si se pone a 0 el procesador ignorará las solicitudes de interrupción.
TF (modo traza) indica al procesador que la ejecución es paso a paso. Se usa en la fase de depuración.
SF (indicador de signo) solo tiene sentido en las operaciones con signo. Vale 1 cuando en una de estas operaciones el signo del resultado es negativo.
ZF (indicador de cero) vale 1 cuando el resultado de una operación es cero.
AF (acarreo auxiliar) vale 1 cuando se produce acarreo o acarreo negativo en el bit 3.
PF (paridad) vale 1 si el resultado de la operación tiene como resultado un número con un número
par de bits a 1. Se usa principalmente en transmisión de datos.
CF (bit de acarreo) vale 1 si se produce acarreo en una operación de suma, o acarreo negativo en
una operación de resta. Contiene el bit que ha sido desplazado o rotado fuera de un registro o
posición de memoria. Refleja el resultado de una comparación.
miércoles, 31 de enero de 2018
Esquema del microprocesador 8086
Registros de propósito general
AX: Registro acumulador. Es el principal empleado en las operaciones aritméticas.
BX: Registro base. Se usa para indicar un desplazamiento.
CX: Registro contador. Se usa como contador en los bucles.
DX: Registro de datos. También se usa en las operaciones aritméticas.
Registros de propósito general
BX: Registro base. Se usa para indicar un desplazamiento.
CX: Registro contador. Se usa como contador en los bucles.
DX: Registro de datos. También se usa en las operaciones aritméticas.
jueves, 25 de enero de 2018
Unidad1 Introducción al lenguaje ensamblador
1.1 Importancia de la programación en lenguaje ensamblador.
El lenguaje ensamblador es un tipo de lenguaje de bajo nivel utilizado para escribir programas informáticos, y constituye la representación más directa del código máquina específico para cada arquitectura de microprocesador.
La importancia del lenguaje ensamblador es principalmente que se trabaja directamente con el microprocesador; por lo cual se debe de conocer el funcionamiento interno de este, tiene la ventaja de que en él se puede realizar cualquier tipo de programas que en los lenguajes de alto nivel no lo pueden realizar. Otro punto sería que los programas en ensamblador ocupan menos espacio en memoria.
1.2 El procesador y sus registros internos
El procesador es el que se refiere a los diferentes tipos de artículos de sistemas informativos que forma parte de un microprocesador que es parte de un CPU o micro que es el cerebro de la computadora y de todos los procesos informativos desde los más sencillos hasta los más complejos.
Los registros del procesador se emplean para controlar instrucciones en ejecución, manejar direccionamiento de memoria y proporcionar capacidad aritmética. Los registros son direccionables por medio de un nombre.
Tipos de registros
Registros de segmento.
Registros de propósito general.
Registros de apuntadores.
Registros de banderas.
Registros de Pila.
Registros Indice.
Registros de segmento
Un registro de segmento tiene 16 bits de longitud y facilita un área de memoria para direccionamiento conocida como el segmento actual.
Registro CS: El DOS almacena la dirección inicial del segmento de código de un programa en el registro CS. Esta dirección de segmento, mas un valor de desplazamiento en el registro apuntador de instrucción (IP), indica la dirección de una instrucción que es buscada para su ejecución.
Registro DS: La dirección inicial de un segmento de datos de programa es almacenada en el registro DS. En términos sencillos, esta dirección, mas un valor de desplazamiento en una instrucción, genera una referencia a la localidad de un byte especifico en el segmento de datos.
Registro SS: El registro SS permite la colocación en memoria de una pila, para almacenamiento temporal de direcciones y datos. El DOS almacena la dirección de inicio del segmento de pila de un programa en le registro SS. Esta dirección de segmento, mas un valor de desplazamiento en el registro del apuntador de pila (SP), indica la palabra actual en la pila que esta siendo direccionada.
Registros ES: Algunas operaciones con cadenas de caracteres (datos de caracteres) utilizan el registro extra de segmento para manejar el direccionamiento de memoria. En este contexto, el registro ES esta asociado con el registro DI (índice). Un programa que requiere el uso del registro ES puede inicializarlo con una dirección de segmento apropiada.
Registros FS y GS: Son registros extra de segmento en los procesadores 80386 y posteriores.
Registros de propósito general
Los registros de propósito general AX, BX, CX y DX son los caballos de batalla del sistema. Son únicos en el sentido de que se puede direccionarlos como una palabra o como una parte de un byte. El ultimo byte de la izquierda es la parte “alta”, y el ultimo byte de la derecha es la parte “baja”. Por ejemplo, el registro CX consta de una parte CH (alta) y una parte Cl (baja), y usted puede referirse a cualquier parte por su nombre.
Registros de datos:
AX: Registro acumulador. Es el principal empleado en las operaciones aritméticas.
BX: Registro base. Se usa para indicar un desplazamiento.
CX: Registro contador. Se usa como contador en los bucles.
DX: Registro de datos. También se usa en las operaciones aritméticas.
Estos registros son de uso general y también pueden ser utilizados como registros de 8 bits, para utilizarlos como tales es necesario referirse a ellos como por ejemplo: AH y AL, que son los bytes alto (high) y bajo (low) del registro AX. Esta nomenclatura es aplicable también a los registros BX, CX y DX.
El lenguaje ensamblador es un tipo de lenguaje de bajo nivel utilizado para escribir programas informáticos, y constituye la representación más directa del código máquina específico para cada arquitectura de microprocesador.
La importancia del lenguaje ensamblador es principalmente que se trabaja directamente con el microprocesador; por lo cual se debe de conocer el funcionamiento interno de este, tiene la ventaja de que en él se puede realizar cualquier tipo de programas que en los lenguajes de alto nivel no lo pueden realizar. Otro punto sería que los programas en ensamblador ocupan menos espacio en memoria.
1.2 El procesador y sus registros internos
El procesador es el que se refiere a los diferentes tipos de artículos de sistemas informativos que forma parte de un microprocesador que es parte de un CPU o micro que es el cerebro de la computadora y de todos los procesos informativos desde los más sencillos hasta los más complejos.
Los registros del procesador se emplean para controlar instrucciones en ejecución, manejar direccionamiento de memoria y proporcionar capacidad aritmética. Los registros son direccionables por medio de un nombre.
Tipos de registros
Registros de segmento.
Registros de propósito general.
Registros de apuntadores.
Registros de banderas.
Registros de Pila.
Registros Indice.
Registros de segmento
Un registro de segmento tiene 16 bits de longitud y facilita un área de memoria para direccionamiento conocida como el segmento actual.
Registro CS: El DOS almacena la dirección inicial del segmento de código de un programa en el registro CS. Esta dirección de segmento, mas un valor de desplazamiento en el registro apuntador de instrucción (IP), indica la dirección de una instrucción que es buscada para su ejecución.
Registro DS: La dirección inicial de un segmento de datos de programa es almacenada en el registro DS. En términos sencillos, esta dirección, mas un valor de desplazamiento en una instrucción, genera una referencia a la localidad de un byte especifico en el segmento de datos.
Registro SS: El registro SS permite la colocación en memoria de una pila, para almacenamiento temporal de direcciones y datos. El DOS almacena la dirección de inicio del segmento de pila de un programa en le registro SS. Esta dirección de segmento, mas un valor de desplazamiento en el registro del apuntador de pila (SP), indica la palabra actual en la pila que esta siendo direccionada.
Registros ES: Algunas operaciones con cadenas de caracteres (datos de caracteres) utilizan el registro extra de segmento para manejar el direccionamiento de memoria. En este contexto, el registro ES esta asociado con el registro DI (índice). Un programa que requiere el uso del registro ES puede inicializarlo con una dirección de segmento apropiada.
Registros FS y GS: Son registros extra de segmento en los procesadores 80386 y posteriores.
Registros de propósito general
Los registros de propósito general AX, BX, CX y DX son los caballos de batalla del sistema. Son únicos en el sentido de que se puede direccionarlos como una palabra o como una parte de un byte. El ultimo byte de la izquierda es la parte “alta”, y el ultimo byte de la derecha es la parte “baja”. Por ejemplo, el registro CX consta de una parte CH (alta) y una parte Cl (baja), y usted puede referirse a cualquier parte por su nombre.
Registros de datos:
AX: Registro acumulador. Es el principal empleado en las operaciones aritméticas.
BX: Registro base. Se usa para indicar un desplazamiento.
CX: Registro contador. Se usa como contador en los bucles.
DX: Registro de datos. También se usa en las operaciones aritméticas.
Estos registros son de uso general y también pueden ser utilizados como registros de 8 bits, para utilizarlos como tales es necesario referirse a ellos como por ejemplo: AH y AL, que son los bytes alto (high) y bajo (low) del registro AX. Esta nomenclatura es aplicable también a los registros BX, CX y DX.
Suscribirse a:
Entradas (Atom)
Conclusión del equipo #1: Puertos paralelos Un puerto paralelo es una interfaz entre un ordenador y un periférico. El puerto paralelo ...
-
Photoshop Photoshop se escribió en Pascal, aunque también tiene c++. Photoshop es un editor de gráficos que se utiliza para crear, e...
-
from turtle import * def curvemove(): for i in range ( 200 ): right( 1 ) forward( 1 ) color( 'red' , 'pink...