排序:
默认
按更新时间
按访问量

10、实模式到保护模式上

从计算机的示例谈起: 远古的程序开发:直接操作物理内存 CPU指令的操作数直接使用实地址(实际内存地址) 程序员拥有绝对的权利(利用cpu指哪打哪) 绝对的权利带来的问题: 1难以重定位:程序每次都需要同样地址的内存执行。 有的程序用了开头和结尾,当在别的电脑上运行后,512k内存编写...

2018-07-16 12:26:34

阅读数:21

评论数:0

31、软件开发流程

30中有内存泄漏什么是软件开发流程?通过一系列步骤保证软件产品的顺利完成软件产品的生命期内管理方法学软件开发流程的本质:开发流程与具体技术无关,开发流程是开发团队必须遵守的规则。常见软件开发流程:即兴模型(Build-and-Fix Model):没有规则瀑布模型(Waterfall Model)...

2018-06-05 21:59:26

阅读数:303

评论数:0

1、基础数据

数据类型理解为固定内存大小的别名。 数据类型是创建变量的模子。  2、有符号与无符号 数据类型的最高位用于标识数据的符号。 最高位为1,表明这个数为负数。 最高位为0,表面这个数为负号。 有符号数的表示法: 在计算机内部用补码表示有符号数。 正数的补码为正数本身。负数的补码为负数的...

2018-08-06 17:11:29

阅读数:16

评论数:0

72、进程与线程

72、进程与线程的概念 值得深思的问题:什么是程序?什么是进程?程序和进程有什么关系? 程序是计算机存储系统中的数据文件: 源代码程序:文本文件,描述程序行为和功能。不能直接运行 可执行程序:二进制文件,直接加载并执行。 源代码程序->编译器->可执...

2018-07-30 17:04:30

阅读数:17

评论数:0

32、qt中的文件操作+

32qt中的文件操作+ qt中io操作的处理方式:(类似linux思想外部设备:一切皆文件) qt通过统一的接口简化了文件与外部设备的操作方式,qt中的文件被看做一种特殊的外部设备,qt中的文件操作与外部设备的操作相同。 统一的IO操作方式 io操作中的关键函数接口: 打开设备:bool ...

2018-07-27 17:34:04

阅读数:40

评论数:0

9、主引导程序控制权的转移

BootLoader内存布局低----->高

2018-07-16 12:26:10

阅读数:18

评论数:0

6、突破512字节的限制一

辅助函数-->字符串打印,软盘读取问题:主引导程序中如何进行字符串打印?BIOS中的字符串打印:指定打印参数(AX=0X1301,BX=0x0007)指定字符串的内存地址(ES:BP=串地址)段地址和段内偏移地址来指定目标字符串的内存地址指定字符串的长度(CX=串长度)中断调...

2018-07-10 20:03:53

阅读数:53

评论数:0

4、主引导程序的扩展上+

主引导程序是BIOS后运行的第一个程序,位于第0扇区,以55aa为结束符,大小不超过512字节512字节能完成操作系统功能么?限制:主引导程序的代码量不能超过512字节!突破限制的思路:主引导程序:1、完成最基本的初始化工作2、从存储介质中加载程序到内存中3、将控制权交由新加载的程序执行。存储介质...

2018-07-09 13:30:13

阅读数:22

评论数:0

1、进阶操作系统

什么是操作系统?windows,unix,linux,macos,android,ios...操作系统是直接运行于硬件之上的计算机程序。操作系统用于管理和控制计算机的硬件与软件资源。操作系统为用户软件的开发提供必要的服务和接口。现代计算机系统架构:硬件层-BIOS()-操作系统-用户软件(编译软件...

2018-07-07 17:56:54

阅读数:35

评论数:0

21、系统模块管理的设计

系统模块化设计将系统中有关联的部分组合在一起,构成具有特定功能的子系统。划分模块的内部组成具有较强的耦合性,模块本身具有一定的通用性。不同的模块间可以进行相互组合与依赖,进而构成不同的产品。模块化设计:结构化设计    面向对象设计示例:Module Demointerface123  int f...

2018-07-06 18:31:11

阅读数:59

评论数:0

18、设计、软件质量之本

软件设计是什么?一种创造性的活动,力求以简单优雅的方式解决实际问题、软件设计是一门技术:数据结构,组成原理,操作系统,编程语言。软件设计是一门艺术。并不是技术知识的简单堆砌,分析抽象,取舍。软件设计的意义(构架的意义)软件设计:功能,部署,交互,复用性,维护性,扩展性。特定:是一个塑造模型(概念)...

2018-07-05 17:27:29

阅读数:29

评论数:0

16、混淆指针与数组的问题

下面的程序输出什么?#include <stdio.h>    //main.cextern char* g_name;   //使用define.c定义的全局数组g_nemeint main(){ define_print();printf(&...

2018-07-05 15:28:20

阅读数:13

评论数:0

13、深入理解程序结构

程序由不同的段构成(代码段,数据段):程序的静态特征就是指令和数据。程序的动态特征就是执行指令处理数据。源程序到可执行程序文件的对应关系:图13.1初始化后去.data 未初始化去.bss局部变量在栈上,可执行函数语句去代码段大部分去了可执行程序。代码段(.text):可执行不可写源代码中的可执行...

2018-07-04 19:44:20

阅读数:22

评论数:0

11、调试利器GDB

什么是GDB? GNU项目中的调试器(gnu debuger)能够跟踪程序的执行,也能够恢复程序奔溃前的状态。为什么需要GDB?软件不是一次性开发完成的(是软件就有bug,是程序就有问题)调试是软件开发过程中不可或缺的技术(调试工具很重要)GDB的常规应用:自定义程序的启动方式(指定影响程序运行的...

2018-07-03 14:34:38

阅读数:36

评论数:0

7、链接器

问题:源文件被编译成目标文件,这些目标文件如何生成最终的可执行程序?链接器的意义:链接器的主要作用是把各个模块之间相互引用的部分处理好,使得各个模块之间能够正确的衔接。文标文件的秘密:各个段没有具体的起始地址,只有段大小信息。各个标识符没有实际地址,只有段中的相对地址。段和标识符的实际地址需要链接...

2018-07-02 13:02:45

阅读数:22

评论数:0

1、处理器

处理器:微控制器vs为处理器为控制器:cpu+片内内存+片内外设微处理器:cpu注意:微控制器具有成本低,功耗低等优点,常用于嵌入式系统设计。对于软件工程师而言,微控制器和微处理器没有任何区别。...

2018-06-30 18:46:52

阅读数:38

评论数:0

20、打造专业的编译环境

大型项目的目录结构(无第三方库)

2018-06-27 19:21:57

阅读数:28

评论数:0

15、make中的隐式规则

如果同一个目标的命令拆分的写到不同地方,会发生什么?下面的程序怎么执行?为什么?makefile中出现同名目标时:依赖:所有的依赖将合并在一起,成为目标的最终依赖。命令:当多处出现同一目标时,make发出警告。所有之前定义的命令被最后定义的命令取代。注意事项:当使用include关键字包含其他文件...

2018-06-25 18:11:57

阅读数:54

评论数:0

11、自动生成依赖关系

值得思考的问题目标文件(.o)是否只依赖与源文件(.c)?编译器如何编译源文件和头文件?test.out->test.c test.h编译行为带来的缺陷:预处理器将头文件中的代码直接插入源文件。编译器只通过预处理后的源文件产生目标文件。因此,规则中以源文件为依赖,命令可能无法...

2018-06-24 21:15:51

阅读数:87

评论数:1

6、变量的高级主题

变量值的替换:使用指定字符(串)替换变量值中的后缀字符(串)。语法格式:$(var:a=b)或${var:a=b}替换表达式中不能有任何的空格.make中支持使用${}对变量进行取值。src :=a.cc b.cc c.ccobj :=$(src:cc=o) //(a.o b.o c.o)test...

2018-06-22 13:57:01

阅读数:18

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭