Error el codigo Hola mundo :/

Iniciado por x64core, 30 Octubre 2011, 08:27 AM

0 Miembros y 1 Visitante están viendo este tema.

x64core

bueno queria ver el hola mundo en asm pero me dio error :/

.model small
.stack
.data
Cadena1 DB 'Hola Mundo.$'
.code
programa:
   mov ax, @data
   mov ds, ax
   mov dx, offset Cadena1
   mov ah, 9
   int 21h
end programa



alguien me podria decir porque :P
estoy usando el IDE winAsm :P eso afecta :P y estoy ensamblando con MAsm32
me da error es estas lineas :P

   mov ax, @data
end programa

me dice:

Citar
\Masm32\Bin\ML /c /coff /Cp /nologo /I"\Masm32\Include" "C:\Users\Raul\Desktop\1.asm"

Assembling: C:\Users\Raul\Desktop\1.asm
C:\Users\Raul\Desktop\1.asm(7) : error A2006: undefined symbol : DGROUP
C:\Users\Raul\Desktop\1.asm(12) : warning A4023: with /coff switch, leading underscore required for start address : programa

Compilado listo. 2 error(es)

Eternal Idol

Ese codigo es de 16 bits, no sirve para el MASM32.
La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón

x64core

Gracias Eternal Idol :)
pero tengo una duda ahora si entendi que por eso no ensamblaba :P
pero entonces este es de 32 bits y me da error en las mismas lineas osea cuando quiero pasar la direccion de seg de datos al registro y al final de la etiqueta :P

; HOLA.ASM
; Programa clasico de ejemplo. Despliega una leyenda en pantalla.
STACK     SEGMENT STACK                ; Segmento de pila
                    DW     64 DUP (?)             ; Define espacio en la pila
STACK     ENDS

DATA      SEGMENT                             ; Segmento de datos
SALUDO      DB    "Hola mundo!!",13,10,"$" ; Cadena
DATA      ENDS

CODE      SEGMENT                            ; Segmento de Codigo
          ASSUME CS:CODE, DS:DATA, SS:STACK

INICIO:                                                  ; Punto de entrada al programa
          MOV  AX,DATA                         ; Pone direccion en AX
          MOV  DS,AX                              ; Pone la direccion en los registros
          MOV  DX,OFFSET SALUDO      ; Obtiene direccion del mensaje
          MOV  AH,09H                            ; Funcion: Visualizar cadena
          INT     21H                                  ; Servicio: Funciones alto nivel DOS
          MOV  AH,4CH                            ; Funcion: Terminar
          INT     21H
CODE      ENDS
          END  INICIO                               ; Marca fin y define INICIO
         
       




y este si me funciono:

.386
.model flat, stdcall
option casemap :none
include \masm32\include\windows.inc
include \masm32\include\kernel32.inc
include \masm32\include\user32.inc
includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\user32.lib
.data
HelloWorld db "Hello World!", 0
.code
start:
invoke MessageBoxA, NULL, addr HelloWorld, addr HelloWorld, MB_OK
invoke ExitProcess, 0
end start


pero entonces MASM32 solo puede trabajar con APIs? :P
pues al incio de crear un nuevo proyecto escoji uno de consola :P
y yo queria ver el hola mundo en el DOS :P
eso puede afectar a otros proyectos si uno escoje un proyecto de consola, DOS, EXE, COM?
gracias ;D

Иōҳ

Usas algún IDE?

Si puedes crear consola en 32bits, y sí usa apis, no interrupciones.

Puedes crear también un app de 16bits.
Eres adicto a la Ing. Inversa? -> www.noxsoft.net

x64core

#4
si :)
estoy usando el WinAsm
pero tambien tengo el RadAsm :P
pero con esos codigos los puse en el WinAsm :P

pero el primer codigo era de 16 bits :P y con MASM32 no pude ( ya Eternal Ido me dijo porque ) me imagino que con TASM si :P
y pues me confunde tantos tipos de proyectos que puede crear uno :P







porque hay muchos. por ejemplo que pasa si escojo un DOS y uso APIS?
bueno pues no es que sea inutil y no pruebe yo mismo pero es que eso hice :P
escoji un DOS y use APIS :P crei que me daria error pues solo se podrian usar interrupciones :P

Eternal Idol

Raul100: el 1ro que pusiste en tu ultimo mensaje es de 16 bits, el segundo de 32 bits, por eso te ensambla bien.
La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón