汇编语言学习笔记 下载本文

书目:汇编语言 (第二版) 作者: 王爽

出版社: 清华大学出版社

第一章 基础知识

存储单元

存储器被划分为若干个存储单元,每个存储单元从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