上一页 1 ··· 4 5 6 7 8 9 10 11 12 ··· 18 下一页
摘要: 80x86保护模式下IDT和中断调用过程分析 1.中断描述符表(IDT),将每个异常或中断向量分别与它们的处理过程联系起来。与GDT和LDT类似,IDT也是由8字节长度的描述符组成。IDT空描述符的存在标志位必须是0。IDT表可以驻留在线性地址空间的任何地方,处理器使用IDTR寄存器来定位IDT表的 阅读全文
posted @ 2017-12-12 09:22 学习记录园 阅读(371) 评论(0) 推荐(0) 编辑
摘要: 内核代码绝大部分使用C 语言编写,只有一小部分使用汇编语言编写,例如与特定体系结构相关的代码和对性能影响很大的代码。GCC提供了内嵌汇编的功能,可以在C代码中直接内嵌汇编语言语句,大大方便了程序设计。 简单的内嵌汇编很容易理解 例: __asm__ __volatile__("hlt"); “__a 阅读全文
posted @ 2017-12-09 15:13 学习记录园 阅读(582) 评论(0) 推荐(0) 编辑
摘要: 一 gdb概述 gdb调试器的目的是让你了解其他的程序在执行的时候发生了什么或者其他程序崩溃时正在做什么 gdb主要能够在运行中做四类事情(包括这些事情中的一些附加的事情)来帮助你获取bugs a 运行程序,指定任何影响程序行为的东西 b 让你的程序在指定的条件下停止 c 当你的程序停止的时候,检查 阅读全文
posted @ 2017-12-08 15:03 学习记录园 阅读(341) 评论(0) 推荐(0) 编辑
摘要: C语言变量长度在32位和64位处理器上的关系 理论上来讲 我觉得数据类型的字节数应该是由CPU决定的,但是实际上主要由编译器决定(占多少位由编译器在编译期间说了算)。常用数据类型对应字节数 可用如sizeof(char),sizeof(char*)等得出 32位编译器: char :1个字节 cha 阅读全文
posted @ 2017-12-06 08:12 学习记录园 阅读(1821) 评论(0) 推荐(0) 编辑
摘要: 终端是一种字符型设备,它有多种类型,通常使用tty来简称各种类型的终端设备。tty是Teletype的缩写。Teletype是最早出现的一种终端 设备,很象电传打字机(或者说就是),是由Teletype公司生产的。设备名放在特殊文件目录/dev/下,终端特殊设备文件一般有以下几种:1.串行端口终端 阅读全文
posted @ 2017-12-04 09:09 学习记录园 阅读(35348) 评论(0) 推荐(0) 编辑
摘要: /******************/ “b”将输入变量放入ebx “c”将输入变量放入ecx “d”将输入变量放入edx “s”将输入变量放入esi “d”将输入变量放入edi “q”将输入变量放入eax,ebx ,ecx ,edx中的一个 “r”将输入变量放入通用寄存器,也就是eax ,ebx 阅读全文
posted @ 2017-12-04 08:43 学习记录园 阅读(313) 评论(0) 推荐(0) 编辑
摘要: c中#与##的应用思考 原创 2014年02月25日 22:01:35 927 原创 2014年02月25日 22:01:35 927 一. 思考出处 在读<<linux 0.12完全剖析>>初始化部分, init进程是通过fork调用的,在这里fork调用的非常特别,由于种种原因,用的是内嵌汇编的 阅读全文
posted @ 2017-12-03 21:05 学习记录园 阅读(273) 评论(0) 推荐(0) 编辑
摘要: 有时候我们希望在C/C++代码中使用嵌入式汇编,因为C中没有对应的函数或语法可用。比如我最近在ARM上写FIR程序时,需要对最后的结果进行饱和处理,但gcc没有提供ssat这样的函数,于是不得不在C代码中嵌入汇编指令。 1. 入门 在C中嵌入汇编的最大问题是如何将C语言变量与指令操作数相关联。当然, 阅读全文
posted @ 2017-12-02 14:54 学习记录园 阅读(1094) 评论(0) 推荐(0) 编辑
摘要: 由于一直想写一个自己的操作系统,网上推荐了《linux内核完全注释》。自学了一个星期,感觉这本书还是很好的,同时写下关于内核代码的理解,如果有什么不对的对方,欢迎大家一起来交流。 在内核引导启动程序中,有3个文件,bootsec.s,setup.s head.s。关于这3个源代码,网上有很多人都有详 阅读全文
posted @ 2017-11-28 21:29 学习记录园 阅读(2272) 评论(0) 推荐(0) 编辑
摘要: 第三章引导启动程序 boot目录中的三个汇编代码文件 bootsect.s和setup.s采用近似intel的汇编语法,需要8086汇编器连接器as86和ld86 head.s用GNU的汇编程序格式 并且运行在保护模式下,需要GNU的as进行编译。为AT&T语法的汇编语言程序。GNU只支持386后的 阅读全文
posted @ 2017-11-27 18:59 学习记录园 阅读(572) 评论(0) 推荐(0) 编辑
上一页 1 ··· 4 5 6 7 8 9 10 11 12 ··· 18 下一页