The END directive in assembly language

user3307068 picture user3307068 · Mar 18, 2014 · Viewed 12.9k times · Source

I am new to assembly language and wrote this code:

main PROC

    mov eax,10000h          ; Eax=10000h
    add eax,40000h          ; Eax=50000h
    sub eax,20000h          ; Eax=30000h
    call DumpRegs

    exit
    main ENDP
END main

I wanted to know why do you really need to put "main ENDP" and "end main" twice over? I am only using one procedure but seem to be ending this procedure twice.

Is there a better way to write this if you are only using one procedure?

Answer

Jester picture Jester · Mar 18, 2014

The END main marks the end of the file, specifying an entry point for your program (this is optional). The main ENDP denotes the end of your procedure.

I am not aware of a way to merge the two.