汇编、计算机原理、操作系统发展史、编译器启蒙

一、汇编语言基础

汇编语言 = 操作码+操作数

汇编、计算机原理、操作系统发展史、编译器启蒙

注:.bin文件为二进制文件,里面是纯净的机器指令,纯净的意思就是注释什么的等等都没有。.lst是列表文件,lst是list列表的简写。

汇编、计算机原理、操作系统发展史、编译器启蒙

汇编、计算机原理、操作系统发展史、编译器启蒙

汇编、计算机原理、操作系统发展史、编译器启蒙

二、HexView软件

该软件可以打开二进制文件(程序),以十六进制格式阅读机器码

汇编、计算机原理、操作系统发展史、编译器启蒙

汇编、计算机原理、操作系统发展史、编译器启蒙

注:其中的十六进制和字符的对应关系遵循ASCII编码表。若在编码表中无对应字符,则显示一个点。

汇编、计算机原理、操作系统发展史、编译器启蒙

注:.lst文件通过HexView软件打开后的样子。可以看到lst文件其实就是通过文本形式存储机器指令的文件。

三、寄存器、内存

汇编、计算机原理、操作系统发展史、编译器启蒙

汇编、计算机原理、操作系统发展史、编译器启蒙

注:内存组织数据是按字节来的,但是外部访问内存是可以通过字节或者字或者双字等方式进行单次访问,即通过上面的字长控制信号进行控制。

四、字节序

汇编、计算机原理、操作系统发展史、编译器启蒙

注:存储005D的数据,在内存中的“低端字节序存储方式”和“高端字节序存储方式”。不同的处理器会选择不同的存储方式。

五、8086寄存器,总共有14个寄存器,分为以下三个部分

汇编、计算机原理、操作系统发展史、编译器启蒙

汇编、计算机原理、操作系统发展史、编译器启蒙

六、代码段和数据段

汇编、计算机原理、操作系统发展史、编译器启蒙

注:当mov指令执行完之后,AX寄存器的状态如图中所示。上图形象的说明了“程序 = 指令 + 数据”。

程序的重定位问题

汇编、计算机原理、操作系统发展史、编译器启蒙

注:相对地址或者说逻辑地址是不固定的,相同的程序加载到内存中时,逻辑地址会被重新计算,方便重新定位到程序所用的数据。

那么逻辑地址的原理是什么呢

汇编、计算机原理、操作系统发展史、编译器启蒙

注:如上图,逻辑地址和物理地址是可以相同的。

汇编、计算机原理、操作系统发展史、编译器启蒙

汇编、计算机原理、操作系统发展史、编译器启蒙

注:程序再次读入内存时,寄存器会再次计算程序的“首地址”,进行存储,这样不管地址怎么变,都能准确的定位到程序需要的数据。

汇编、计算机原理、操作系统发展史、编译器启蒙

七、计算机听谁的指挥

汇编、计算机原理、操作系统发展史、编译器启蒙

注:处理器的处理数据依据,CS+IP,决定了处理器执行那条指令。

八、硬盘

汇编、计算机原理、操作系统发展史、编译器启蒙

九、操作系统的自举

汇编、计算机原理、操作系统发展史、编译器启蒙

注:我们可以自己写代码到主引导扇区,这样就跳过操作系统来执行自己的代码了。

十、显卡和显存

汇编、计算机原理、操作系统发展史、编译器启蒙

汇编、计算机原理、操作系统发展史、编译器启蒙

注:若显示器中的一个像素要表达更多的色彩,则,显存中所要存储的数据就更多。如显存中1个比特代表一个像素和8个比特代表一个像素在显示器中的呈现是不一样的。

文本模式

汇编、计算机原理、操作系统发展史、编译器启蒙

汇编、计算机原理、操作系统发展史、编译器启蒙

汇编、计算机原理、操作系统发展史、编译器启蒙

十一、操作系统和处理器架构

汇编、计算机原理、操作系统发展史、编译器启蒙

十二、操作系统发展史相关

汇编、计算机原理、操作系统发展史、编译器启蒙

汇编、计算机原理、操作系统发展史、编译器启蒙

汇编、计算机原理、操作系统发展史、编译器启蒙

汇编、计算机原理、操作系统发展史、编译器启蒙