Programa 8086 para transferir un bloque de 4 bytes usando instrucciones de string

Problema: escriba un programa para transferir un bloque de 4 bytes, la dirección inicial es 0500 y transfiera el bloque a la dirección 0600 utilizando instrucciones de string.

Ejemplo –

Suposiciones: suponga que hay 4 bloques en las direcciones de memoria 0500, 0501, 0502, 0503.

Algoritmo –

  1. Asignar valor 500 en SI y 600 en DI
  2. Asigne el valor 0000 H a AX
  3. Mover el contenido de AX en DS
  4. Mover el contenido de AX en ES
  5. Asigne el valor 0004 H a CX
  6. Borrar la bandera direccional
  7. Repetir hasta CX=0, Mover bloque de string
  8. Paralización del programa

Programa –

DIRECCIÓN DE MEMORIA MNEMOTÉCNICA COMENTARIOS
0400 MOV SI, 500 SI <- 500
0403 MOV DI, 600 ED <- 600
0406 HACHA MOV, 0000 HACHA <- 0000
0409 MOV DS, HACHA DS <-AX
040B MOVIMIENTOS, HACHA ES <-AX
040D MOV CX, 0004 CX <- 0004
0410 CLD BANDERA DIRECCIONAL CLARO
0411 REPS REPETIR HASTA CX=0
0412 MOVSB MOVER EL BLOQUE
0413 HLT FIN DEL PROGRAMA

Explicación –

  1. MOV SI, 500 asigna 500 a SI
  2. MOV DI, 600 asigna 600 a DI
  3. MOV AX, 00 asigna 0000 al registro AX
  4. MOV DS, AX mueve el contenido de AX al segmento DS
  5. MOV ES, AX mueve el contenido de AX al segmento ES
  6. MOV CX, 0004 asigna 0000 al registro CX
  7. CLD borrar la bandera direccional
  8. REP repetir hasta CX=0
  9. MOVSB ​​mover bloque de string
  10. 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 *