Click here to Skip to main content
15,868,016 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
hi, my friend i build a assembly source:
section	.text
    global _start   ;must be declared for linker (ld)
_start:	            ;tells linker entry point
    mov	edx,len     ;message length
    mov	ecx,msg     ;message to write
    mov	ebx,1       ;file descriptor (stdout)
    mov	eax,4       ;system call number (sys_write)
    int	0x80        ;call kernel
	
    mov	eax,1       ;system call number (sys_exit)
    int	0x80        ;call kernel

section	.data
msg db 'Hello, world!', 0xa  ;our dear string
len equ $ - msg     ;length of our dear string

for build it i uses this command line:
nasm -f bin index.asm -o hhh.com
i read it from this link:
doc nasm
it built when i click it :it has error:please see image:
image
can any help me?
thanks

What I have tried:

i tested with command line but built file couldn't run.
http://www.mediafire.com/view/qoza9228exg9u1e/nasmerrrocombuilt.png#
what should i do?
Posted
Updated 4-Mar-16 5:58am
v2

You cannot create a .com program directly from the assembler (including the fact that the source does not support it). The output should have a .exe extension.
 
Share this answer
 
Comments
stackprogramer 4-Mar-16 11:45am    
now i uses these commandline:
nasm -f win32 index.asm -o test.o
ld test.o -o test.exe
the file exe created ,when i clicked it i crashed and closed!

thanks for reply
stackprogramer 4-Mar-16 11:45am    
it message test.exe has stoping working!!
i had a silly wrong!!
i completed answer my friend after thinking i concluded that int 0x80 is not in windows, it should be for linux.
Richard MacCutchan thanks very much.
cordially your stackprogramer
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900