32 lines
		
	
	
		
			801 B
		
	
	
	
		
			ArmAsm
		
	
	
		
			Executable File
		
	
	
			
		
		
	
	
			32 lines
		
	
	
		
			801 B
		
	
	
	
		
			ArmAsm
		
	
	
		
			Executable File
		
	
	
    ;; Hello World Program #1
 | 
						|
    ;; Compile with: nasm -f elf hello.s
 | 
						|
    ;; Link with: ld -m elf_i386 -o hello hello.o
 | 
						|
    ;; Run with: ./hello
 | 
						|
 | 
						|
    ;; sys/unistd_32.h
 | 
						|
%define     SYS_write	4
 | 
						|
%define     SYS_exit	1
 | 
						|
 | 
						|
    ;; unistd.h
 | 
						|
%define STDOUT		1
 | 
						|
 | 
						|
section .data
 | 
						|
    msg     db  "Hello You Beautiful Human", 0Ah
 | 
						|
    len     equ $-msg           ; NASM-supplied macro
 | 
						|
    
 | 
						|
section .text    
 | 
						|
    global _start
 | 
						|
 | 
						|
_start:
 | 
						|
    mov     edx, len
 | 
						|
    mov     ecx, msg            ; Address of the message (not the content)
 | 
						|
    mov     ebx, STDOUT         ; using STDOUT (see definition above)
 | 
						|
    mov     eax, SYS_write      ; Using WRITE in 32-bit mode?
 | 
						|
    int     80h                 ; Interrupt target. The 'h' means 'hexidecimal'
 | 
						|
 | 
						|
    mov     ebx, 0
 | 
						|
    mov     eax, SYS_exit
 | 
						|
    int     80h 
 | 
						|
    
 | 
						|
    
 |