0160-16位寄存器
环境
- Time 2022-11-07
- WSL-Ubuntu 22.04
- QEMU 6.2.0
- NASM 2.15.05
前言
说明
参考:《x86汇编语言:从实模式到保护模式》李忠
参考:https://wiki.osdev.org/CPU_Registers_x86
目标
了解 16 位寄存器,了解寻址方式。
通用目的寄存器
前面讲的八个八位的寄存器,其中 H 代表高位,L代表地位,两位组合成为一个十六位的寄存器。
16-bit | 8 high bits | 8 low bits | Description |
---|---|---|---|
AX | AH | AL | Accumulator |
BX | BH | BL | Base |
CX | CH | CL | Counter |
DX | DH | DL | Data |
SI | N/A | SIL | Source |
DI | N/A | DIL | Destination |
SP | N/A | SPL | Stack Pointer |
BP | N/A | BPL | Stack Base Pointer |
先可以只认识 AX, BX, CX 和 DX 四个寄存器,其余的后面来看。
指令指针寄存器
IP(Instruction Pointer)表示指令的指针寄存器,在 8086 上可以查看 PC 寄存器,即程序计数器。
段寄存器
16-bit | Description |
---|---|
CS | Code Segment |
DS | Data Segment |
ES | Extra Segment |
SS | Stack Segment |
FS | General Purpose F Segment |
GS | General Purpose G Segmen |
可以先认识代码段 CS 和数据段 DS。
寻址方式
8086 寻址通过 IP 和 CS 来完成,CS 表示代码段地址,DS 是数据段地址,IP 是偏移地址。
真实的物理地址是段寄存器乘以 16 加上偏移地址,16 位地址最大寻址 64K,加上向左移动 4 位,最大 1M。
大小端
当有十六位寄存器存在的时候,就需要考虑字节的存放情况,intel 架构是将低字节放到低内存地址,高字节放到高内存地址。
这种情况称为小端序,如果是反过来,则称为大端序。
总结
介绍了 CPU 的十六位寄存器,了解了指令执行的时候的寻址方式,了解什么是大小端存储。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
2021-01-31 【Kubernetes】Service 环境变量的问题
2021-01-31 【Kubernetes】访问 Service 环境变量
2021-01-31 【Kubernetes】动态修改数据库连接
2021-01-31 【Kubernetes】Pod 注入环境变量
2021-01-31 【Kubernetes】集群访问本地服务
2021-01-31 【Kubernetes】将本地服务引入集群
2021-01-31 【Kubernetes】访问 Postgresql 数据库