日期:2019/3/31
内容:UCore-Lab0
一、UCore实验
实验 |
说明 |
关键词 |
Lab1 |
bootloader的实现 |
中断 |
Lab2 |
物理内存管理 |
x86分段/分页模式 |
Lab3 |
虚拟内存管理 |
缺页故障、页表替换 |
Lab4 |
内核线程管理 |
内核态线程 |
Lab5 |
用户进程管理 |
用户态进程创建、执行、切换和结束 |
Lab6 |
进度调度管理 |
CPU管理 |
Lab7 |
同步互斥 |
进程通信、死锁 |
Lab8 |
文件系统 |
IO访问、VFS |
二、AT&T语法
AT&T: asmop src, dst
Intel: asmop dst, src
AT&T |
Intel |
|
寄存器 |
%eax |
eax |
操作数顺序 |
movl %ebx, %eax |
mov eax, ebx |
立即数 |
movl $_val, %eax |
mov eax, _val |
地址 |
movl $0xd00d, %eax |
mov eax, 0xd00d |
操作数长度标识 |
movw %ax, %bx |
mov bx,ax |
寻址方式 |
imm32(base, index, scale) |
[base + index * scale + imm32] |
寻址方式对比。
AT&T |
Intel |
|
直接寻址 |
foo |
[foo] |
寄存器间接寻址 |
(%eax) |
[eax] |
变址寻址 |
_var(%eax) |
[eax + _var] |
_var(, %eax, 4) |
[eax * 4 + _var] |
|
_var(%ebx, %eax, 8) |
[ebx + eax * 4 + _var] |
三、gcc内联汇编
四、gdb
五、qemu