汇编语言 王爽教材 第二章 寄存器
寄存器
CPU的构成:运算器 , 控制器 , 寄存器
CPU内部各个器件是通过内部总线连接的
运算器用来信息处理 , 寄存器用来信息存储 , 控制器用来控制各种器件的工作
在寄存器中 , 数据通过字和字节进行存储
其中 , 一个字是两个字节 , 一个字节为 \(8\) 个bit
16位结构的CPU
Q:什么是16位结构?
A:
运算器一次最多处理\(16\)位的数据 , 寄存器的最大宽度为 \(16\) 位
寄存器和运算器的通路为 \(16\) 位
在8086中 , 有\(20\)位地址总线 , 但是内部是 \(16\) 位的结构
在计算地址时 , 采用 段地址 + 偏移地址的方式运算
二者都是 \(16\) 位的 , 通过地址加法器产生 \(20\) 位的地址
段的概念
段的起始地址必然为 \(16\) 的倍数(因为会右移 \(4\) 位)
因为偏移地址是 \(16\) 位的 , 就是 \(2^16\)个存储单元
也就是 \(64\) KB
Q:如何表示某个地址?
A:
基地址 + 偏移地址 . 如 \(2100:0F60\) 等
Q:段寄存器有哪些?
A:
CS , DS , SS , ES都可以
CS和IP
CS: 代码段寄存器
IP:指令指针寄存器
Q:CS和IP运行具体过程?
A:
-
CS:IP通过地址加法器变为 \(20\) 位地址
-
然后寻址到读取指令 , 将读取指令加入到指令寄存器
-
IP = IP + 读取指令长度 , 从而转向下一条指令
-
执行指令 , 转移到步骤1
注意:执行JMP指令时 , IP变化两次
CS:IP如何初始化?
CS = FFFFH , IP = 0000H
FFFF0中的内容为开机之后的第一条指令
Debug使用
查看寄存器: R 命令
查看内存: D 命令
修改内存: E 命令
以汇编语言方式查看内存: U 命令
以汇编语言方式修改内存: A 命令
单步执行汇编程序: T 命令(默认CS:IP处命令)
8086地址空间的分配
0000H-7FFFH的32KB空间为主随机存储器的地址空间
8000H-9FFFH的8KB空间为显存
A000H-FFFFh的24KB空间为各个ROM空间

浙公网安备 33010602011771号