• Domingo 22 de Diciembre de 2024, 17:33

Autor Tema:  Programa Lista Enlazada (si Pueden)  (Leído 1749 veces)

korajes

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Programa Lista Enlazada (si Pueden)
« en: Miércoles 26 de Mayo de 2004, 17:38 »
0
:angry:

hola, solicito alguien que me auxilien en codigo para una lista enlazada, mi problema es obtener los bloques de memoria y enlazarlos, espero me ayuden

GRACIAS!!!

yago

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: Programa Lista Enlazada (si Pueden)
« Respuesta #1 en: Jueves 3 de Junio de 2004, 15:46 »
0
aqui tienes una parte de como hacer los bloques de memoria....

espero te sea de utilidad    :scream:
Código: Text
  1. hacer_lista:
  2. &#59; solicitar memoria
  3.   @GetBlock 2
  4.   .if carry?
  5.     mostrar "error de obtención de memoria$"
  6.     jmp salir
  7.   .endif
  8. &#59; verificar si es el inicio de la lista dir_incio_lista ==NULL
  9.   .if  dir_incio_lista==NULL
  10.     mov dir_incio_lista,ax &#59; colocar esta dirección como el inicio de la lista
  11.     mov tmp_dir,ax  &#59; recordar ultimo bloque obtenido
  12.     mov es,ax     &#59; apuntar hacia esa parte de la memoria
  13.     mov dx,0
  14.     mov es:[0],dx  &#59; poner un cero en primeros dos bytes porque es el fin de la lista
  15.     nl
  16.     mostrar "bloque unicial$"
  17. &#59; usar esa parte de la memoria
  18.   &#59;call capturar
  19.  
  20.   .else&#59; y si no es el ultimo bloque
  21.   &#59; actualizar dirección en bloque anterior          
  22.     push ax      &#59; almacenar esta dirección en la pila
  23.       mov ax,tmp_dir&#59; obtener dirección del bloque anterior
  24.       mov es,ax  &#59; apuntar hacia esa parte
  25.     pop ax      &#59; recuperar dirección obtenida
  26.   &#59;mov es:[si],ax  &#59; guardar como dirección del bloque siguiente
  27.                 mov es:[0],ax
  28.                &#59; actualizar dirección del ultimo bloque
  29.     mov tmp_dir,ax  &#59; recordar ultimo bloque obtenido
  30.     mov es,ax     &#59; apuntar hacia esa parte de la memoria
  31.     mov dx,0      
  32.     mov es:[0],dx  &#59; poner un cero en primeros dos bytes porque es el fin de la lista
  33.     nl
  34.     mostrar " otro bloque mas$"
  35.    
  36.   &#59; usar esa parte de la memoria
  37.   &#59;call capturar    
  38.   .endif
  39.  
  40.   nl
  41.   mostrar "desea otro bloque mas? s/n$"
  42.   @GetChar
  43.   .if al=='s'
  44.     jmp hacer_lista
  45.  
  46.  

darkabgel1

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: Programa Lista Enlazada (si Pueden)
« Respuesta #2 en: Jueves 10 de Junio de 2004, 14:57 »
0
este codigo se lo pirtio al maestro, e pinche korajes.