汇编语言 王爽教材 第二章 寄存器

寄存器

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:

  1. CS:IP通过地址加法器变为 \(20\) 位地址

  2. 然后寻址到读取指令 , 将读取指令加入到指令寄存器

  3. IP = IP + 读取指令长度 , 从而转向下一条指令

  4. 执行指令 , 转移到步骤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空间

posted @ 2025-04-05 18:39  Guaninf  阅读(58)  评论(0)    收藏  举报