code2012

加油,坚持,努力,自信
随笔 - 107, 文章 - 3, 评论 - 18, 阅读 - 22万
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

05 2011 档案

摘要:1.笔记:CPL遇到一致代码段时,情况稍稍有点特殊,一致代码段可以被相同的或者更低特权级的代码访问ret分两种: retn 和retfretn是近返回,用于段内返回,它返回到堆栈内保存的本段内的偏移地址retf是远返回,一般用于段间返回,它返回堆栈内保存的段地址:偏移地址————————————————————————————————————————————-From:http://www.cnblogs.com/wanghj-dz/archive/2011/04/24/2026174.htmlretf,call 指令运行的详细情况call指令的运行情况:(代码段只能从低到高如:ring3到r 阅读全文

posted @ 2011-05-31 15:33 code2012 阅读(441) 评论(0) 推荐(0) 编辑

摘要:汇编指令: LGDT、LIDT、LLDT、LMSW、LOADALL、LOADALL286、LOCK、LODSB、LODSW、LODSD FROM:http://hi.baidu.com/formerdays/blog/item/76aa90606464f743ebf8f88a.html 名称 功能 操作数 操作码 模数 寄存器1 寄存器2 或内存 位移量 立即数 符号 方向 芯片 型号 16位 32位 LGDT加载全局描述符[寄16]$0F01000105无无无无286无$67LGDT加载全局描述符[寄32]$0F01000105无无无无286$67无LGDT加载全局描述符[寄16+位移8]. 阅读全文

posted @ 2011-05-29 15:11 code2012 阅读(5879) 评论(0) 推荐(0) 编辑

摘要:1>2>各层堆栈指针区域 0级内核堆栈,总被压入者认为其是空栈!3>地址映射寄存器区域 在分页机制下,由线性地址空间到物理地址空间的映射 由包含页目录起始地质的控制寄存器CR3确定。 与 任务相关的虚拟地址空间 到物理地址空间的映射由LDTR和CR3确定!----------------------------------------------------------------------------------------------------整体思路,及详细分析!一二三 四 完成跳转,实现ring0->ring1(kernel.asm之restart) 1 r 阅读全文

posted @ 2011-05-28 15:47 code2012 阅读(340) 评论(0) 推荐(0) 编辑

摘要:位运算 在很多系统程序中常要求在位(bit)一级进行运算或处理。C语言提供了位运算的功能, 这使得C语言也能像汇编语言一样用来编写系统程序。 一、位运算符C语言提供了六种位运算符: & 按位与 | 按位或 ^ 按位异或 ~ 取反 << 左移 >> 右移 1. 按位与运算 按位与运算符"&"是双目运算符。其功能是参与运算的两数各对应的二进位相与。只有对应的两个二进位均为1时,结果位才为1 ,否则为0。参与运算的数以补码方式出现。 例如:9&5可写算式如下: 00001001 (9的二进制补码)&00000101 (5的二 阅读全文

posted @ 2011-05-26 16:04 code2012 阅读(1877) 评论(0) 推荐(0) 编辑

摘要:原文:http://www.cnblogs.com/wanghj-dz/archive/2011/05/20/2051641.html进程的进程表、进程体、GDT、TSS的关系,以及进程表的初始化 关系见P252,图6-9进程表与GDT的关系:进程表里的LDT Selector对应GDT中的一个描述符,而这个描述符所指向的内存空间就存在与进程表内。进程表与进程体的关系:进程表是进程的描述,进程运行过程中如果被中断,各个寄存器的值都会被保存进进程表中。使用到进程表堆栈。但是,在我们的第一个进程开始前并不需要初始化太多内容,只需知道进程的入口地址就足够了。同时需要设置esp,指向进程表。GDT与T 阅读全文

posted @ 2011-05-24 16:06 code2012 阅读(221) 评论(0) 推荐(0) 编辑

摘要:汇编指令集合大全 收藏 一:数据传输指令 ─────────────────────────────────────── 它们在存贮器和寄存器、寄存器和输入输出端口之间传送数据. 1. 通用数据传送指令. MOV 传送字或字节. MOVSX 先符号扩展,再传送. MOVZX 先零扩展,再传送. PUSH 把字压入堆栈. POP 把字弹出堆栈. PUSHA 把AX,CX,DX,BX,SP,BP,SI,DI依次压入堆栈. POPA 把DI,SI,BP,SP,BX,DX,CX,AX依次弹出堆栈. PUSHAD 把EAX,ECX,EDX,EBX,ESP,EBP,ESI,EDI依次压入堆栈. POPAD 阅读全文

posted @ 2011-05-24 15:49 code2012 阅读(1026) 评论(0) 推荐(1) 编辑

摘要:EFLAGS寄存器介绍,摘自Intel指令集参考,方便大家快速查阅。 The 32-bit EFLAGS register contains a group of status flags, a control flag, and a group of system flags. Figure 3-8 defines the flags within this register. Following initialization of the processor (either by asserting the RESET pin or the INIT pin), the state of. 阅读全文

posted @ 2011-05-22 21:57 code2012 阅读(3321) 评论(0) 推荐(0) 编辑

摘要:http://blog.csdn.net/RichardYStevenhttp://hi.baidu.com/6121017/blog/item/0ec1728843498591a5c27264.html【学习】【保护模式编程) 阅读全文

posted @ 2011-05-22 19:35 code2012 阅读(242) 评论(0) 推荐(0) 编辑

摘要:typedef 函数指针的用法 在网上搜索函数指针,看到一个例子。开始没看懂,想放弃,可是转念一想,这个用法迟早要弄懂的,现在多花点时间看懂它,好过以后碰到了要再花一倍时间来弄懂它。其实很多时候都是这样,如果每次到难一点的内容,总想着下次我再来解决它,那就永远也学不到东西。后面那个例子加了注释,是我对这种用法的理解,希望对新手有所帮助。进入正文: 代码简化, 促进跨平台开发的目的. typedef 行为有点像 #define 宏,用其实际类型替代同义字。 不同点:typedef 在编译时被解释,因此让编译器来应付超越预处理器能力的文本替换。用法一:typedef int (*MYFUN)(in 阅读全文

posted @ 2011-05-21 23:39 code2012 阅读(61070) 评论(7) 推荐(10) 编辑

摘要:From:http://www.xdowns.com/article/170/article_2126.html教你如何用PQ魔法师调整硬盘分区大小【图解教程】下载地址:http://www.xdowns.com/soft/6/7/2006/Soft_30767.html PQ界面非常友好,在界面右端为硬盘的所有磁盘路径,上面标识着各个硬盘的容量,文件系统类型等等。左面是可以执行的操作。这里的硬盘是3个分区(就是磁盘1,磁盘2和3是网吧的服务器上的硬盘),C盘7.32G,D盘14.6G,E盘51.8G,下面介绍2种常用的操作大家可以举一反三:一:C盘不变,E盘减小为30G,减小的空间给D盘。 阅读全文

posted @ 2011-05-20 14:41 code2012 阅读(325) 评论(0) 推荐(0) 编辑

摘要:http://www.netexpert.cn/thread-21970-1-1.htmlhttp://www.netexpert.cn/viewthread.php?tid=355 新手建议 阅读全文

posted @ 2011-05-18 14:17 code2012 阅读(219) 评论(0) 推荐(0) 编辑

摘要:From:http://www.tyut.edu.cn/kecheng1/2008/site04/courseware/chapter6/6.3.3.html6.3.3 8259A初始化编程 在8259A内部有两组寄存器,一组为命令寄存器,用于存放CPU写入的初始化命令字ICW1~ICW4(initialization command words);另一组为操作命令寄存器,用于存放CPU写入的操作命令字OCW1~OCW3(operation command words)。 1.初始化命令字ICW的格式 当地址线A0为1时,8259A提供了4个(ICW1~ICW4)初始化命令字,并规定了严格的初 阅读全文

posted @ 2011-05-18 13:59 code2012 阅读(5083) 评论(1) 推荐(0) 编辑

摘要:From:http://www.akaedu.org/pages/center11_qudong.html基于Linux的嵌入式系统目前获得了广泛应用,在嵌入式Linux核心层的开发中,设备驱动的编写占据了大部分的工作量,能编写出真正可用的驱动程序存在着很多技术要点,本课程的开设兼顾初学者和有一定开发经验人员的需要,通过对嵌入式Linux系统理论知识和实际代码分析相结合的方式,了解和学习目前在嵌入式Linux驱动开发中比较重要的几项驱动和其框架结构,如块设备驱动程序框架,LCD Frambuffer,网络设备驱动,USB驱动等。通过大量精心设计的驱动实验,使学员真正掌握嵌入式系统驱动开发的关键 阅读全文

posted @ 2011-05-17 23:20 code2012 阅读(989) 评论(0) 推荐(0) 编辑

摘要:从汇编看c语言函数调用http://www.itbbs.cn/manual/linux-c/ch19.html<linux 一站式学习> 学C语言时,就听老师说函数调用时是通过栈来记录信息,又听说什么“保留现场”,"恢复现场"一些既听不懂,也不知道怎么弄懂的东西。最近正在学习Linux下的汇编,现在就通过一个简单的例子来展示一下汇编级的函数调用,这样能够增加大家对C语言的理解。虽然并不是很完善,但是足够阐明函数调用的思想。//functest.c#include <stdio.h>void func(int a, int b){int c;int d 阅读全文

posted @ 2011-05-17 23:16 code2012 阅读(502) 评论(0) 推荐(0) 编辑

摘要:我们用下面的代码来研究函数调用的过程。例 19.1. 研究函数的调用过程int bar(int c, int d){ int e = c + d; return e;}int foo(int a, int b){ return bar(a, b);}int main(void){ foo(2, 3); return 0;}如果在编译时加上-g选项(在第 10 章 gdb讲过-g选项),那么用objdump反汇编时可以把C代码和汇编代码穿插起来显示,这样C代码和汇编代码的对应关系看得更清楚。反汇编的结果很长,以下只列出我们关心的部分。$ gcc main.c -g$ objdump -dS a. 阅读全文

posted @ 2011-05-17 23:15 code2012 阅读(952) 评论(0) 推荐(0) 编辑

摘要:汇编函数与C函数的相互调用2010-08-30 07:22汇编函数与C函数的相互调用初看这个标题,也许很多读者会认为很深奥!有这种想法就错了,其实无论是C调用汇编还是汇编调用C,都没有想象中的那么复杂。上一节1_4例中的delay_nms函数,只要把delay_nms改为_delay_nms就可以不做其它任何修改而被C函数调用了。是不是很简单?^_^之所以要做这样修改,是因为C51的函数转换为汇编的时候,函数名根据实际情况有可能会改动,这种改动是很有规律而且简单的,只要记下来就行。看下表--------------------+---------+----------------------- 阅读全文

posted @ 2011-05-17 23:15 code2012 阅读(13805) 评论(3) 推荐(1) 编辑

摘要:网络这东西就是一个靠实践的东西,只靠看书是不行的。当年在学校还上过史美林教授/张公忠教授所讲的计算机网络体系结构课,用的是Tanabaum写的那本,考试还得了九十多分,可实际还是连TCP和UDP有什么区别都分不清,就是死记背,到毕业的时候基本上是忘光了,工作后等于重新来过。上班了要在Linux做一些底层的网络处理,不得不从头来学Linux和网络,编程部分主要看Richard Stevens的那几本书:APUE、UNP、TCP/IP Illustraion等,学Linux则看得很杂,市面上各种Linux入门书大都翻了一遍,俺是习惯在书店里看书,爱看书而不爱买书,汗,,然后就是去各大BBS、论坛把 阅读全文

posted @ 2011-05-08 22:18 code2012 阅读(300) 评论(0) 推荐(0) 编辑

摘要:其实追女孩子的过程中,女方的朋友往往是致胜的关键,有时候明明快追上手,但是,就差那临门一脚,岂不气煞人。所以她的朋友的建议是相当重要的。因此,对方的死党你一定要用点功夫,要让她们对你有好印象,样她们才不至于你追求的过程中扯你后腿,她们搞好关系,让其为你美言几句,保证你收获多多。 远交近攻:我个人不是反对死缠烂打,但是有时候给对方一些空间得以喘息是很必要的。有些女孩子不必给她太的压力,不然对方可能会害怕。当你她进入僵持状况,段时间你尽量克制自己不要去干扰她,假装冷淡她。然后你再试著重新接近她,观察她的反应,如果说她对你非常冷淡(可能她是因为你不理她的缘故或是她对你根本没兴趣,巴不得你离她远远的) 阅读全文

posted @ 2011-05-05 15:41 code2012 阅读(137) 评论(0) 推荐(0) 编辑

摘要:1.vim#在命令行中输入vim,进入vim编辑器2.i#按一下i键,下端显示 --INSERT--#插入命令,在vim中可能任意字符都有作用3.Esc#退出i(插入)命令进行其它命令使用4.:r filename#读入一个文件内容,并写入到当前编辑器中5.:w newfilename#将该编辑器中的内容写入到一个新文件中6.:w#在编辑的过程中保存文件,相当于word中的ctrl+s7.:! command暂时离开 vi 到指令列模式下执行 command 的显示结果!例如:!ls#在编辑过程中执行shell命令ls8.:sh#进入shell命令行,执行完命令后ctrl+d退出重新进入vim 阅读全文

posted @ 2011-05-05 14:03 code2012 阅读(538) 评论(0) 推荐(0) 编辑

摘要:自己动手写操作体统 pmtest1.asm 详细解释 -----揭秘一些书本 ,没有说的细节本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/wangshenwq/archive/2008/09/14/2927636.aspx段机制轻松体验 内存寻址: 实模式下的内存寻址: 让我们首先来回顾实模式下的寻址方式 段首地址×16+偏移量 = 物理地址 为什么要×16?因为在8086CPU中,地址线是20位,但寄存器是16位的,最高寻址64KB,它无法寻址到1M内存。于是,Intel设计了这种寻址方式,先缩小4位成16位放入到段寄存器,用到时候,再将 阅读全文

posted @ 2011-05-02 21:42 code2012 阅读(1572) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示