0%

何谓分支

提交的数据结构

Git 保存的不是文件差异或者变化量,而只是一系列文件快照。在 Git 中提交时,会保存一个提交(commit)对象,该对象包含一个指向暂存内容快照的指针,包含本次提交的作者等相关附属信息,包含零个或多个指向该提交对象的父对象指针:首次提交是没有直接祖先的,普通提交有一个祖先,由两个或多个分支合并产生的提交则有多个祖先。

Read more »

git工作原理

Git 和其他版本控制系统的主要差别在于,Git只关心文件数据的整体是否发生变化,而大多数其他系统则只关心文件内容的具体差异。Git 并不保存这些前后变化的差异数据。实际上,Git 更像是把变化的文件作快照后,记录在一个微型的文件系统中。每次提交更新时,它会纵览一遍所有文件的指纹信息并对文件作一快照,然后保存一个指向这次快照的索引。为提高性能,若文件没有变化,Git 不会再次保存,而只对上次保存的快照作一链接

git工作原理

Read more »

内存中字的存储

字单元 : 即存放一个字型数据(16位)的内存单元,由两个地址连续的内存单元组成。高地址内存单元存放字型数据的高位字节,低地址内存单元存放字型数据的低位字节。

任何两个地址连续的内存单元,N 号单元和N+1 号单元,可以将它们看成两个内存单元,也可看成一个地址为N的字单元中的高位字节单元和低位字节单元。

DS和[address]

8086 CPU有一个DS寄存器,通常用来存放要访问的数据的段地址:

1
2
3
mov bx,1000H
mov ds,bx
mov al,[0]

“[…]”表示一个内存单元,“[…]”中的0表示内存单元的偏移地址。段地址存在DS寄存器中。8086 CPU不支持将数据直接送入段寄存器,故需要用一个寄存器进行中转。

8086 CPU一次性传送16位的数据,即一个字。

Read more »

总线

看操作系统的书发现需要补一补汇编的知识,于是上网找了一本好评度很高的汇编语言教科书,抽空恶补。

  • 汇编语言是机器指令的助记符,同机器指令一一对应。
  • 每一种CPU都有自己的汇编指令集。
  • CPU可以直接使用的信息在存储器中存放。
  • 在存储器中指令与数据没有任何区别,都是二进制信息。
  • 存储单元从零开始顺序编号。
Read more »

debug的使用

Debug是DOS、Windows都提供的实模式(8086方式)程序的调试工具,使用它,可以查看CPU各种寄存器的内容,内存情况可机器码级跟踪程序的运行。

实验中用到的debug功能:

  • -r 查看、改变CPU寄存器的内容
  • -d 查看内存中的内容
  • -e 改写内存中的内容
  • -u 将内存中的机器指令翻译成汇编指令
  • -t 执行一条机器指令
  • -a 已汇编指令的格式在内存中写入一条机器指令

注意:windows 7 以后就不提供带有debug的commond工具了,这里实验使用MS-DOS虚拟机完成实验。

Read more »