寄存器

原创 2017年01月03日 16:37:56

寄存器分类:

CPU由运算器、控制器、寄存器和时钟构成。

在CPU中:

  • 运算器进行信息处理
  • 寄存器存放指令和数据
  • 控制器控制各种器件工作
  • 时钟决定CPU的处理速度

寄存器是CPU中程序员可以用指令进行读写的部件,可以通过改变寄存器中的内容来控制CPU。

不同的CPU,寄存器的格式和结构都是不同的。8086CPU有14个寄存器,这些寄存器是:AX,BX,CX,DX,SI,DI,SP,BP,IP,CS,SS,DS,ES,PSW.

寄存器可以根据存放数据的特点分为通用寄存器和专用寄存器(指令寄存器、标志寄存器等)

如AX,BX,CX,DX这四个寄存器通常存放一般性的数据,被称为通用寄存器。

  • AX-累计器(Accumulator),使用频率最高
  • BX-基址寄存器(Base Register),存放存储器地址
  • CX-计数器(Count Register),计数器
  • DX-数据寄存器(Data Register),存放数据

字在寄存器中的存储:

上节我们讲了cpu的内存单元,也讲了字节与位的关系。

8086cpu为了兼容之前的8位机,将16个位分为8八位和低八位。因此8086cpu的AX,BX,CX,DX都可以分为两个独立的8位寄存器使用。

AH代表16进制中的高八位,AL则代表低八位。

用16进制数可以直观的看出这个16位的数是由哪些二进制数构成的,比如2000写成4E20,则AL中的数据是20,换成二进制数表示是00100000;AH中的数据是4E,换成二进制表示是01001110.那么完整的表示是0100111000100000.顺序是高八位在前第八位在后,无论是二进制还是16进制都应该遵循这个原则。

简单的汇编指令:

下面介绍几条简单的汇编指令:了解即可

汇编指令
汇编指令 控制cpu执行的操作 高级语言解释
mov ax,18 将18送入寄存器AX中 AX=18
add ax,8 将AX寄存器的值加8 AX+=8
mov ax,bx 将寄存器BX中的值送入AX AX=BX
add ax,bx 将寄存器AX,BX中的值相加,结果存入AX AX+=BX

vim之寄存器的使用和配置

喜欢使用vim的朋友都知道, vim拥有强大的寄存器功能 ,可以满足一些功能上的需求, 比如复制文本到系统剪贴板上,以便外部使用, 或者从外部复制文本粘帖到vim文本中。...
  • ballack_linux
  • ballack_linux
  • 2016年11月08日 09:40
  • 1128

IA32寄存器与x86-64寄存器的区别

IA32寄存器 一个IA32CPU包含一组8个存储32位值的通用寄存器,这些寄存器用来存储整数数据和指针: 31-0 15-0 15-8 7-0 使用惯例 ...
  • qq_15514565
  • qq_15514565
  • 2017年02月27日 01:17
  • 1275

Windows 64编程中寄存器的使用

下面是摘自 MSDN 的文章,在 Win64 下的 registers 用途 Register Status Use RAX Volatile ...
  • a1875566250
  • a1875566250
  • 2013年09月12日 22:27
  • 6666

再看K60——寄存器配置

今天心血来潮,重新去看了K60的寄存器和数据手册,配上超核的视频,去网上搜查相关资料,每次看视频的感觉都不同,至少现在看来寄存器的配置的基本步骤都差不多,虽然现在也只是会配简单的寄存器。 现在把今天所...
  • Feng_8071
  • Feng_8071
  • 2016年10月04日 23:02
  • 483

以太网的phy寄存器分析

一直唠叨说要系统地学习Linux网络驱动,一直没去做。今天终于下决定写篇关于PHY寄存器的文章了,写了这个,再写篇关于PHY驱动的文章,就算给自己交差了。后面的事再议。这篇文章讲述PHY寄存,大部分属...
  • subfate
  • subfate
  • 2015年04月11日 17:38
  • 5441

[RK3288][Android6.0] 通用访问系统寄存器

Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92由于系统寄存器映射到内存的固定地址,如下:比如我现在要访问TSADC想看看ADC的值是多少,dt...
  • kris_fei
  • kris_fei
  • 2017年09月12日 17:45
  • 412

各种寄存器作用(汇总)

32位CPU所含有的寄存器有:   4个数据寄存器(EAX、EBX、ECX和EDX) 2个变址和指针寄存器(ESI和EDI) 2个指针寄存器(ESP和EBP) 6个段寄存器(ES、CS、SS、...
  • THISISPAN
  • THISISPAN
  • 2012年06月22日 18:31
  • 4727

寄存器名称和地址的映射分析

首先要清楚的一点,所有操作,最终目的都是操作寄存器一,对比51单片机和STM32对寄存器的操作1)51单片机: sfr P0=0x80; //关键字sfr 声明地址和名称的映射 ...
  • ABAP_Brave
  • ABAP_Brave
  • 2016年08月23日 09:44
  • 2086

函数调用过程中的寄存器状态分析

首先写一个简单的C语言小程序test.c: #include int function(int a, int b, int c) { int var1 = a; return ...
  • justinshane
  • justinshane
  • 2017年01月06日 23:35
  • 1029

解读CPU寄存器

32位CPU所含有的寄存器有: 4个数据寄存器(EAX、EBX、ECX和EDX) 2个变址和指针寄存器(ESI和EDI) 2个指针寄存器(ESP和EBP) 6个段寄存器(ES、CS、SS、DS、FS...
  • HK_5788
  • HK_5788
  • 2015年03月18日 22:26
  • 4373
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:寄存器
举报原因:
原因补充:

(最多只允许输入30个字)