Está en la página 1de 27

1. Defina el registro de banderas y explique la función de cada bit que lo conforma.

El Registro de banderas es el que informa al usuario el estado actual del microcontrolador.


Las banderas y la posición de sus bits en el registro de banderas (Flag Register)
El Registro de banderas contiene 8 bits que nos dicen el estado del microcontrolador y son manipuladas por las
operaciones del CPU. Cuatro de estos bits (C, V, Z y S) se pueden examinar para usar las condiciones de salto
condicional. Dos banderas (H y D) son usadas para aritmética BCD. Los otros dos bits en el registro de banderas
son para las banderas del reinicio por termino de conteo del WDT y para la bandera del Stop Mode Recovery.
#Bit Sim Significado Función
0 C Carry (Acarreo) Indica que hubo acarreo después de una suma
o un “préstamo” después de una resta.
También indica condiciones de error, según lo
establezcan algunos programas o
procedimientos.
2 P Parity (Paridad) Es 0 para paridad impar y 1 para la par
4 A Adjust (Acarreo auxiliar) Contiene el acarreo después de una suma o el
préstamo después de una resta entre las
posiciones de bit 3 y 4 del resultado, ninguna
otra instrucción utiliza esta bandera.
6 Z Zero (Cero) Indica si el resultado de una operación
aritmética o lógica es cero. Si Z=1, el
resultado es cero; si Z=0, el resultado es
diferente de cero
7 S Sign (Signo) Indica el signo aritmético del resultado
después de una operación aritmética o lógica.
Si S=1, el bit del signo (el bit del extremo
izquierdo de un número) se encuentra activado
o es negativo; si S=0, el bit de signo esta
inactivado o es positivo.
8 T Trap (Trampa) Habilita la función de captura de errores por
medio de una característica de depuración del
µP. Si la bandera T está habilitada (1), el µP
interrumpe el flujo de un programa bajo las
condiciones especificadas en los registros de
depuración y los de control. Si T esta en cero
lógico, la función de depuración se encuentra
deshabilitada.
9 I Interrupt (Interrupción) Controla la operación de la terminar de
entrada INTR(solicitud de interrupción). El
estado del bit de bandera I es controlado por
las instrucciones STI (activar bandera de
interrupción) y CLI (borrar bandera de
interrupción)
10 D Direction (Dirección) Controla la selección de incremento o
decremento de los registros DI o SI en
instrucciones de cadenas. Si D=1, los registros
disminuyen automáticamente; si D=0, los
registros aumentan automáticamente. La
bandera D se activaron la instrucción
STD(activar bandera de dirección) y se
desactiva con la instrucción CLD (borrar
bandera de dirección)
11 O Overflow Indica que el resultado de una operación
(Desbordamiento) aritmética con números con signo ha excedido
la capacidad de la máquina.
12-13 IOPL I/O privilege level (Nivel EN modo protegido, IOPL selecciona el nivel
de privilegio de E/S) de privilegio para los dispositivos de E/S. Si el
nivel de privilegio actual es mayor o más
confiable que el IOPL, E/S se ejecuta sin
impedimento. Si el IOPL es menor que el
nivel actual, ocurre una interrupción
ocasionando la suspensión de la ejecución.
IOPL=00 nivel más alto, IOPL=11 nivel más
bajo.
14 NT Nested task (Tarea anidada) Señala que tarea actual esta anidada pro
software dentro de otra, en el modo protegido
de operación.
Los bits 1,3,5 y 15 están reservados o tienen un valor fijo de 1.

2. Investigar el uso de las siguientes instrucciones y realizar un pequeño ejemplo con


cada una de ellas.
 XCHG

 LAHF
 SAHF
 XLAT
 MOVZX
 BSWAP
 CMOV
 SHL
 SHR

 RCL
 ROL
 RCR
 ROR
3. Defina el registro de banderas y explique la función de cada bit que lo conforma.

El Registro de banderas es el que informa al usuario el estado actual del microcontrolador.


Las banderas y la posición de sus bits en el registro de banderas (Flag Register)
El Registro de banderas contiene 8 bits que nos dicen el estado del microcontrolador y son manipuladas por las
operaciones del CPU. Cuatro de estos bits (C, V, Z y S) se pueden examinar para usar las condiciones de salto
condicional. Dos banderas (H y D) son usadas para aritmética BCD. Los otros dos bits en el registro de banderas
son para las banderas del reinicio por termino de conteo del WDT y para la bandera del Stop Mode Recovery.
#Bit Sim Significado Función
0 C Carry (Acarreo) Indica que hubo acarreo después de una suma
o un “préstamo” después de una resta.
También indica condiciones de error, según lo
establezcan algunos programas o
procedimientos.
2 P Parity (Paridad) Es 0 para paridad impar y 1 para la par
4 A Adjust (Acarreo auxiliar) Contiene el acarreo después de una suma o el
préstamo después de una resta entre las
posiciones de bit 3 y 4 del resultado, ninguna
otra instrucción utiliza esta bandera.
6 Z Zero (Cero) Indica si el resultado de una operación
aritmética o lógica es cero. Si Z=1, el
resultado es cero; si Z=0, el resultado es
diferente de cero
7 S Sign (Signo) Indica el signo aritmético del resultado
después de una operación aritmética o lógica.
Si S=1, el bit del signo (el bit del extremo
izquierdo de un número) se encuentra activado
o es negativo; si S=0, el bit de signo esta
inactivado o es positivo.
8 T Trap (Trampa) Habilita la función de captura de errores por
medio de una característica de depuración del
µP. Si la bandera T está habilitada (1), el µP
interrumpe el flujo de un programa bajo las
condiciones especificadas en los registros de
depuración y los de control. Si T esta en cero
lógico, la función de depuración se encuentra
deshabilitada.
9 I Interrupt (Interrupción) Controla la operación de la terminar de
entrada INTR(solicitud de interrupción). El
estado del bit de bandera I es controlado por
las instrucciones STI (activar bandera de
interrupción) y CLI (borrar bandera de
interrupción)
10 D Direction (Dirección) Controla la selección de incremento o
decremento de los registros DI o SI en
instrucciones de cadenas. Si D=1, los registros
disminuyen automáticamente; si D=0, los
registros aumentan automáticamente. La
bandera D se activaron la instrucción
STD(activar bandera de dirección) y se
desactiva con la instrucción CLD (borrar
bandera de dirección)
11 O Overflow Indica que el resultado de una operación
(Desbordamiento) aritmética con números con signo ha excedido
la capacidad de la máquina.
12-13 IOPL I/O privilege level (Nivel EN modo protegido, IOPL selecciona el nivel
de privilegio de E/S) de privilegio para los dispositivos de E/S. Si el
nivel de privilegio actual es mayor o más
confiable que el IOPL, E/S se ejecuta sin
impedimento. Si el IOPL es menor que el
nivel actual, ocurre una interrupción
ocasionando la suspensión de la ejecución.
IOPL=00 nivel más alto, IOPL=11 nivel más
bajo.
14 NT Nested task (Tarea anidada) Señala que tarea actual esta anidada pro
software dentro de otra, en el modo protegido
de operación.
Los bits 1,3,5 y 15 están reservados o tienen un valor fijo de 1.

4. Investigar el uso de las siguientes instrucciones y realizar un pequeño ejemplo con


cada una de ellas.
 XCHG

 LAHF
 SAHF
 XLAT
 MOVZX
 BSWAP
 CMOV
 SHL
 SHR

 RCL
 ROL
 RCR
 ROR
5. Defina el registro de banderas y explique la función de cada bit que lo conforma.

El Registro de banderas es el que informa al usuario el estado actual del microcontrolador.


Las banderas y la posición de sus bits en el registro de banderas (Flag Register)
El Registro de banderas contiene 8 bits que nos dicen el estado del microcontrolador y son manipuladas por las
operaciones del CPU. Cuatro de estos bits (C, V, Z y S) se pueden examinar para usar las condiciones de salto
condicional. Dos banderas (H y D) son usadas para aritmética BCD. Los otros dos bits en el registro de banderas
son para las banderas del reinicio por termino de conteo del WDT y para la bandera del Stop Mode Recovery.
#Bit Sim Significado Función
0 C Carry (Acarreo) Indica que hubo acarreo después de una suma
o un “préstamo” después de una resta.
También indica condiciones de error, según lo
establezcan algunos programas o
procedimientos.
2 P Parity (Paridad) Es 0 para paridad impar y 1 para la par
4 A Adjust (Acarreo auxiliar) Contiene el acarreo después de una suma o el
préstamo después de una resta entre las
posiciones de bit 3 y 4 del resultado, ninguna
otra instrucción utiliza esta bandera.
6 Z Zero (Cero) Indica si el resultado de una operación
aritmética o lógica es cero. Si Z=1, el
resultado es cero; si Z=0, el resultado es
diferente de cero
7 S Sign (Signo) Indica el signo aritmético del resultado
después de una operación aritmética o lógica.
Si S=1, el bit del signo (el bit del extremo
izquierdo de un número) se encuentra activado
o es negativo; si S=0, el bit de signo esta
inactivado o es positivo.
8 T Trap (Trampa) Habilita la función de captura de errores por
medio de una característica de depuración del
µP. Si la bandera T está habilitada (1), el µP
interrumpe el flujo de un programa bajo las
condiciones especificadas en los registros de
depuración y los de control. Si T esta en cero
lógico, la función de depuración se encuentra
deshabilitada.
9 I Interrupt (Interrupción) Controla la operación de la terminar de
entrada INTR(solicitud de interrupción). El
estado del bit de bandera I es controlado por
las instrucciones STI (activar bandera de
interrupción) y CLI (borrar bandera de
interrupción)
10 D Direction (Dirección) Controla la selección de incremento o
decremento de los registros DI o SI en
instrucciones de cadenas. Si D=1, los registros
disminuyen automáticamente; si D=0, los
registros aumentan automáticamente. La
bandera D se activaron la instrucción
STD(activar bandera de dirección) y se
desactiva con la instrucción CLD (borrar
bandera de dirección)
11 O Overflow Indica que el resultado de una operación
(Desbordamiento) aritmética con números con signo ha excedido
la capacidad de la máquina.
12-13 IOPL I/O privilege level (Nivel EN modo protegido, IOPL selecciona el nivel
de privilegio de E/S) de privilegio para los dispositivos de E/S. Si el
nivel de privilegio actual es mayor o más
confiable que el IOPL, E/S se ejecuta sin
impedimento. Si el IOPL es menor que el
nivel actual, ocurre una interrupción
ocasionando la suspensión de la ejecución.
IOPL=00 nivel más alto, IOPL=11 nivel más
bajo.
14 NT Nested task (Tarea anidada) Señala que tarea actual esta anidada pro
software dentro de otra, en el modo protegido
de operación.
Los bits 1,3,5 y 15 están reservados o tienen un valor fijo de 1.

6. Investigar el uso de las siguientes instrucciones y realizar un pequeño ejemplo con


cada una de ellas.
 XCHG

 LAHF
 SAHF
 XLAT
 MOVZX
 BSWAP
 CMOV
 SHL
 SHR

 RCL
 ROL
 RCR
 ROR

7. Defina el registro de banderas y explique la función de cada bit que lo conforma.

El Registro de banderas es el que informa al usuario el estado actual del microcontrolador.


Las banderas y la posición de sus bits en el registro de banderas (Flag Register)
El Registro de banderas contiene 8 bits que nos dicen el estado del microcontrolador y son manipuladas por las
operaciones del CPU. Cuatro de estos bits (C, V, Z y S) se pueden examinar para usar las condiciones de salto
condicional. Dos banderas (H y D) son usadas para aritmética BCD. Los otros dos bits en el registro de banderas
son para las banderas del reinicio por termino de conteo del WDT y para la bandera del Stop Mode Recovery.
#Bit Sim Significado Función
0 C Carry (Acarreo) Indica que hubo acarreo después de una suma
o un “préstamo” después de una resta.
También indica condiciones de error, según lo
establezcan algunos programas o
procedimientos.
2 P Parity (Paridad) Es 0 para paridad impar y 1 para la par
4 A Adjust (Acarreo auxiliar) Contiene el acarreo después de una suma o el
préstamo después de una resta entre las
posiciones de bit 3 y 4 del resultado, ninguna
otra instrucción utiliza esta bandera.
6 Z Zero (Cero) Indica si el resultado de una operación
aritmética o lógica es cero. Si Z=1, el
resultado es cero; si Z=0, el resultado es
diferente de cero
7 S Sign (Signo) Indica el signo aritmético del resultado
después de una operación aritmética o lógica.
Si S=1, el bit del signo (el bit del extremo
izquierdo de un número) se encuentra activado
o es negativo; si S=0, el bit de signo esta
inactivado o es positivo.
8 T Trap (Trampa) Habilita la función de captura de errores por
medio de una característica de depuración del
µP. Si la bandera T está habilitada (1), el µP
interrumpe el flujo de un programa bajo las
condiciones especificadas en los registros de
depuración y los de control. Si T esta en cero
lógico, la función de depuración se encuentra
deshabilitada.
9 I Interrupt (Interrupción) Controla la operación de la terminar de
entrada INTR(solicitud de interrupción). El
estado del bit de bandera I es controlado por
las instrucciones STI (activar bandera de
interrupción) y CLI (borrar bandera de
interrupción)
10 D Direction (Dirección) Controla la selección de incremento o
decremento de los registros DI o SI en
instrucciones de cadenas. Si D=1, los registros
disminuyen automáticamente; si D=0, los
registros aumentan automáticamente. La
bandera D se activaron la instrucción
STD(activar bandera de dirección) y se
desactiva con la instrucción CLD (borrar
bandera de dirección)
11 O Overflow Indica que el resultado de una operación
(Desbordamiento) aritmética con números con signo ha excedido
la capacidad de la máquina.
12-13 IOPL I/O privilege level (Nivel EN modo protegido, IOPL selecciona el nivel
de privilegio de E/S) de privilegio para los dispositivos de E/S. Si el
nivel de privilegio actual es mayor o más
confiable que el IOPL, E/S se ejecuta sin
impedimento. Si el IOPL es menor que el
nivel actual, ocurre una interrupción
ocasionando la suspensión de la ejecución.
IOPL=00 nivel más alto, IOPL=11 nivel más
bajo.
14 NT Nested task (Tarea anidada) Señala que tarea actual esta anidada pro
software dentro de otra, en el modo protegido
de operación.
Los bits 1,3,5 y 15 están reservados o tienen un valor fijo de 1.

8. Investigar el uso de las siguientes instrucciones y realizar un pequeño ejemplo con


cada una de ellas.
 XCHG

 LAHF
 SAHF
 XLAT
 MOVZX
 BSWAP
 CMOV
 SHL
 SHR

 RCL
 ROL
 RCR
 ROR

9. Defina el registro de banderas y explique la función de cada bit que lo conforma.

El Registro de banderas es el que informa al usuario el estado actual del microcontrolador.


Las banderas y la posición de sus bits en el registro de banderas (Flag Register)
El Registro de banderas contiene 8 bits que nos dicen el estado del microcontrolador y son manipuladas por las
operaciones del CPU. Cuatro de estos bits (C, V, Z y S) se pueden examinar para usar las condiciones de salto
condicional. Dos banderas (H y D) son usadas para aritmética BCD. Los otros dos bits en el registro de banderas
son para las banderas del reinicio por termino de conteo del WDT y para la bandera del Stop Mode Recovery.
#Bit Sim Significado Función
0 C Carry (Acarreo) Indica que hubo acarreo después de una suma
o un “préstamo” después de una resta.
También indica condiciones de error, según lo
establezcan algunos programas o
procedimientos.
2 P Parity (Paridad) Es 0 para paridad impar y 1 para la par
4 A Adjust (Acarreo auxiliar) Contiene el acarreo después de una suma o el
préstamo después de una resta entre las
posiciones de bit 3 y 4 del resultado, ninguna
otra instrucción utiliza esta bandera.
6 Z Zero (Cero) Indica si el resultado de una operación
aritmética o lógica es cero. Si Z=1, el
resultado es cero; si Z=0, el resultado es
diferente de cero
7 S Sign (Signo) Indica el signo aritmético del resultado
después de una operación aritmética o lógica.
Si S=1, el bit del signo (el bit del extremo
izquierdo de un número) se encuentra activado
o es negativo; si S=0, el bit de signo esta
inactivado o es positivo.
8 T Trap (Trampa) Habilita la función de captura de errores por
medio de una característica de depuración del
µP. Si la bandera T está habilitada (1), el µP
interrumpe el flujo de un programa bajo las
condiciones especificadas en los registros de
depuración y los de control. Si T esta en cero
lógico, la función de depuración se encuentra
deshabilitada.
9 I Interrupt (Interrupción) Controla la operación de la terminar de
entrada INTR(solicitud de interrupción). El
estado del bit de bandera I es controlado por
las instrucciones STI (activar bandera de
interrupción) y CLI (borrar bandera de
interrupción)
10 D Direction (Dirección) Controla la selección de incremento o
decremento de los registros DI o SI en
instrucciones de cadenas. Si D=1, los registros
disminuyen automáticamente; si D=0, los
registros aumentan automáticamente. La
bandera D se activaron la instrucción
STD(activar bandera de dirección) y se
desactiva con la instrucción CLD (borrar
bandera de dirección)
11 O Overflow Indica que el resultado de una operación
(Desbordamiento) aritmética con números con signo ha excedido
la capacidad de la máquina.
12-13 IOPL I/O privilege level (Nivel EN modo protegido, IOPL selecciona el nivel
de privilegio de E/S) de privilegio para los dispositivos de E/S. Si el
nivel de privilegio actual es mayor o más
confiable que el IOPL, E/S se ejecuta sin
impedimento. Si el IOPL es menor que el
nivel actual, ocurre una interrupción
ocasionando la suspensión de la ejecución.
IOPL=00 nivel más alto, IOPL=11 nivel más
bajo.
14 NT Nested task (Tarea anidada) Señala que tarea actual esta anidada pro
software dentro de otra, en el modo protegido
de operación.
Los bits 1,3,5 y 15 están reservados o tienen un valor fijo de 1.

10. Investigar el uso de las siguientes instrucciones y realizar un pequeño ejemplo con
cada una de ellas.
 XCHG

 LAHF
 SAHF
 XLAT
 MOVZX
 BSWAP
 CMOV
 SHL
 SHR

 RCL
 ROL
 RCR
 ROR

Los bits 1,3,5 y 15 están reservados o tienen un valor fijo de 1.

11. Investigar el uso de las siguientes instrucciones y realizar un pequeño ejemplo con
cada una de ellas.
 XCHG

 LAHF
 SAHF
 XLAT
 MOVZX
 BSWAP
 CMOV
 SHL
 SHR

 RCL
 ROL
 RCR
 ROR
12. Defina el registro de banderas y explique la función de cada bit que lo conforma.

El Registro de banderas es el que informa al usuario el estado actual del microcontrolador.


Las banderas y la posición de sus bits en el registro de banderas (Flag Register)
El Registro de banderas contiene 8 bits que nos dicen el estado del microcontrolador y son manipuladas por las
operaciones del CPU. Cuatro de estos bits (C, V, Z y S) se pueden examinar para usar las condiciones de salto
condicional. Dos banderas (H y D) son usadas para aritmética BCD. Los otros dos bits en el registro de banderas
son para las banderas del reinicio por termino de conteo del WDT y para la bandera del Stop Mode Recovery.
#Bit Sim Significado Función
0 C Carry (Acarreo) Indica que hubo acarreo después de una suma
o un “préstamo” después de una resta.
También indica condiciones de error, según lo
establezcan algunos programas o
procedimientos.
2 P Parity (Paridad) Es 0 para paridad impar y 1 para la par
4 A Adjust (Acarreo auxiliar) Contiene el acarreo después de una suma o el
préstamo después de una resta entre las
posiciones de bit 3 y 4 del resultado, ninguna
otra instrucción utiliza esta bandera.
6 Z Zero (Cero) Indica si el resultado de una operación
aritmética o lógica es cero. Si Z=1, el
resultado es cero; si Z=0, el resultado es
diferente de cero
7 S Sign (Signo) Indica el signo aritmético del resultado
después de una operación aritmética o lógica.
Si S=1, el bit del signo (el bit del extremo
izquierdo de un número) se encuentra activado
o es negativo; si S=0, el bit de signo esta
inactivado o es positivo.
8 T Trap (Trampa) Habilita la función de captura de errores por
medio de una característica de depuración del
µP. Si la bandera T está habilitada (1), el µP
interrumpe el flujo de un programa bajo las
condiciones especificadas en los registros de
depuración y los de control. Si T esta en cero
lógico, la función de depuración se encuentra
deshabilitada.
9 I Interrupt (Interrupción) Controla la operación de la terminar de
entrada INTR(solicitud de interrupción). El
estado del bit de bandera I es controlado por
las instrucciones STI (activar bandera de
interrupción) y CLI (borrar bandera de
interrupción)
10 D Direction (Dirección) Controla la selección de incremento o
decremento de los registros DI o SI en
instrucciones de cadenas. Si D=1, los registros
disminuyen automáticamente; si D=0, los
registros aumentan automáticamente. La
bandera D se activaron la instrucción
STD(activar bandera de dirección) y se
desactiva con la instrucción CLD (borrar
bandera de dirección)
11 O Overflow Indica que el resultado de una operación
(Desbordamiento) aritmética con números con signo ha excedido
la capacidad de la máquina.
12-13 IOPL I/O privilege level (Nivel EN modo protegido, IOPL selecciona el nivel
de privilegio de E/S) de privilegio para los dispositivos de E/S. Si el
nivel de privilegio actual es mayor o más
confiable que el IOPL, E/S se ejecuta sin
impedimento. Si el IOPL es menor que el
nivel actual, ocurre una interrupción
ocasionando la suspensión de la ejecución.
IOPL=00 nivel más alto, IOPL=11 nivel más
bajo.
14 NT Nested task (Tarea anidada) Señala que tarea actual esta anidada pro
software dentro de otra, en el modo protegido
de operación.
Los bits 1,3,5 y 15 están reservados o tienen un valor fijo de 1.

13. Investigar el uso de las siguientes instrucciones y realizar un pequeño ejemplo con
cada una de ellas.
 XCHG

 LAHF
 SAHF
 XLAT
 MOVZX
 BSWAP
 CMOV
 SHL
 SHR

 RCL
 ROL
 RCR
 ROR

14. Defina el registro de banderas y explique la función de cada bit que lo conforma.

El Registro de banderas es el que informa al usuario el estado actual del microcontrolador.


Las banderas y la posición de sus bits en el registro de banderas (Flag Register)
El Registro de banderas contiene 8 bits que nos dicen el estado del microcontrolador y son manipuladas por las
operaciones del CPU. Cuatro de estos bits (C, V, Z y S) se pueden examinar para usar las condiciones de salto
condicional. Dos banderas (H y D) son usadas para aritmética BCD. Los otros dos bits en el registro de banderas
son para las banderas del reinicio por termino de conteo del WDT y para la bandera del Stop Mode Recovery.
#Bit Sim Significado Función
0 C Carry (Acarreo) Indica que hubo acarreo después de una suma
o un “préstamo” después de una resta.
También indica condiciones de error, según lo
establezcan algunos programas o
procedimientos.
2 P Parity (Paridad) Es 0 para paridad impar y 1 para la par
4 A Adjust (Acarreo auxiliar) Contiene el acarreo después de una suma o el
préstamo después de una resta entre las
posiciones de bit 3 y 4 del resultado, ninguna
otra instrucción utiliza esta bandera.
6 Z Zero (Cero) Indica si el resultado de una operación
aritmética o lógica es cero. Si Z=1, el resultado
es cero; si Z=0, el resultado es diferente de
cero
7 S Sign (Signo) Indica el signo aritmético del resultado después
de una operación aritmética o lógica. Si S=1, el
bit del signo (el bit del extremo izquierdo de un
número) se encuentra activado o es negativo; si
S=0, el bit de signo esta inactivado o es
positivo.
8 T Trap (Trampa) Habilita la función de captura de errores por
medio de una característica de depuración del
µP. Si la bandera T está habilitada (1), el µP
interrumpe el flujo de un programa bajo las
condiciones especificadas en los registros de
depuración y los de control. Si T esta en cero
lógico, la función de depuración se encuentra
deshabilitada.
9 I Interrupt (Interrupción) Controla la operación de la terminar de entrada
INTR(solicitud de interrupción). El estado del
bit de bandera I es controlado por las
instrucciones STI (activar bandera de
interrupción) y CLI (borrar bandera de
interrupción)
10 D Direction (Dirección) Controla la selección de incremento o
decremento de los registros DI o SI en
instrucciones de cadenas. Si D=1, los registros
disminuyen automáticamente; si D=0, los
registros aumentan automáticamente. La
bandera D se activaron la instrucción
STD(activar bandera de dirección) y se
desactiva con la instrucción CLD (borrar
bandera de dirección)
11 O Overflow Indica que el resultado de una operación
(Desbordamiento) aritmética con números con signo ha excedido
la capacidad de la máquina.
11 O Overflow Indica que el resultado de una
(Desbordamiento) operación aritmética con números
con signo ha excedido la capacidad
de la máquina.
12-13 IOPL I/O privilege level EN modo protegido, IOPL selecciona
(Nivel de privilegio de el nivel de privilegio para los
E/S) dispositivos de E/S. Si el nivel de
privilegio actual es mayor o más
confiable que el IOPL, E/S se ejecuta
sin impedimento. Si el IOPL es
menor que el nivel actual, ocurre una
interrupción ocasionando la
suspensión de la ejecución. IOPL=00
nivel más alto, IOPL=11 nivel más
bajo.
14 NT Nested task (Tarea Señala que tarea actual esta anidada
anidada) pro software dentro de otra, en el
modo protegido de operación.
Los bits 1,3,5 y 15 están reservados o tienen un valor fijo de 1.

15. Investigar el uso de las siguientes instrucciones y realizar un pequeño ejemplo con
cada una de ellas.
 XCHG

 LAHF
 SAHF
 XLAT
 MOVZX
 BSWAP
 CMOV
 SHL
 SHR

 RCL
 ROL
 RCR
 ROR

Introducción al emu8086-parte1 Introducción a los microprocesadores.

Al Programa que se utilizara en la práctica.


; This example prints out
; "HELLO WORLD!"
; by writing directly to
; Video Memory.
#make_BIN#
; set segment register:
MOV AX, 0B800h
MOV DS, AX
; print "HELLO" using DS
; as segment:
MOV [52h], 'H'
MOV [54h], 'E'
MOV [56h], 'L'
MOV [58h], 'L'
MOV [5Ah], 'O'
; print "WORD!" using ES
; as segment (better since
; this way you won't loosePrograma que se utilizara en la práctica.
; This example prints out
; "HELLO WORLD!"
; by writing directly to
; Video Memory.
#make_BIN#
; set segment register:
MOV AX, 0B800h
MOV DS, AX
; print "HELLO" using DS
; as segment:
MOV [52h], 'H'
MOV [54h], 'E'
MOV [56h], 'L'
MOV [58h], 'L'
MOV [5Ah], 'O'
; print "WORD!" using ES
; as segment (better since
; this way you won't loosePrograma que se utilizara en la práctica.
; This example prints out
; "HELLO WORLD!"
; by writing directly to
; Video Memory.
#make_BIN#
; set segment register:
MOV AX, 0B800h
MOV DS, AX
; print "HELLO" using DS
; as segment:
MOV [52h], 'H'
MOV [54h], 'E'
MOV [56h], 'L'
MOV [58h], 'L'
MOV [5Ah], 'O'
; print "WORD!" using ES
; as segment (better since
; this way you won't loosePrograma que se utilizara en la práctica.
; This example prints out
; "HELLO WORLD!"
; by writing directly to
; Video Memory.
#make_BIN#
; set segment register:
MOV AX, 0B800h
MOV DS, AX
; print "HELLO" using DS
; as segment:
MOV [52h], 'H'
MOV [54h], 'E'
MOV [56h], 'L'
MOV [58h], 'L'
MOV [5Ah], 'O'
; print "WORD!" using ES
; as segment (better since
; this way you won't loosePrograma que se utilizara en la práctica.
; This example prints out
; "HELLO WORLD!"
; by writing directly to
; Video Memory.
#make_BIN#
; set segment register:
MOV AX, 0B800h
MOV DS, AX
; print "HELLO" using DS
; as segment:
MOV [52h], 'H'
MOV [54h], 'E'
MOV [56h], 'L'
MOV [58h], 'L'
MOV [5Ah], 'O'
; print "WORD!" using ES
; as segment (better since
; this way you won't loosessssssssssssssssssssssssssssssssssss
MOV [54h], 'E'
MOV [56h], 'L'
MOV [58h], 'L'
MOV [5Ah], 'O'
; print "WORD!" using ES
; as segment (better since
; this way you won't loosePrograma que se utilizara en la práctica.
; This example prints out
; "HELLO WORLD!"
; by writing directly to
; Video Memory.
#make_BIN#
; set segment register:
MOV AX, 0B800h
MOV DS, AX
; print "HELLO" using DS
; as segment:
MOV [52h], 'H'
MOV [54h], 'E'
MOV [56h], 'L'
MOV [58h], 'L'
MOV [5Ah], 'O'
; print "WORD!" using ES
; as segment (better since
; this way you won't loosePrograma que se utilizara en la práctica.
; This example prints out
; "HELLO WORLD!"
; by writing directly to
; Video Memory.
#make_BIN#
; set segment register:
MOV AX, 0B800h
MOV DS, AX
; print "HELLO" using DS
; as segment:
MOV [52h], 'H'
MOV [54h], 'E'
MOV [56h], 'L'
MOV [58h], 'L'
MOV [5Ah], 'O'
; print "WORD!" using ES
; as segment (better since
; this way you won't loose

Para emular el programa, seleccione la opción “emulate” y se generaran dos ventanas que muestran
el código original más la emulación de los registros del microprocesador:
Introducción al emu8086-parte1 Introducción a los microprocesadores.
Introducción al emu8086-parte1 Introducción a los microprocesadores.

Programa que se utilizara en la práctica.


; This example prints out
; "HELLO WORLD!"
; by writing directly to
; Video Memory.
#make_BIN#
; set segment register:
MOV AX, 0B800h
MOV DS, AX
; print "HELLO" using DS
; as segment:
MOV [52h], 'H'
MOV [54h], 'E'
MOV [56h], 'L'
MOV [58h], 'L'
MOV [5Ah], 'O'
; print "WORD!" using ES
; as segment (better since
; this way you won't loosePrograma que se utilizara en la práctica.
; This example prints out
; "HELLO WORLD!"
; by writing directly to
; Video Memory.
#make_BIN#
; set segment register:
MOV AX, 0B800h
MOV DS, AX
; print "HELLO" using DS
; as segment:
MOV [52h], 'H'
MOV [54h], 'E'
MOV [56h], 'L'
MOV [58h], 'L'
MOV [5Ah], 'O'
; print "WORD!" using ES
; as segment (better since
; this way you won't loosePrograma que se utilizara en la práctica.
; This example prints out
; "HELLO WORLD!"
; by writing directly to
; Video Memory.
#make_BIN#
; set segment register:
MOV AX, 0B800h
MOV DS, AX
; print "HELLO" using DS
; as segment:
MOV [52h], 'H'
MOV [54h], 'E'
MOV [56h], 'L'
MOV [58h], 'L'
MOV [5Ah], 'O'
; print "WORD!" using ES
; as segment (better since
; this way you won't loosePrograma que se utilizara en la práctica.
; This example prints out
; "HELLO WORLD!"
; by writing directly to
; Video Memory.
#make_BIN#
; set segment register:
MOV AX, 0B800h
MOV DS, AX
; print "HELLO" using DS
; as segment:
MOV [52h], 'H'
MOV [54h], 'E'
MOV [56h], 'L'
MOV [58h], 'L'
MOV [5Ah], 'O'
; print "WORD!" using ES
; as segment (better since
; this way you won't loosePrograma que se utilizara en la práctica.
; This example prints out
; "HELLO WORLD!"
; by writing directly to
; Video Memory.
#make_BIN#
; set segment register:
MOV AX, 0B800h
MOV DS, AX
; print "HELLO" using DS
; as segment:
MOV [52h], 'H'
MOV [54h], 'E'
MOV [56h], 'L'
MOV [58h], 'L'
MOV [5Ah], 'O'
; print "WORD!" using ES
; as segment (better since
; this way you won't loose
2. Se le presentarán seis opciones, elija “com template”. Observará (apóyese en la Figura
anterior) una ventana con la clásica barra de menú (File, Edit, etc.) con algunos elementos
distintivos (Compile, Emulator, Math, etc.) así como una serie de botones que le permiten
abrir un nuevo archivo, compilar, emular y otras funciones útiles.

3. Digite el siguiente código:


Programa que se utilizara en la práctica.
; This example prints out
; "HELLO WORLD!"
; by writing directly to
; Video Memory.
#make_BIN#
; set segment register:
MOV AX, 0B800h
MOV DS, AX
; print "HELLO" using DS
; as segment:
MOV [52h], 'H'
MOV [54h], 'E'
MOV [56h], 'L'
MOV [58h], 'L'
MOV [5Ah], 'O'
; print "WORD!" using ES
; as segment (better since
; this way you won't loosePrograma que se utilizara en la práctica.
; This example prints out
; "HELLO WORLD!"
; by writing directly to
; Video Memory.
#make_BIN#
; set segment register:
MOV AX, 0B800h
MOV DS, AX
; print "HELLO" using DS
; as segment:
MOV [52h], 'H'
MOV [54h], 'E'
MOV [56h], 'L'
MOV [58h], 'L'
MOV [5Ah], 'O'
; print "WORD!" using ES
; as segment (better since
; this way you won't loosev

4. Seleccione la opción “compile” para verificar si no hay algún error de programación. Se


generara la siguiente ventana:
5. Luego seleccione la opción “emulate” y verifique que hace el código para cada línea de
ejecución. Puede observar en la ventana del emulador el contenido de los registros, la
memoria y el programa desensamblado. Si tiene problemas para interpretar esta
información, por favor solicite asistencia por parte de su instructor.
Introducción al emu8086-parte1 Introducción a los microprocesadores.

6. Copie los datos almacenados en los registros antes de ejecutar el programa:

AX: 0000 BX: 0000 CX: 0013 DX: 0000

CS: 0700 DS: 0700 ES: 0000 SS: 0000

BP: 0000 IP: 0100 SP: FFFE

DI: 0000 SI: 0000

7. Ejecute el programa totalmente con la opción “Run” y tome nota de los datos resultantes.
Verifique si concuerdan con los datos que se digitaron en el programa.

AX: 0064 BX: 0041 CX: ABCD DX: 198C

CS: F400 DS: 0700 ES: 0700 SS: 0700

BP: 0000 IP: 0154 SP: FFFA

DI: 0000 SI: 0000

8. Cree un nuevo archivo, de tipo COM. Seleccione la opción “new” y marque la primera
opción del tipo de archivo “COM TEMPLATE”.
Introducción al emu8086-parte1 Introducción a los microprocesadores.

9. Emule el programa y antes de ejecutarlo anote en la TABLA 2 el contenido de las direcciones


que tienen desplazamiento 0112h y 0113h, así como el contenido de CX en la columna
Inicio. Más adelante se retomará este punto para comparar los cambios en los datos.

10. Corra paso a paso el programa hasta antes de ejecutar la quinta instrucción, tratando de
predecir las acciones que se realizarán, auxiliándose de los comentarios de cada instrucción,
si tiene problemas consulte con instructor.

11. Observe y anote en la TABLA 2 los resultados de su observación.

12. Ejecute la quinta instrucción, anote los resultados.

13. Ejecute paso a paso el resto de instrucciones, tomando nota de los resultados.

SEG (DS) OFFSET Inicio del Antes de la Después de Después de Después de


programa 5ta. la 5ta. la 6ta. la 7ma.
0112H 186; 12; 01 84; 61 88; 47; 01 88; 0F C3
0113H 8A; 13; 01 84; 61 88; 47; 01 88; 0F C3
Registro CX 0011 0011 0011 0011 4161
Tabla 2.

Análisis de resultados.

Programa 1: En el encabezado del programa ¿por qué se incluye la línea “org 100h”? Al introducir datos en los
registros del microprocesador se usan diferentes formatos (bases de numeración) ¿cuántos y cuáles son? La
sintaxis de la instrucción MOV define tres campos: instrucción, dato1 y dato2. Al moverse los datos ¿cuál es la
fuente y cual el destino? Al observar la tabla1 se nota que a la misma instrucción MOV se le asignan diferentes
códigos hexadecimales ¿a qué se debe esto? ¿Cuál es la función que cumple el registro IP dentro del PRIMER
PROGRAMA? En la columna OFFSET de la tabla1, éstos no se incrementan a una razón constante ¿por qué?

¿por qué se incluye la línea “org 100h”?


Se inicia con “org 100h” ya que es el arranque inicial que dará direccionamiento donde se
cargaran la memoria.
Los registros del microprocesador se usan diferentes formatos (bases de
numeración) ¿cuántos y cuáles son?
 Los números binarios deben tener el sufijo "B".
 Los números hexadecimales deben tener el sufijo "H" , y comenzar con un cero
cuando el primer dígito es una letra (A.. F).
 Octal (base 8) números deben tener el sufijo "O".

La sintaxis de la instrucción MOV define tres campos: instrucción, dato1 y dato2. Al moverse
los datos ¿cuál es la fuente y cual el destino?
MOV Destino, Fuente: Donde Destino es el lugar a donde se moverán los datos y fuente es el lugar
donde se encuentran dichos datos.
Los diferentes movimientos de datos permitidos para esta instrucción son:
 Destino: memoria. Fuente: acumulador
 Destino: acumulador. Fuente: memoria
 Destino: registro de segmento. Fuente: memoria/registro
 Destino: memoria/registro. Fuente: registro de segmento
 Destino: registro. Fuente: registro
 Destino: registro. Fuente: memoria
 Destino: memoria. Fuente: registro
 Destino: registro. Fuente: dato inmediato
 Destino: memoria. Fuente: dato inmediato

Al observar la tabla1 se nota que a la misma instrucción MOV se le asignan diferentes


códigos hexadecimales ¿a qué se debe esto?
El software tiene internamente 14 registros cada uno de 16 bits los primeros 4 son AX, BX,
CX y DX.
¿Cuál es la función que cumple el registro IP dentro del PRIMER PROGRAMA?
IP: Registro puntero de instrucción o contador de programa (PC). Contiene el desplazamiento
de la siguiente instrucción a ejecutar respecto al segmento de código en ejecución.
En la columna OFFSET de la tabla1, éstos no se incrementan a una razón constante ¿por qué?
Por la forma en la que IP lleva los conteos cambia gradualmente
Programa 2: Al comparar las dos primeras instrucciones ¿qué diferencias hay al ejecutarlas, siendo que las dos
son MOV?
La condición MOV agrupa dos fuentes de diferentes celdas pero luego está escrita de forma que
puede mover dos datos en una misma celda por decirlo transfiere dos datos en una función para
generar un operando y luego destinarlo como un acumulador.
En las últimas tres instrucciones se incluyeron corchetes (paréntesis cuadrados) en las instrucciones ¿Qué
diferencias observó en su ejecución respecto a las primeras dos instrucciones? ¿Por qué al ejecutar la séptima
instrucción los datos se almacenan en CX en ese orden específico?
Introducción al emu8086-parte1 Introducción a los microprocesadores.

Investigación complementaria.

Esta actividad debe desarrollarse posteriormente a la ejecución de la guía de laboratorio y tiene por objetivo
complementar y ampliar la temática desarrollara teniendo en mente las actividades futuras. Investigue:

¿Qué son los modos de direccionamiento?


En informática, los modos de direccionamiento son las diferentes maneras de especificar un operando
dentro de una instrucción en lenguaje ensamblador.

¿Cuántos y cuáles modos de direccionamiento tiene el microprocesador 8086?


El modo de direccionamiento inmediato: en el que el operando de datos es una parte de la
instrucción en sí es conocido como modo de direccionamiento inmediato.

Modo de direccionamiento directo: El modo de direccionamiento en el que la dirección efectiva


de la posición de memoria se escribe directamente en la instrucción.

Modo de direccionamiento indirecto: Este modo de direccionamiento permite que los datos que
deben abordarse en cualquier posición de memoria a través de una dirección de desplazamiento que
tuvo lugar en cualquiera de los siguientes registros: BP, BX, DI y SI.
Modo de direccionamiento Basado: En este modo de direccionamiento, la dirección de
desplazamiento del operando está dada por la suma de contenidos de los registros BX / BP y el
desplazamiento de 8 bits / 16 bits.
El modo de direccionamiento indexado: En este modo de direccionamiento, los operandos
compensados dirección se encuentra sumando el contenido de SI o registro DI y los desplazamientos
de 8 bits / 16 bits.

¿Qué modos de direccionamiento posee la instrucción MOV?

¿Qué diferencias hay entre las instrucciones XCHG ya la instrucción MOV?

También podría gustarte