I'm currently in an assembly course and i have to run the code on Mac OS X and I'm lost on how i should run the code on Mac OS X
Here's the code:
; Description: This program adds and subtracts 16‐bit integers.
; Revision Date:
INCLUDE Irvine32.inc
.code
main PROC
mov ax, 650 ; AX = 650h
sub ax, 50h ; AX = 600h
sub ax, 100h ; AX = 500h
sub ax, 300h ; AX = 200h
call DumpRegs ; display registers
exit
main ENDP
END main
This is the error message that i am receiving
Tayvions-MacBook-Pro:~ tayvionpayton$ cd Documents/Code/
Tayvions-MacBook-Pro:Code tayvionpayton$ nasm -f macho32 -o0 assembly_Tp.asm
assembly_Tp.asm:4: error: parser: instruction expected
assembly_Tp.asm:5: warning: label alone on a line without a colon might be in error
assembly_Tp.asm:6: error: parser: instruction expected
assembly_Tp.asm:12: warning: label alone on a line without a colon might be in error
assembly_Tp.asm:13: error: symbol `main' redefined
assembly_Tp.asm:13: error: parser: instruction expected
assembly_Tp.asm:14: error: parser: instruction expected
Tayvions-MacBook-Pro:Code tayvionpayton$
Assembler Code is not run, it is:
gnu
assembler which is used when writing source code in what is called AT&T Syntax
syntax. See GAS.gnu
linker [LD].3 Here are examples of a two step compile/link using NASM:
First compile the source code to an object file. This example is 32 bit:
nasm -f macho32 -O0 helloworld.asm
This will produce a helloworld.o
(object) file. You then need to finish this by linking:
ld helloworld.o -o helloworld
You can now run with ./helloworld