8086 programa para buscar un número en una string

Problema – Escriba un programa en lenguaje ensamblador en un microprocesador 8086 para buscar un número en una string de 5 bytes, almacene el desplazamiento donde se encuentra el elemento y el número de iteraciones utilizadas para encontrar el número.

Ejemplo –

Algoritmo –

  1. Mueva 2000 en AX y asígnelo a ES
  2. Asignar valor 600 a DI
  3. Mueve 25 en AL
  4. Mover 0005 en CX
  5. Mover el contenido de CX a BX
  6. Borrar el valor de la bandera direccional (DF)
  7. Repita el paso 7 hasta que la bandera cero (ZF) no esté configurada
  8. Escanee el byte de [DI] y verifique su diferencia con el contenido de AL. Actualizar el valor de DI
  9. Disminuye el valor de DI en 1
  10. Restar el valor de BX por CX
  11. Disminuye el valor de BX en 1
  12. detener el programa

Programa –

COMPENSAR MNEMOTÉCNICA COMENTARIO
400 HACHA MOV, 2000 HACHA <- 2000
403 MOVIMIENTOS, HACHA ES <-AX
405 MOV DI, 600 ED <- 600
408 MOV AL, 25 LA = 25 40A MOV CX, 0005 CX = 0005 40D MOV BX, CX BX <- CX 40F CLD DF = 0 para que se acceda a la memoria
desde el byte inferior al byte superior
410 REPNE SCAS B Repita hasta ZF = 0. Escanee el valor de [DI] y
compárelo con AL, Incremente DI
414 DIC DI ED = ED – 1 415 MOV DX, DI DX = DI 417 SUB BX, CX BX = BX – CX 419 Caja de diciembre BX = BX – 1 41B HLT Deténgase

Explicación –

  1. MOV AX, 2000 se utiliza para mover datos al registro AX.
  2. MOV ES, AX se usa para mover los datos de AX al registro de segmento ES.
  3. MOV DI, 600 se usa para mover el desplazamiento 600 al índice de destino (DI).
  4. MOV AX, 25 se utiliza para mover datos a AL.
  5. MOV CX, 0005 se usa para mover datos a CX.
  6. MOV BX, CX se utiliza para copiar contenidos de CX a BX.
  7. CLD se utiliza para borrar el valor de la bandera direccional (DF), de modo que se acceda a la memoria desde el byte inferior al byte superior.
  8. REPNE SCAS B se usa para escanear datos de DI y compararlos con datos de AL, si son iguales, vaya al siguiente paso; de lo contrario, incremente el valor de DI en 1 y repita este paso.
  9. DEC DI se utiliza para disminuir el contenido de DI en 1.
  10. MOV DX, DI se usa para mover el contenido de DI a DX.
  11. SUB BX, CX se usa para restar el contenido de BX por CX.
  12. DEC BX se usa para disminuir el contenido de BX en 1.
  13. HLT deja de ejecutar el programa y detiene cualquier ejecución posterior.

Publicación traducida automáticamente

Artículo escrito por harshit-chhabra 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 *