XV6操作系统 学习笔记(源代码共9100行)
2016-03-29 23:09
239 查看
1. 说明: 此文用来记录学习xv6过程中收集的一些资料。
2. 代码片段
asm 伪指令define SEG_NULLASM \ .word 0, 0; \ .byte 0, 0, 0, 0
说明:
.word就地生成一个指定长度的数,
.byte就地生成一个字节的数。上述代码生成两个字长度的数,接着生成4个字节的数。
0660 #define SEG_ASM(type, base, lim) \ 0661 .word (((lim) >> 12) & oxffff), ((base) & oxffff); \ 0662 .byte (((base) >> 16 & oxff), (ox90 | (type)), \ 0663 (0xC0 | (((lim) >> 28) & 0xf)), (((base) >> 24) & 0xff) 0665 #define STA_X 0x8 0668 #define STA_W 0x2 0669 #define STA_R 0x2
根据此扩展gdt代码段有
8981 .p2align 2 8982 gdt: 8983 SEG_NULLASM 8984 SEG_ASM(STA_X | STA_R, 0x0, 0xffffffff) # code seg 8985 SEG_ASM(STA_W, 0x0, 0xffffffff) # data seg # 扩展后 gdt: .word 0, 0; .byte 0, 0, 0, 0; .word 0xffff, 0; .byte 0, 0x9a, 0xcf, 0 .word 0xffff, 0; .byte 0, 0x92, 0xcf, 0
3. 资料
保护模式相关文章推荐
- c++第二次实验项目一
- springmvc概述及框架原理
- KMP算法研究(一)
- 【spring基础】spring声明式事务详解
- 关于maven环境变量配置
- java中的内部类总结
- Python 2.7 学习笔记 列表的使用
- Gearman 使用案例(PHP--配合Yii2异步发送Email)
- error LNK2019,cpp文件调用C代码
- 作业四:结对编程
- QT7 How to connect Qt to SQLite
- Java并发:互斥锁和读写锁
- [C++]class内的static方法指针
- spring---one
- Raspberry安装ssh
- Visual Studio中的环境变量(以Visual Studio 2013为例)
- C语言实现字节流与十六进制字符串的相互转换
- Spring5:@Autowired注解、@Resource注解和@Service注解
- Qt提取EXE文件的大图标
- 模版元编程之——Type Traits