• Viernes 8 de Noviembre de 2024, 17:43

Autor Tema:  No Se Lo Que Es  (Leído 2297 veces)

Douglas

  • Nuevo Miembro
  • *
  • Mensajes: 8
    • Ver Perfil
No Se Lo Que Es
« en: Domingo 2 de Enero de 2005, 19:16 »
0
tengo  un programa pequeño :comp:   en masm y me esta dando problemas  al momento de compilarlo sucede lo siguiente (lo ilustrare con un ejemplo para explicarme mejor)

masm prueba.asm
0 warning
0 severe

link prueba.obj


LINK : warning L4021 no stack segment
 

esta parte de arriba es que no se lo que es y no he podido avanzar  :(  por favor aquel que me pueda ayudar se lo agradecer un monton.

Les anexo el codigo

Forly

  • Nuevo Miembro
  • *
  • Mensajes: 21
    • Ver Perfil
Re: No Se Lo Que Es
« Respuesta #1 en: Sábado 29 de Enero de 2005, 16:21 »
0
Hola Amigo:

Yo también soy nuevo en esto del ASM. De hecho no utilizo el MASM sino el TASM para mis ejercicios.

Por otro lado, no tengo acceso al código que dices haber adjuntado.

Sin embargo, te puedo decir que el SEGMENTO DE STACK (segmento de PILA), es una porción de memoria RAM reservada para almacenar variables transitorias que utiliza el procesador durante la ejecución de los programas.

Tú también pudes hacer uso de él por intermedio de órdenes tales como PUSH o POP.

Lo importante de esto, es que lo utilices o no, es necesario reservar espacio para este tipo de segmento.

Esto lo puedes hacer con la directiva:

.STACK 100h

Para ser un poco más claro te agrego un esquema de código:

; ESTE ES UN ESQUMA DE CODIGO
.model SMALL               ; Declaracion del modelo de memoria

.stack                          ; Declaracion del segmento de pila.
                                   ; Puedes agregar el tamaño, aunque por defecto
                                   ; toma 100h

.data                           ; Declaracion del area de datos. Aqui se declaran
                                  ; todas las variables que vayas a usar.

.code                           ; Inicio del area de codigo del programa.
INICIO:                       ; Sector de comienzo del programa.

                                  ; En este espacio van todas las instruciones de
                                  ; tu programa

end INICIO                  ; Aqui terminan las instrucciones.

end                             ; Aqui termina el programa.



Bueno Amigo, esperando que esto te ayude, te mando un abrazo.

hecktor00

  • Miembro activo
  • **
  • Mensajes: 85
    • Ver Perfil
Re: No Se Lo Que Es
« Respuesta #2 en: Lunes 7 de Febrero de 2005, 03:06 »
0
Código: Text
  1.  
  2. PAGE 60,132
  3. ;TITLE P04ASM1 ESTRUCTURA DE UN PROGRAMA .EXE
  4. STACKSG   SEGMENT     PARA STACK 'Stack'                        
  5. STACKSG   ENDS
  6.  
  7. DATASG    SEGMENT     PARA 'Data'
  8.          
  9. DATASG    ENDS
  10.  
  11. CODESG   SEGMENT     PARA 'Code'
  12. BEGIN    PROC            FAR
  13.         ASSUME   SS:STACKSG, DS:DATASG,CS:CODESG
  14.      MOV              AX, DATASG            &#59;Obtiene la dirección del segmento de datos
  15.         MOV              DS, AX                &#59;Almacena dirección en DS
  16.        
  17.        &#59;Inicio del programa
  18.  
  19.         MOV    AH,09H    &#59;Solicita desplegar
  20.         MOV    AL,'*'                 &#59;Asterisco
  21.         MOV    BH,00H    &#59;Pagina numero 0
  22.         MOV     BL,0DAH    &#59;Atributo de color
  23.   MOV    CX,05    &#59;5 veces
  24.         INT     10H    &#59;Llama al BIOS
  25.         MOV              AX, 4C00H             &#59;Peticion
  26.         INT              21H
  27. BEGIN   ENDP                                   &#59;Termina programa principal
  28.         CODESG  ENDS
  29.        
  30.         END               BEGIN
  31.  
  32.  
este codigo, te puede servir para q  t puedas tomar como estructura.

Suerte!
t envio este
.......::::::......:.::::::::::Norte Veracruz Mexico....