书目:汇编语言 (第二版) 作者: 王爽
出版社: 清华大学出版社
第一章 基础知识
存储单元
存储器被划分为若干个存储单元,每个存储单元从0开始顺序编号.
微型机存储单元可以存储一个byte,即8个二进制位.一个存储器有128个存储单元,它可以存储128个byte.
CPU对存储器的读写
? CPU想对数据进行读写,必须和外部器件进行3种信息的交互:
? 存储单元地址(地址信息)
? 操作器件,读或写的命令(控制信息) ? 读或写的数据(数据信息)
在计算机中专门有连接CPU和其他芯片的导线,通常称为总线. 从逻辑上又分为3类:地址总线、控制总线和数据总线.
地址总线
? CPU通过地址总线来指定存储器单元。地址总线的宽度决定了CPU的寻址能力
? N称为CPU地址总线的宽度, CPU有N根地址线,可寻找2的N次方个内存单元 控制总线
? 控制总线的宽度决定了CPU对外部器件的控制能力 数据总线
? CPU通过数据总线和内存或其他器件之间进行数据传送,数据总线的宽度决定了CPU和外界的数据传送速度
? 8根数据总线一次可以传送一个直接.16根数据总线一次可传送两个字节.
第二章 寄存器
8086/8088CPU的寄存器有4类:
数据寄存器:AX、BX、CX、DX (存放一般性的数据,又称通用寄存器) 指针及变址寄存器:SP、BP、SI、DI 段寄存器:CS、DS、SS和ES 控制寄存器:IP和Flags
AX (Accumulator),用累加器进行的操作可能需要更少时间。累加器可用于乘、除、输入/输出等操作;
BX称为基地址寄存器(Base Register),可作通用寄存器用,在计算存储器地址时,常用作基址存储器;
CX称为计数寄存器(Count Register),常用作循环计数器;在位操作中,要用CL来指明移位的位数;
DX称为数据寄存器(Data Register)。在进行双字的乘、除运算时,它可作为默认的操作数参与运算,也可用于存放I/O的端口地址。 CS:代码段寄存器 DS:数据段寄存器 SS:堆栈段寄存器 ES:附加段寄存器 IP:指令指针寄存器
CS和IP就指示了CPU当前要读取指令的地址
几条汇编指令
在写一条汇编指令或一个寄存器的名称时不区分大小写. 物理地址
CPU通过地址总线送入存储器的,必须是一个内存单元的物理地址.
16位结构的CPU
运算器一次最多可以处理16位的数据; 寄存器的最大宽度为16位;
寄存器和运算器之间的通路为16位.
8086CPU给出物理地址的方法
地址加法器采用“物理地址 = 段地址 * 16 + 偏移地址”的方法合成物理地址 段的概念
一个段的最大长度位64KB