Ejercicio. Solución. Banderas. Banderas. Banderas 05/10/2011 UNIDAD 5 2 A PARTE PROGRAMANDO EN EL ENSAMBLADOR DEL Z80

Documentos relacionados
Contenido. Conjunto de Instrucciones. Formato de la Instrucción. Instrucciones de 1 byte. Formato de la Instrucción 28/09/2011

Ejemplo del uso de las subrutinas

Introducción a la Computación. Capítulo 10 Repertorio de instrucciones: Características y Funciones

Arquitectura (Procesador familia 80 x 86 )

El microprocesador de 8 bits Z80

UNIDAD 3 ARQUITECTURA DEL Z80. Microprocesadores Otoño 2011

Ciclos de máquina. Otro ejemplo: decremento de un registro par (donde rp = HL, DE, BC, SP) DCX rp

8.4. El software en los μprocesadores

El nivel ISA (II)! Conjunto de Instrucciones

Ejercicios del Tema 3. Fundamentos de la programación en ensamblador

28/09/2012. Interfaz con Dispositivos de Salida. Interfaz con Dispositivos de Entrada. Port Mapped. Memory mapped. Interfaz con Dispositivos I/O

Arquitectura del CPU. Organización del Computador 1 Verano 2016

Conceptos de Arquitectura de Computadoras Curso 2015

PROBLEMA VHDL. 7 dig1. dig2. Entradas : Señales a[3..0] y b [3..0] en código GRAY Salida : Señales Dig1[6..0] y Dig2[6..0] para los visualizadores

APENDICE A Microcontrolador de 8 bits MC68HC11F1

ORGANIZACIÓN DE LA MEMORIA

Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria

El Diseño de un Lenguaje Máquina

Tema 3. Operaciones aritméticas y lógicas

Instrucción De Salto Incondicional

Relación de Problemas I

Arquitectura de Computadores II Clase #3

modos de direccionamiento

Organización de Computadoras. Clase 7

Sección de procesamiento: El camino de datos

Instrucciones de Control de Flujo y Usos de la Pila

Aritmética de Enteros

5.2. Sistemas de codificación en binario

Fundamentos de Computadores. Tema 5. Circuitos Aritméticos

1.2.- EL MICROPROCESADOR.

Organización de Computadoras. Clase 2

PROCESAMIENTO DE LOS DATOS. Procesamiento de datos ascii a binario y de binario a ascii

Unidad IV: Programación de microcontroladores

Programación de Sistemas. Unidad 1. Programación de Sistemas y Arquitectura de una Computadora

TAREA 1 ARITMETICA PARA BCD Y ASCII.

INDICE 1. Operación del Computador 2. Sistemas Numéricos 3. Álgebra de Boole y Circuitos Lógicos

Tema 2: Sistemas de numeración

Sistemas con Microprocesadores I

Sistema Operativo. Repaso de Estructura de Computadores. Componentes Hardware. Elementos Básicos

TEMA III: OPERACIONES CON LOS DATOS

Clasificación del procesador según el número de referencias a memoria.

REPRESENTACION DE LA INFORMACION

Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial.

CICLOS DEL PROCESADOR

Bus de direcciones. Bus de datos

Tema 2. El lenguaje JAVA

ENSAMBLADOR DE ARCHIVO TASM MASM NASM GAS. Características de un Ensamblador de Archivo

ÍNDICE CAPÍTULO 1 FUNDAMENTOS DE LOS MICROCONTROLADORES

TEMA V SISTEMAS DE NUMERACIÓN

Introducción a la programación en Lenguaje Assembler.

INDICE Programa Entrada Unidad de control Unidad aritmética y lógica (ALU)

Introducción a la Programación en Lenguaje Ensamblador.

Instituto Tecnológico de Morelia

INSTRUCCIONES DE ENSAMBLADOR

Ensamblador. Introducción. Dpto. Física y Arquitectura de Computadores. Universidad Miguel Hernandez

Departamento de Ingeniería de Sistemas y Automática. STEP 7. Juego de instrucciones

INTRODUCCIóN A LA PROGRAMACIóN APUNTES DE JAVA APUNTES DE JAVA

CÓMO FUNCIONA UN PLC Control Combinacional Programación del PLC

Representación de datos y aritmética básica en sistemas digitales

Representación de datos y aritmética básica en sistemas digitales

Partes de una computadora. Conceptos Generales. Elementos de Computación (CU) Computación (TIG) El Hardware de una computadora

CONVERSIONES ENTRE NUMEROS DE BASE DIFERENTE

2. Números naturales: sistema de numeración y operaciones básicas

Tema 5. Presentación de datos por pantalla

Tema 4. Lenguaje máquina y lenguaje ensamblador

TEMA II SISTEMAS DE NUMERACIÓN USUALES EN INFORMÁTICA.

Ingeniería en Computación

3 - Arquitectura interna de un up

Tipos de Datos y Representaciones. Circuitos Digitales, 2º de Ingeniero de Telecomunicación. EITE ULPGC.

Tema: Microprocesadores

PROGRAMACIÓN. UNIDAD II. ALGORITMO PROFA : HAU MOY

Clase 02: Representación de datos

Resumen de las instrucciones del 8086/8088

ENIAC, Primer computador electrónico y su panel de conexiones

UNIVERSIDAD NACIONAL DE COLOMBIA SEDE BOGOTÁ FACULTAD DE INGENIERÍA INGENIERÍA MECATRÓNICA

Lección 2 Introducción al lenguaje C

CAPÍ TULO III. La Pantalla... y más

Tema 3: Lenguaje ensamblador. La primera abstracción de la máquina para el programador

Estructura de Computadores. 1. Ejercicios Resueltos 1.1. Tema 6. La unidad aritmética y lógica

Convenciones. Introducción. Unidades principales en la implementación. El procesador: camino de datos y control. Tipos de elementos:

Arquitectura de Computadoras

Funciones Lógicas X5

1.1 Tipos de Datos Primitivos. 1.2 Tipos de datos estructurados. 1.3 Definición de estructura de datos

FUNDAMENTOS DE SISTEMAS DIGITALES. Tema 2: Lógica combinacional (I): Funciones aritmético-lógicas

Introducción al PLC Simatic Siemens S7-200.

Objetivo. Introducción. Tema: GENERACION DE CODIGO. Compiladores, Guía 11 1

LECCIÓN 14: DISEÑO DE COMPUTADORES MEDIANTE MICROPROGRAMACION

APUNTES DE CATEDRA: SISTEMAS DE NUMERACION - REPRESENTACION INTERNA DE NUMEROS Y CARACTERES

Ejercicios del tema 4. El procesador

SISTEMAS DIGITALES. Margarita Pérez Castellanos

Estructura de Microprocesadores. Profesor Ing. Johan Carvajal Godínez

Figura 2. Formato de un dato serie síncrono.

Figura 1: Suma binaria

REPRESENTACIÓN DE DATOS

Curso de Programación Avanzada en C

1.- Sistemas Numéricos 2.- Diferencia entre señal analógica y Digital 3.- Postulados básicos del Algebra de Boole

TEMA 2. EL LENGUAJE C. ELEMENTOS BÁSICOS

Estructura del Computador

Características generales

IEE 2712 Sistemas Digitales

Transcripción:

1 UNIDAD 5 2 A PARTE PROGRAMANDO EN EL ENSAMBLADOR DEL Z80 2 Cargue el numero F2H y 68H en los registros B y C respectivamente Almacene A2H en la locación de memoria 2065H Reste el 68H de F2H (F2H-68H) Complemente a 1 s el resultado Sume A2H desde la memoria Almacene la repuesta final en la locación de memoria 2066H Determine el estado del signo (S), cero (Z) y el Carry (C) Otoño 2010 Microprocesadores 3 OPCODE Operando A B C H L S Z CY LD BC,F268H X F2 68 X X No se afectan LD HL,2065H X 20 65 LD (HL),A2H X LD A,B F2 SUB C 8A 1 0 0 CPL 75 NA NA NA ADD A,(HL) 17 0 0 1 INC HL 20 66 0 0 NA LD (HL),A NA NA NA 17 F2 68 20 66 0 0 1 4 Las banderas que pueden ser usadas para realizar decisiones son Signo (S) Cero (Z) Paridad/ (P/V) Carry (CY) Las banderas restantes Suma/Resta (N) y Half Carry (H) son usadas internamente en el procesador para realizar operaciones en aritmética BCD 5 Los números con signo del bit mas significativo representa el signo, los 7 bits restantes representa la magnitud Signo D 7 D 0 S Magnitud El máximo numero que puede ser representado es +127 (7F) El mínimo numero es -128 (80H) 6 La bandera del signo esta en 1 si el bit D7 es uno. 0 signo 1 Si D 0 Si D 1 Si el resultado de una operación aritmética excede los limites +127 al -128 la bandera de overflow se pone a 1 P/V indica overflow en las operaciones aritméticas, y en la operaciones lógicas indica paridad 7 7 1

Complemento a 2 s 7 Si el resultado de una operación aritmética no puede ser representado por el numero de bits utilizados (8, 16, 32 o 64 bits) entonces decimos que ocurre un overflow El procesador solo puede indicar si existe un overflow pero es responsabilidad del programador decidir que hacer con el resultado. Complemento a 2 s es el formato usado por convención para representar números negativos y positivos 8 En complemento a 2 s se tiene un desbalance. Siempre existe un número negativo que no tiene su correspondiente positivo 8 bits, rango (-2 7 ) (2 7-1); -128 a 127, 16 bits, rango (-2 15 ) (2 15-1); -32768 a 32767 32 bits, rango (-2 31 ) (2 31-1); -2147483648 a 2147483647 Este desbalance es un problema para el programador, pero el hardware se facilita por eso todas los microprocesadores usan complemento a 2 para números con signo 9 En complemento a 2 s todos los números negativos tiene un 1 en su bit mas significativo, por lo cual facilita la detección de números negativos Al sumar o restar números con signo puede ocurrir un overflow bajo las siguientes condiciones OP1 OP2 SUMA RESTA + + SI NO + - NO SI - + NO SI - - SI NO 10 Operación A B Resultado indicando overflow A+ B 0 0 < 0 A + B < 0 < 0 0 A B 0 < 0 < 0 A B < 0 0 0 Operación A B Resultado indicando overflow A+ B + + - A + B - - + A B + - - A B - + + 11 es detectado solo en números con signo. Microprocesadores que incluyen en su conjunto de instrucciones suma y resta sin signo ignoran el overflow para estas operaciones 12 La bandera de overflow es relevante solo para las operaciones con signo 4AH 0 0 1 0 1 0 1 0 7FH + 0 1 1 1 1 1 1 1 C9H 0 1 1 0 0 1 0 0 1 El Z80 no incluye en su conjunto de instrucciones suma y resta sin signo, por lo tanto es el programador quien debe ignorar este overflow CY = 0 Porque la suma no excede FF H S = 1 porque D 7 = 1 P/V = 1 porque la suma excede 7F H 2

Paridad 13 14 La bandera de paridad es afectada por las operaciones lógicas de la siguiente forma 0 Paridad 1 Si el numero de1's es impar Si el numero de1's es par Si el resultado de una operación lógica es 00000011, la bandera estará en 1 indicando numero par de unos. La paridad no tiene relación a los números par o impar sino a la cantidad de unos en el numero Si el resultado de una suma es mayor que 127 (7F) el bit D7 indicara que el numero es negativo y las banderas Signo (S) = 1 (P/V) = 1 El Z80 no sabe si los números son con signo o sin signo. Es responsabilidad del programador interpretar estas banderas. 15 En el ejercicio anterior se realizo la siguiente suma 16 En el ejercicio anterior se realizo la siguiente suma 75H 0 1 1 1 0 1 0 1 A2H + 1 0 1 0 0 0 1 0 1 0 0 0 1 0 1 1 1 75H 0 1 1 1 0 1 0 1 A2H + 1 0 1 0 0 0 1 0 1 0 0 0 1 0 1 1 1 La bandera del CY = 1 Si los números son sin signo, entonces los 8 bits representan la magnitud y el resultado de la suma es 117H, en el se guarda 17H, si se desea usar este resultado se debe incluir el carry Si los números son con signo, entonces el resultado debe ser un numero menor a los operandos. Por lo tanto, la suma no puede generar un carry. CY=1 es irrelevante para este caso. Operaciones de Decisión Instrucciones de Salto 17 Decisión Saltos Llamados a Subrutina Reinicio Absoluto (3 bytes) Relativo (2 bytes) CALL RETURN Condicional Incondicional Condicional Incondicional 18 En el salto absoluto, el operando especifica la dirección de 16-bits hacia la cual se transferirá la secuencia de instrucciones Los saltos relativos contienen un operando que especifica el desplazamiento en 8-bits en complemento a 2 s. Los saltos relativos permiten saltos hacia adelante o hacia a atrás 3

Saltos Condicionales Instrucciones de Salto Absoluto 19 Los saltos condicionales son implementados basados en el estado de las banderas Signo Cero Carry Paridad/ Existen dos instrucciones asociadas a cada una de las bandera, cuando la bandera esta en alto o bajo. 20 OPCODE OPERANDO BYTES DESCRIPCION JP 16 bits 3 Salto incondicional a la locación especificada en el operando de 16-bits JP C,16-bits 3 Salta si CY=1 a la locación especificada JP NC,16-bits 3 Salta si CY=0 a la locación especificada JP Z,16-bits 3 Salta si Z=1 a la locación especificada JP NZ,16-bits 3 Salta si Z=0 a la locación especificada JP M,16-bits 3 Salta si el numero es negativo (S=1) a la dirección JP P,16-bits 3 Salta si el numero es positivo (S=0) a la dirección JP PE,16-bits 3 Salta si la paridad es par (P/V=1) a la dirección JP PO,16-bits 3 Salta si la paridad es impar (P/V=0) a la dirección 21 Escribe un programa que realice las siguientes operaciones Copie dos números BYTE1 y BYTE2 en los registros B y C, respectivamente Suma los dos números Si la suma es mayor a 8 bits despliega 00H como la condición sobrecargada al puerto de salida PORT1 Limpia la locación de memoria llamada OUTBUF Si la suma es menor o igual a 8 bits, entonces almacena el resultado en OUTBUF 22 INICIO Carga los datos Suma los datos No Existe Carry? Si Despliega sobrecarga Almacena el resultado en memoria FIN Mnemónicos Código Hex Dirección de Memoria LD B, BYTE1 06 2000 9A 2001 LD C,BYTE2 0E 2002 A7 2003 LD A,C 79 2004 ADD A,B 80 2005 JP NC,STORE D2 2006 LOW 2007 HIGH 2008 LD A,00H 3E 2009 00 2010 OUT (PORT1),A D3 2011 01 2012 STORE: LD (OUTBUF),A 32 2013 50 2014 20 2015 76 2016 23 24 Escribe un programa que realice lo siguiente Lee datos provenientes del puerto de entrada INPORT Cuenta el numero de lecturas Suma cada lectura Cuando la suma exceda FF H realiza las siguientes acciones Detén la lectura del puerto de entrada Almacena el numero de lecturas realizadas en OUTBUF Despliega 01 en el puerto OUTLED para indicar la sobrecarga INICIO B = 0, Suma C = 0, Contador Lee el puerto, actualiza la cuenta y suma el dato Existe Carry? Si No Guarda la cuenta y despliega la sobrecarga Mnemónicos Comentarios LD BC,0000H ;Limpia B y C READ: IN A,(INPORT) ; Lee datos INC C ; Incrementa el contador ADD A,B ; suma el dato LD B,A ;Guarda la suma JP C,OVRLOD ; Checa por overflow JP READ ; regresa a leer OVRLOD: LD HL,OUTBUF ; HL apunta al buffer LD (HL),C ; guarda la cuenta LD A,01H ; indica la sobrecarga OUT (OUTLED),A FIN 4

Saltos Relativos Saltos Relativos 25 26 En los saltos relativos la dirección hacia la cual el programa es redirigido es calculada por medio de un offset. La dirección final es PC + offset El offset es un numero de 8-bits en complemento a 2 s para permitir saltos hacia adelante y hacia atrás El salto mas grande hacia adelante es 7FH mientras que el salto mas grande hacia atrás es 80H Mnemónico Bytes Descripción JR d 2 Salto relativo incondicional JR Z, d 2 Salto relativo si Z =1 JR NZ, d 2 Salto relativo si Z =0 JR C, d 2 Salto relativo si CY =1 JR NC, d 2 Salto relativo si CY =0 Saltos relativos Registros Índice 27 28 La instrucción de salto JR d esta almacenada en la dirección 2100H y 2101H. Encuentre la dirección de memoria a la cual saltara la instrucción si d = 7FH Si d = 9CH 2 1 0 2 + 0 0 7 F 2 1 8 1 2 1 0 2 + F F 9 C 1 2 0 9 E 0 2 0 9 E Opcode Operando Bytes Descripción LD IX, 16 bits 4 Cargar dato de 16-bits en el registro IX LD (IX+d),8bits 4 Cargar dato de 8-bits en la locación de memoria LD R, (IX+d) 3 Copiar el dato al registro R de la locación de memoria IX + d LD (IX+d),R 3 Enviar el contenido de R a la memoria ADD A, (IX + d) 3 Sumar el contenido de IX+d al SUB (IX + d) 3 Restar el contenido de IX+d al INC IX 2 Incrementar el contenido de IX INC (IX + d) 3 Incrementar el contenido de la localidad de memoria DEC IX 2 Decrementar el contenido de IX DEC (IX + d) 3 Decrementar el contenido de la localidad de memoria 29 30 Realice el programa que realice lo siguiente Use los registros índice IX e IY para apuntar a las locaciones de memoria 2050H y 2185H Usando los registros índice, realice lo siguiente Copie el numero 32H en la locación 2090H Copie el numero 97H en la locación 2120H Sume los bytes y salve el resultado en el Mnemónicos Comentarios LD IX,2050H ; Apunte IX a la locación 2050H LD IY,2185H ; Apunte IY a la locación 2185H LD (IX+40H),32H ; Transfiere el byte a la locación 2050H + 40H = 2090H LD (IY+9BH),97H ; Transfiere el byte a la locación 2185H + 9BH = 2120H LD A,(IX+40H) ; Copie el byte 32H al ADD A,(IY+9BH) ; Sume los dos bytes y conserve el resultado en A ; Termina el programa 2 0 5 0 2 1 8 5 + 0 0 4 0 + F F 9 B 2 0 9 0 1 2 1 2 0 0 2 1 2 0 5

Transferencia de Datos Técnicas de Programación INICIO Inicialización 31 Transferencia de datos Registro a Registro Inmediata Registro con memoria Dispositivo de entrada y salida No hay restricciones A Registro A Memoria Directa Indirecta Solo con el No hay restricción HL, IX,IY Solo con el HL, IX, IY BC, DE Cualquier registro Solo con el 32 Inicializa contadores, apuntadores a memoria, registros, etc. Traer datos hacia el microprocesador desde memoria o puerto Manipulación de datos tales como operaciones aritméticas y lógicas Almacenamiento de resultados parciales Incremento de contadores Revisa la bandera para establecer si termina el lazo o continua su ejecución Adquisición de Datos Procesamiento de Datos Almacenamiento Temporal Incremento de Contadores Toma de decisión Salida FIN Ejemplo 33 34 Se almacenaron 10 bytes en un bloque de memoria iniciando en 1850H y terminando en 1859H Se quiere transferir estos datos hacia el bloque inciando en 1870H y terminando en 1879H Realice el programa que realice esta transferencia. Cuando la transferencia termine indíquelo desplegando 01H en el puerto OUTPRT Suponga que: SOURCE EQU 1850H OUTBUF EQU 1870H OUTPRT EQU C1H INICIO Apuntadores a fuente y destino. Inicializa contador Adquiere datos de fuente y almacénalos en destino Incrementa apuntadores. Decrementa contador Contado r = 0? Si Despliega un 01H en el puerto OUTPRT FIN No Mnemónicos Comentarios START: LD HL,SOURCE ;HL apunta a la fuente LD DE,OUTBUF ; DE apunta al destino LD B,10 ; inicializa contador NEXT: LD A,(HL) ; Toma un dato fuente LD (DE),A ; Almacena en destino INC HL ; Incrementa HL INC DE ; Incrementa DE DEC B ; Decrementa el contador JP NZ,NEXT ; Si el contador = 0 termina LD A,01H ; Carga el indicador de fin OUT (OUTPRT),A ; Despliega en la salida Directivas al Compilador Directivas al compilador 35 36 Directiva Ejemplo Descripción ORG ORG 1000H El bloque de instrucciones o datos debe ser almacenado en las locaciones de memoria inciando en 1000H END END Indica el fin del programa EQU PORT1 EQU 01H INBUF EQU 1899H OUTBUF EQU INBUF + 4 Se utiliza para la definición de constantes. En este ejemplo la constante PORT1 equivale a la dirección del puerto 01H La constante INBUF equivale a la direccion de memoria 1899H Las constantes pueden ser definidas con respecto de otras constantes. En este caso OUTBUF es una dirección de memoria 4 bytes mas adelante que INBUF Directiva Ejemplo Descripción DB, DEFB DW, DEFW DATA: DEFB A2H, 9FH DEFW 2050H DS, DEFS OUTBUF: DEFS 4 Sufijos de constantes D, B, Q,H 97 72Q 0011B 2FH Inicializa un area de memoria byte por byte. Los bytes son almacenados en locaciones de memoria sucesivas. Esta es una manera conveniente de escribir una cadena de datos. La etiqueta es opcional Inicializa un area de memoria dos bytes al mismo tiempo. En este ejemplo se almacena el numero 2050H en dos localidades de memoria sucesivas Reserva un numero especifico de locaciones de memoria. En este ejemplo 4 locaciones de memoria son reservadas para OUTBUF Define valores numéricos expresados en (D) decimal, (Q) octal, (B) binario, (H) Hexadecimal 6

SOURCE EQU 1850H OUTBUF EQU 1870H OUTPRT EQU 0C1H ORG 1820H START: LD HL,SOURCE ;HL apunta a la fuente LD DE,OUTBUF ; DE apunta al destino LD B,10 ; inicializa contador 38 Instrucciones Lógicas Las instrucciones lógicas asumen que uno de los operandos es el NEXT: LD A,(HL) ; Toma un dato fuente LD (DE),A ; Almacena en destino INC HL ; Incrementa HL INC DE ; Incrementa DE DEC B ; Decrementa el contador Modifican las banderas de signo (S), cero (Z) y paridad (P/V) de acuerdo a las condiciones del resultado. La bandera de Carry es puesta a cero JP NZ,NEXT LD A,01H OUT (OUTPRT),A ; Si el contador = 0 termina ; Carga el indicador de fin ; Despliega en la salida El resultado es almacenado en el 37 ORG DEFB DEFB END 1850H 01H,02H,03H,04H,05H,06H 07H,08H,09H,0AH No afecta el contenido de registro o locación de memoria con la que se opera Instrucciones Lógicas Instrucciones Lógicas 39 40 OPCODE OPERANDO BYTES AND r 1 AND 8-bits 2 DESCRIPCION Realiza la operación AND de un registro con el Realiza la operación AND de un numero de 8 bits con el OPCODE OPERANDO BYTES OR r 1 OR 8-bits 2 DESCRIPCION Realiza la operación OR de un registro con el Realiza la operación OR de un numero de 8 bits con el AND (HL) 1 Realiza la operación AND del con el AND (IX+d) 3 contenido de la locación de memoria especificada OR (HL) 1 Realiza la operación OR del con el OR (IX+d) 3 contenido de la locación de memoria especificada AND B B 0 1 1 1 0 1 1 1 A 1 0 0 0 0 0 0 1 A 0 0 0 0 0 0 0 1 A B AND 0 0 0 0 1 0 1 0 0 1 1 1 OR B B 0 1 1 1 0 1 1 1 A 1 0 0 0 0 0 0 1 A 1 1 1 1 0 1 1 1 A B OR 0 0 0 0 1 1 1 0 1 1 1 1 41 XOR B Instrucciones Lógicas OPCODE OPERANDO BYTES XOR r 1 XOR 8-bits 2 DESCRIPCION Realiza la operación XOR de un registro con el Realiza la operación XOR de un numero de 8 bits con el XOR (HL) 1 Realiza la operación XOR del con el XOR (IX+d) 3 contenido de la locación de memoria especificada B 0 1 1 1 0 1 1 1 A 1 0 0 0 0 0 0 1 A 1 1 1 1 0 1 1 0 A B XOR 0 0 0 0 1 1 1 0 1 1 1 0 42 Considere la configuración descrita en la ilustración Escriba un programa que lee un dato del puerto de entrada PORT1 Obtenga los bits D 2 D 0 Almacene la lectura de los 3 switches en INBUF 7

43 IN A,(PORT1) AND 07H LD (INBUF),A ; Read the switch positions ; Mask data bits D3-D7 ; Store the readings in INBUF D7 D6 D5 D4 D3 D2 D1 D0 Acumulador X X X X X 1 0 1 AND 07H 0 0 0 0 0 1 1 1 Resultado 0 0 0 0 0 1 0 1 S=0 Z=0 CY=0 8