I am a beginner in Assembly (in fact this is my first ever attempt), and I was wondering how I could get this x86 assembly code to run on my Mac using NASM and the ld linker. 

```
SECTION .data           ; Section containing initialised data

    EatMsg: db "Eat at Joe's!",10
    EatLen: equ $-EatMsg    

SECTION .bss            ; Section containing uninitialized data 

SECTION .text           ; Section containing code

global  _start          ; Linker needs this to find the entry point!

_start:
    nop         ; This no-op keeps gdb happy...
    mov eax,4       ; Specify sys_write call
    mov ebx,1       ; Specify File Descriptor 1: Standard Output
    mov ecx,EatMsg      ; Pass offset of the message
    mov edx,EatLen      ; Pass the length of the message
    int 80H         ; Make kernel call

    MOV eax,1       ; Code for Exit Syscall
    mov ebx,0       ; Return a code of zero 
    int 80H         ; Make kernel call

```

This assembly code is from a book that is made for linux, however since both linux and mac are unix based operating systems, I assumed that the assembly code would be generally the same. I realize now that I may not be able to get this to a mac executable through nasm and ld, but if I can, how would I do so? And if not, how would I change this assembly code so that it does work, but does generally the same thing?