Assembly Language Project Hello World

How to write a Hello World program that prints/outputs a text/string message on the console in assembly?

; Hello World Program -
; Compile with: nasm -f elf helloworld.asm
; Link with (64 bit systems require elf_i386 option): ld -m elf_i386 helloworld.o -o helloworld
; Run with: ./helloworld
; varName  dataType   initialValue   eg msg := 'Hello World!\n'
msg     db      'Hello World!', 0Ah     ; assign msg variable with your message string
msglen  equ     $-msg                   ; len of string

global  _start
    mov     edx, msglen     ; number of bytes to write - one for each letter plus 0Ah (line feed character)
    mov     ecx, msg    ; move the memory address of our message string into ecx
    mov     ebx, 1      ; write to the STDOUT file
    mov     eax, 4      ; invoke SYS_WRITE (kernel opcode 4)
    int     80h