第一章 基础知识
1.1 机器语言
机器语言是机器指令的集合,机器指令是指一台机器可以正确执行的命令,主要是一列二进制数字。计算机将之转变为一列高低电平,驱动计算机电器元件。
1.2 汇编语言
汇编语言的汇编指令,汇编指令和机器指令差别在于指令的表示方法,汇编指令是机器指令便于记忆的书写格式。
汇编编译器将汇编指令编译成机器语言。
汇编语言主要有三类指令组成:汇编指令、伪指令、其他符号;
1.3 在磁盘和内存中,指令与数据没有任何区别,都是二进制信息。CPU在工作时有时将信息看成指令,有时看成数据。
1.4 CPU对于存储器的读写:
存储单元的地址
器件的选择,读写信息
读写的数据
1.5 一根导线可以稳定传送的状态只有两种:高电平、低电平。一个CPU有N根地址线,则可以说这个CPU的地址总线的宽度N。数据总线位宽决定了传送的速度。8088位宽为8,8086位宽为16
1.6 控制总线是一些不同控制线的集合。有多少根总线,就有多少种控制的外部器件。所以控制总线的宽度决定了CPU对外部器件的控制作用。
1.7 主板上有CPU、存储器、外围芯片组、扩展卡槽。扩展卡槽一般插有RAM内存条和各类接口卡。CPU通过总线向接口卡发送指令,接口卡根据CPU的命令控制外设进行工作。
1.8 各类存储器芯片包括随机存储器、装有BIOS的ROM、接口卡上的RAM,都和CPU通过总线相连。CPU将存储器看成逻辑地址。每个物理存储器在逻辑地址中占有一段地址。CPU在这段逻辑地址中读写数据,就是对于相应的物理存储器读写。
第二章 寄存器
2.1寄存器是CPU中程序员可以读写的器件。8086CPU有14个寄存器。
2.2通用寄存器:AX/BX/CX/DX 可以存放两个字节,可以分为两个独立的8位寄存器。字在寄存器中使用小端法进行存储。
2.3 汇编指令:MOV ADD
2.4 存储器的物理地址:
内存单元构成一维线性空间,对内存单元操作之前需要先形成物理地址。8086CPU通过段地址加上偏移量的形式,通过地址加法器的部件生成物理地址。段地址左移4位加上偏移量
2.5 段及段寄存器:内存中只有连续的一维地址空间,而CPU中有逻辑地址的概念,可以划分出段,利用段的方式管理内存。段的起始地址为16的倍数,而偏移量为2^16,即64K。CPU中段寄存器有4个:CS/DS/ES/SS。
2.6 CS:IP CS为代码段寄存器,IP为指令指针寄存器。任意时刻,CPU将CS:IP指向的内容当成指令执行。CS:IP----地址加法器----地址总线-------取指令-------地址总线-----指令缓存器-----执行控制器。
修改CS、IP的指令。在CPU中,程序员能够用指令进行读写的只有寄存器,程序员可以通过对于寄存器的的修改来控制CPU,但是MOV指令不能修改CS、IP值。能够修改CS、IP内容的指令称为转移指令。JMP可以修改,JMP CS:IP可以修改段地址、偏移地址;JMP IP/ JMP 合法寄存器可以修改偏移地址。实质上JMP AX相当于MOV IP,AX
编程时可以安排特殊内存作为代码段,但是CPU只会认为CS:IP指向的内存单元内容为指令,因此需要将CS:IP指向代码段的首地址