SECTION .data
msg: db "刘雪刚 你快听,是傻逼,是傻逼,哼你爱听的旋律", 0x0a
len: equ $-msg
SECTION .text
global _main
kernel:
syscall
ret
_main:
mov rax,0x2000004 ; system call number should be stored in rax 0x2000004 表示 syscall 调用号 write
mov rdi,1 ;表示控制台输出
mov rsi,msg ;syscall 调用会到 rsi 来获取字符
mov rdx,len ;字符串长度
call kernel
mov rax,0x2000001 ;'exit' syscall number 0x2000001 表示退出 syscall
mov rdi,0
call kernel
种类:
Intel汇编:8086、Win32/64
AT&T汇编:AT&T、ARM
ARM、X86/Atom、MIPS、PowerPC
xcrun --sdk iphoneos clang -S -arch arm64 main.c -o main.s
CPU + MEM存储器(flash,RAM,EEPROM) + "多个IO模块"
libc、glibc
系统调用
syscall
I/O系统
驱动程序
中断服务程序
**中断向量表 ** BIOS中断调用(内核函数)
参考资料
KernelProgramming
Mac OS X内核编程,MAC驱动开发资源汇总
Mac OS X Assembler Guide