Programación General > ASM (Ensamblador)
No Se Lo Que Es
(1/1)
Douglas:
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:
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:
--- Código: Text --- PAGE 60,132;TITLE P04ASM1 ESTRUCTURA DE UN PROGRAMA .EXESTACKSG SEGMENT PARA STACK 'Stack' STACKSG ENDS DATASG SEGMENT PARA 'Data' DATASG ENDS CODESG SEGMENT PARA 'Code'BEGIN PROC FAR ASSUME SS:STACKSG, DS:DATASG,CS:CODESG MOV AX, DATASG ;Obtiene la dirección del segmento de datos MOV DS, AX ;Almacena dirección en DS ;Inicio del programa MOV AH,09H ;Solicita desplegar MOV AL,'*' ;Asterisco MOV BH,00H ;Pagina numero 0 MOV BL,0DAH ;Atributo de color MOV CX,05 ;5 veces INT 10H ;Llama al BIOS MOV AX, 4C00H ;Peticion INT 21HBEGIN ENDP ;Termina programa principal CODESG ENDS END BEGIN este codigo, te puede servir para q t puedas tomar como estructura.
Suerte!
t envio este
Navegación
Ir a la versión completa