0%

基础知识

汇编语言指令组成
  • 汇编指令:机器码的助记符,有对应的机器码。
  • 伪指令:没有对应的机器码,编译器执行,机器不执行。
  • 其他符号:如±*/有编译器识别,无对应机器码。
CPU与外部器件交互需要
  • 存储单元地址(地址信息)
  • 器件选择,读写命令(控制信息)
  • 数据(数据信息)
总线

总线就是一根根导线的集合,分为

  • 地址总线,越宽(数量越多)代表可以寻址的范围越大
  • 数据总线,越宽代表一次性读写的数据越多(8根1字节)
  • 控制总线,越宽代表对器件控制操作越多
小结

汇编指令和机器指令一一对应

每一种cpu都有自己的汇编指令集

在存储器中指令和数据都是二进制,没有任何区别

CPU可以直接使用的信息存放在存储器中(内存)

接口卡

CPU无法直接控制显示器,键盘等的外围设备,但CPU通过直接控制这些外围设备在主板上的接口卡来控制这些设备。

存储器
阅读全文 »

C++编译 (.obj, .lib, .dll, .exe的关系)

一、总体介绍:

c++程序在编译后,在目标路径下会生成多个文件:

Debug文件夹(.exe,.ilk,.obj,.pch,.pdb,.idb,,pdb),.cpp,.dsp,.ncb,*.plg

*.exe:是生成的可执行文件

*.ilk:当选定渐增型编译连接时,连接器自动生成ILK文件,记录连接信息

*.obj:是目标文件,源程序编译后的产物

*.pch:全称是PreCompiled Header,就是预先编译好的头文件

*.idb:文件保存的信息,使编译器在重新编译的时候只重编译最新改动过的函数和只对最新类定义改动过的源文件进行重编译,以提高编译速度

*.pdb:全称是Program DataBase,即程序数据库文件,用来记录调试信息

*.dsp:(全称是Developer Studio Project)也是一个配置文件

*.ncb:(全称No Compile Browser)的缩写,其中存放了供ClassView、WizardBar和Component Gallery使用的信息,由VC开发环境自动生成

*.plg:实际上是一个超文本文件,可以用Internet Explorer打开,记录了Build的过程

*.cpp:就是C++源代码文件.

二、具体介绍:

阅读全文 »

ASM是汇编语言源程序的扩展名,汇编语言(Assembly Language)是面向机器的程序设计bai语言。汇编语言是一种功能很强的程序设计语言,是利用计算机所有硬件特性并能直接控制硬件的语言。打开asm文件有两种方法即笔记本和MasmEdit软件。

在汇编语言中,用助记符(Memoni)代替操作码,用地址符号(Symbol)或标号(Label)代替地址码。这样用符号代替机器语言的二进制码,就把机器语言变成了汇编语言。因此汇编语言亦称为符号语言。

使用汇编语言编写的程序,机器不能直接识别,要由一种程序将汇编语言翻译成机器语言,这种起翻译作用的程序叫汇编程序,汇编程序是系统软件中语言处理系统软件。汇编程序把汇编语言翻译成机器语言的过程称为汇编。

汇编语言比机器语言易于读写、调试和修改,同时具有机器语言全部优点。但在编写复杂程序时,相对高级语言代码量较大,而且汇编语言依赖于具体的处理器体系结构,不能通用,因此不能直接在不同处理器体系结构之间移植。

汇编语言的特点

1、面向机器的低级语言,通常是为特定的计算机或系列计算机专门设计的。

2、保持了机器语言的优点,具有直接和简捷的特点。

3、可有效地访问、控制计算机的各种硬件设备,如磁盘、存储器、CPU、I/O端口等。

4、目标代码简短,占用内存少,执行速度快,是高效的程序设计语言。

5、经常与高级语言配合使用,应用十分广泛。

阅读全文 »

迭代器是一种抽象的设计概念,定义为:提供一种方法,使之能够依序巡访某个容器所含的各个元素,而又无需暴露该容器的内部表达式。迭代器是一种类似指针的对象,具有遍历复杂数据结构的能力,其下层运行机制取决于其所遍历的数据结构,因此,每一种容器型别都必须提供自己的迭代器。事实上每种容器都将其迭代器以嵌套方式定义于内部。

迭代器相应型别

1
2
3
4
5
6
7
8
//<stl_iterator_base.h>, stl source code v3.3
struct iterator {
typedef _Category iterator_category;
typedef _Tp value_type;
typedef _Distance difference_type;
typedef _Pointer pointer;
typedef _Reference reference;
};

value_type 是指迭代器所指对象的型别,任何一个打算与 STL 算法有完美搭配的 class,都应该定义自己的 value type 内嵌型别;

阅读全文 »