汇编语言 (王爽)读书笔记
第一章 基础知识
◎汇编语言由 3 类指令组成
汇编指令:机器码的助记符,有对应机器码。
伪指令:没有对应机器码,由编译器执行,计算机并不执行
其他符号:如+-*/,由编译器识别,没有对应机器码
◎一个 CPU 有 n 根地址线,则可以所这个 CPU 的地址线宽度为 n,这样的 CPU
最多可以寻找 2 的 n 次方个内存单元。
◎ 1K=2^10B 1M=2^20B 1G=2^30B
◎8086 CPU 地址总线宽度为 20,寻址范围为 00000~FFFFF
00000~9FFFF 主存储器地址空间(RAM)
A0000~BFFFF 显存地址空间
C0000~FFFFF 各类 ROM 地址空间
第二章 寄存器(CPU 工作原理)
◎16 位结构描述了一个 CPU 具有下面几个方面的结构特性
运算器一次最多可以处理 16 位的数据
寄存器的最大宽度为 16 位
寄存器和运算器之间的通路为 16 位
◎8086 有 20 位地址总线,可以传送 20 位地址,达到 1M 的寻址能力。采用在
内部用两个 16 位地址合成的方法来形成一个 20 位的物理地址
◎物理地址 = 段地址 × 16 + 偏移地址
◎在编程是可以根据需要,将若干地址连续的内存单元看作一个段,用段地址
×16 定位段的起始地址(基础地址),用偏移地址定位段中的内存单元。段地
址×16 必然是 16 的倍数,所以一个段的起始地址也一定是 16 的倍数;偏移地址
位 16 位,16 位地址的寻址能力为 64KB,所以一个段的长度最大为 64KB
◎8086 有四个段寄存器 CS、DS、SS、ES
◎CS 为代码段寄存器,IP 为指令指针寄存器。任意时刻,设 CS 中内容为
M、IP 中内容为 N,8086CPU 从内存 M×16+N 读取一条指令执行
◎不能用 mov 修改 CS、IP,因为 8086CPU 没有提供这样功能,可用指令 JMP
段地址:偏移地址。JMP 2AE3:3 JMP AX 修改 IP
第三章 寄存器(内存访问)
◎DS 数据段寄存器。不能将数据直接送入段寄存器,所以『MOV DS, 1』不正
确
◎字在存储时要两个连续的内存单元,低位在低地址,高位在高地址
◎[address]表示一个偏移地址为 address 的内存单元
◎SS:SP 指向栈顶元素