Intel x86 family assembly language (CPU used on PCs)
.code start: mov ah, 09h
lea dx, msg
int 21h
mov ax, 4C00
int 21h
PowerPC assembly language (CPU used on Wii)
_start:
movl $len,%edx # 3rd argument: message len
movl $msg,%ecx # 2nd argument: message ptr
movl $1,%ebx # 1st argument: file handle
movl $4,%eax # system call number
int $0x80 # call kernel
movl $0,%ebx # 1st argument: exit code
movl $1,%eax # system call number
int $0x80 # call kernel
ARM assembly language (CPU used on most mobile phones)
add r0, r0, #2 // Add immediate: r0 += 2;
add r0, r0, r1 // Add register: r0 += r1;
add r0, r1, r2 // Add registers: r0= r1 + r2;
ldr r0, [r2] // Load int from memory: r0= r2[0];
ldr r0, [r2, #4] // Load int from memory: r0= r2[1];
ldmia r2, {r0, r1} // Load multiple: r0= r2[0]; r1= r2[1];
Intel 8051 assembly language (CPU used in embedded systems, uses Harvard architecture)
init_uart_intr:
clr ea
orl pcon, #10000000b ;set double baud rate
anl tmod, #00001111b ;clear all timer1 bits in tmod
orl tmod, #00100000b ;set timer1 as 8 bit auto reload
clr tr1 ;make sure timer1 isn't running
clr tf1
mov a, #baud_const ;256 - (crystal / (baud * 192))
mov th1, a ;set timer1 rate
mov tl1, a
mov scon, #01010000b ;config serial port
mov rx_buf_head, #rx_buf ;set up empty receive buffer
mov rx_buf_tail, #rx_buf
mov tx_buf_head, #0 ;set up transmit buffer as empty
mov tx_buf_tail, #0 ;and no tx interrupt expected
setb tr1 ;start timer1
setb es ;enable serial port interrupt
setb ea ;also turn on general interrupts