fud*_*din 8 cpu x86 cpu-registers microprocessors
我参加了计算机体系结构课程,我理解处理器有32个寄存器,每个32位.现在我正在学习计算机体系结构课程,其中我读到8086只有8个寄存器.但是我读过的这本书和这个网站显示了很多寄存器.我对8086和8088的寄存器感到困惑.请帮帮我.谢谢
我很好地理解了不同处理器中不同的寄存器大小.我只是对寄存器的数量感到困惑.谢谢
Kev*_*imm 29
8086和8088是16位处理器 - 它们的寄存器宽度为16字节(AX和DX可以组合成一个32位寄存器)
注意8086有16位数据总线; 8088有一个8位数据总线(尽管它们在内部都是16位可寻址的)
一般用途寄存器
8086 CPU有8个通用寄存器,每个寄存器都有自己的名称:
AX - 累加器寄存器(分为AH/AL):
Generates shortest machine code: short-form encodings exist
Arithmetic, logic and data transfer
One number must be in AL or AX
Multiplication & Division
Input & Output
Run Code Online (Sandbox Code Playgroud)
BX - 基地址寄存器(分为BH/BL).
CX - 计数寄存器(分为CH/CL):
Offset address relative to DS by default
Run Code Online (Sandbox Code Playgroud)
DX - 数据寄存器(分为DH/DL):
The LOOP instruction uses it implicitly as a counter
Repetitive operations on strings with the REP command
Count (in CL) of bits to shift and rotate
Run Code Online (Sandbox Code Playgroud)
SI - 源索引寄存器:
DX:AX concatenated into 32-bit register for some MUL and DIV operations
Specifying ports in some IN and OUT operations
Run Code Online (Sandbox Code Playgroud)
DI - 目的地索引寄存器:
Can be used for pointer addressing of data
Used as source in some string processing instructions
Offset address relative to DS by default
Run Code Online (Sandbox Code Playgroud)
BP - 基指针:
Can be used for pointer addressing of data
Used as destination in some string processing instructions as ES:DI
Offset address relative to DS outside of string instructions
Run Code Online (Sandbox Code Playgroud)
SP - 堆栈指针:
Primarily used to access parameters and locals on the stack
Offset address relative to SS
Run Code Online (Sandbox Code Playgroud)
分段寄存器
CS - 指向包含当前程序的段.
DS - 通常指向定义变量的段.
ES - 额外的段寄存器,由编码器来定义其用法.
SS - 指向包含堆栈的段的点.
虽然可以在段寄存器中存储任何数据,但这绝不是一个好主意.段寄存器有一个非常特殊的用途 - 指向可访问的内存块.
段寄存器与通用寄存器一起工作以访问任何存储器值.例如,如果我们想要访问物理地址12345h(十六进制)的内存,我们可以设置DS = 1230h和SI = 0045h.这样我们可以访问比单个寄存器更多的内存,单个寄存器限制为16位值.CPU通过将段寄存器乘以10h并将通用寄存器添加到其中来计算物理地址(1230h*10h + 45h = 12345h):
由2个寄存器组成的地址称为有效地址.默认情况下,BX,SI和DI寄存器与DS段寄存器配合使用; BP和SP使用SS段寄存器.其他通用寄存器不能形成有效地址.此外,虽然BX可以形成有效地址,但BH和BL不能.
特殊用途寄存器
IP - 指令指针:
Always points to top item on the stack
Offset address relative to SS (but can't be used in 16-bit addressing modes)
Should always points to word (byte at even address)
An empty stack will have SP = FFFEh
Run Code Online (Sandbox Code Playgroud)
IP寄存器始终与CS段寄存器一起工作,它指向当前正在执行的指令.
标志注册
标志寄存器 - 确定处理器的当前状态.它们在数学运算后由CPU自动修改,这允许确定结果的类型,并确定将控制转移到程序的其他部分的条件.通常,您无法直接访问这些寄存器.
Always points to next instruction to be executed
Offset address relative to CS
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
49348 次 |
| 最近记录: |