计算机系统基础

绪论

冯诺依曼结构

一种将程序指令存储器和数据存储器合并在一起的一种计算机组织结构

  • 运算器(ALU)
  • 控制器(Controller)

(前两个称为CPU(MPU

  • 存储器(Memory)

  • 输入设备(Input device)

  • 输出设备(Output Device)

后两个叫IO设备

697508b76e3781cdd09216f282dce4d
  • 数据总线(Data Bus):在CPU与RAM之间来回传送需要处理或是需要储存的数据。
  • 地址总线(Address Bus):用来指定在RAM(Random Access Memory)之中储存的数据的地址。
  • 控制总线(Control Bus):将微处理器控制单元(Control Unit)的信号,传送到周边设备。
  • 扩展总线(Expansion Bus):外部设备和计算机主机进行数据通信的总线,例如ISA总线,PCI总线。
  • 局部总线(Local Bus):取代更高速数据传输的扩展总线。

其中的数据总线DB(Data Bus)、地址总线AB(Address Bus)和控制总线CB(Control Bus),也统称为系统总线,即通常意义上所说的总线。

信息的表示和处理

二进制

addressing and Byte Ordering(字节序(大小端))

45d407b6c4cf35fd989a1e533eb67d7

(上:大端;下:小端)

(endian:(查不到)《格列佛游记》无所谓之争)

x86小端多,网络协议大端多

Word Size(字长)

Until recently,most machines used 32bits(4bytes)as word size

Limits addresses to 4GB(2^32 bytes)

TiB更精确,TB小点(不同单位不一样)36c50892cbd27aee0ae0fe7808306ac

Representing Pointers

Representing Code

指令集不同,跨平台能力不同

封装格式:PE(可移zhi),ELF

Boolean Algebra

And&;Or|;“Not~”;Xor^(异或);

异或异或太重要了!!!!

81680077440ffe2b18d57c076c5854d

Logical Operations in C(逻辑)

||(或;&&(与;!(非;

short Circuit前成立后不执行

有效防止除零和空指针运算

Shift Operations in C(位移)

<<;>>(算术右移(补数据最高位);逻辑右移)

Undefined Behavior(未定义行为)

可读性

Operator precedence issues

加减大于位移

汇编

底层实现

代码示例

gcc -o1 p1.c p2.c -o p

-o1优化,p1.c,p2.c编译为p文件

a2d70754da27d5fd6f1c7350bd0b254

linker链接部分错误更隐蔽

汇编转换
34d396975b427229df4709a9b91c51f
反汇编工具(linux):

objdump -d winword.exe

gdb sum