mshello.asm

;make this an MZ magic MS-DOS EXE file                                                                                  

format  MZ

entry   segcode:start

stack   100h

;define system calls                                                                                                    

writes  =       9

dos     =       21h

exit    =       4Ch

;define code segment                                                                                                    

segment segcode

;entry point                                                                                                            

;note that data addresse are automatically interpreted as relative to the data segment                                  

start:  mov     ax,segdata      ;prepare address of data segment                                                        

        mov     ds,ax           ;write data segment address into data segment register                                  

        mov     dx,0            ;write zero into destination address register                                           

        mov     ah,writes       ;prepare writes system call                                                             

        int     dos             ;execute system call                                                                    

        mov     ax,segextra     ;prepare address of extra segment                                                       

        mov     ds,ax           ;write extra segment address into data segment register                                 

        mov     ah,writes

        int     dos

        mov     ah,exit

        int     dos

;define data segment                                                                                                    

;note that the Hello World string is stored at the beginning of the segment at address zero                             

segment segdata

        db      'Hello, world.',13,10,'$'

;define extra segment                                                                                                   

;note that the Good Bye string is stored at the beginning of the segment at address zero                                

segment segextra

        db      'Good bye.',13,10,'$'


 © Andrew Brehm 2016