Assembly

148 阅读1分钟
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

计算机中断体系

简书
简书

系统调用接口
C语言的标准库和系统调用
设备驱动层
I/O设备、设备控制器、中断、I/O软件