Problema: escriba un programa en el microprocesador 8086 para averiguar la suma de la serie de números pares, donde los números se almacenan desde el inicio del desplazamiento 500 y almacenan el resultado en el desplazamiento 600.
Ejemplo –
Algoritmo –
- Asignar 500 a SI
- Cargue datos del desplazamiento SI al registro CL (conteo) y asigne 00 al registro CH inc. SI por 1
- Cargue los datos del desplazamiento SI y aplique TEST con 01, si el resultado no es cero, salte al paso 5
- Agregue los datos de compensación con el registro AL
- Aumentar compensación en 1
- BUCLE al paso 3
- Almacene el resultado (contenido del registro AL) para compensar 600
- Deténgase
Programa –
DIRECCIÓN DE MEMORIA | MNEMOTÉCNICA | COMENTARIO |
---|---|---|
400 | MOV SI, 500 | SI<-500 |
403 | CL MOV, [SI] | CL<-[SI] |
405 | INC SI | SI<-SI+1 |
406 | CA MOV, 00 | CH<-00 |
408 | MOV AL, 00 | AL<-00 |
40A | MOV BL, [SI] | BL<-[SI] |
40C | PRUEBA BL, 01 | BL Y 01 |
40F | JNZ 413 | SALTAR SI NO CERO |
411 | AÑADIR AL, BL | AL<-AL+BL |
413 | INC SI | SI<-SI+1 |
414 | BUCLE 40A | SALTAR A 40A SI CX NO ES CERO |
416 | MOV [600], AL | AL->[600] |
41A | HLT | FINAL |
Explicación –
- MOV SI, 500: asignar 500 a SI
- MOV CL, [SI]: cargar datos desde el desplazamiento SI al registro CL
- INC SI: aumenta el valor de SI en 1
- MOV CH, 00: asigna 00 para registrar CH
- MOV AL, 00: asignar 00 para registrar AL
- MOV BL, [SI]: cargar datos desde el desplazamiento SI al registro BL
- PRUEBA BL, 01: Y registra BL con 01
- JNZ 413: salta a la dirección 413 si no es cero
- ADD AL, BL: agrega contenido del registro AL y BL
- INC SI: aumenta el valor de SI en 1
- LOOP 40A: salta a 40A si CX no es cero y CX=CX-1
- MOV [600], AL: almacena el valor del registro AL para compensar 600
- HL: fin.
Consulte el programa 8086 para encontrar la suma de números impares en una serie dada
Publicación traducida automáticamente
Artículo escrito por Amber_Saxena y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA