Programa 8086 para encontrar el valor mínimo en una array dada

Problema: escriba un programa para encontrar el valor mínimo en una array dada en el microprocesador ensamblado 8086 

Ejemplo: suposiciones: la dirección inicial de la array de entrada es 0500 y almacena el resultado en la dirección 0600 

Algoritmo –

  1. Asignar valor 500 en SI y 600 en DI
  2. Mueva el contenido de [SI] en CL e incremente SI en 1
  3. Asigne el valor 00 H a CH
  4. Mover el contenido de [SI] en AL
  5. Disminuir el valor de CX en 1
  6. Aumentar el valor de SI en 1
  7. Mover el contenido de [SI] en BL
  8. Compara el valor de BL con AL
  9. Vaya al paso 11 si la bandera de acarreo está configurada
  10. Mover el contenido de BL en AL
  11. Vaya al paso 6 hasta que el valor de CX sea 0 y disminuya CX en 1
  12. Mover el contenido de AL en [DI]
  13. detener el programa

Programa –

DIRECCIÓN DE MEMORIA MNEMOTÉCNICA COMENTARIOS
0400 MOV SI, 500 SI <- 500
0403 MOV DI, 600 ED <- 600
0406 CL MOV, [SI] CL <- [SI]
0408 CA MOV, 00 CH <- 00
040A INC SI SI <- SI+1
040B MOV AL, [SI] AL <- [SI]
040D DIC CX CX <- CX-1
040E INC SI SI <- SI+1
040F MOV BL, [SI] BL <- [SI]
0411 CMP AL, BL AL-BL
0413 JC 0417 Saltar si llevar es 1
0415 MOV AL, BL AL <-BL
0417 BUCLE 040E Saltar si CX no es igual a 0
0419 MOV [DI], AL [DI] <- AL
041B HLT Fin del programa

Explicación –

  1. MOV SI, 500 asigna 500 a SI
  2. MOV DI, 600 asigna 600 a DI
  3. MOV CL, [SI] mueve el contenido de [SI] al registro CL
  4. MOV CH, 00 asigna 00 al registro CH
  5. INC SI aumenta el valor SI en 1
  6. MOV AL, [SI] mueve el contenido de [SI] al registro AL
  7. DEC CX reduce el contenido del registro CX en 1
  8. INC SI aumenta el valor SI en 1
  9. MOV BL, [SI] mueve el contenido de [SI] al registro BL
  10. CMP AL, BL resta el valor del registro BL de AL y modifica los registros de bandera
  11. JC 0417 salta a la dirección 0417 si se establece la bandera de acarreo
  12. MOV AL, BL mueve el contenido del registro BL al registro AL
  13. LOOP 040E ejecuta el bucle hasta que CX no es igual a cero y disminuye el valor de CX en 1
  14. MOV [DI], AL mueve el contenido de AL a [DI]
  15. HLT detiene la ejecución del programa

Publicación traducida automáticamente

Artículo escrito por anamika9988 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *