cx称作什么寄存器


cx称作什么寄存器

文章插图
cx称作计数寄存器 。汇编语言中的AX、BX、CX、DX作为CPU内部的通用寄存器中的数据寄存器助记符,用来存放参与运算的数据或是存储运算的结果 。
AX:寄存器称为累加器,常用于存放算术、逻辑运算中的操作数或结果 。另外,所有的I/O指令都要使用累加器与外设接口传递数据 。
BX:寄存器称为基址寄存器,常用来存放访问内存时的地址 。
CX:寄存器称为计数寄存器,在循环、串操作指令中用作计数器 。
【cx称作什么寄存器】DX:寄存器称为数据寄存器,在寄存器间接寻址中的I/O指令中存放I/O端口的地址 。
AX、BX、CX、DX每个寄存器可以将高、低8位分别作为独立的8位寄存器使用 。其中的高8位用AH、BH、CH、DH表示,低8位用AL、BL、CL、DL表示 。
AX = AH + AL
BX = BH + BL
CX = CH + CL
DX = DX + DL
计数寄存器
可以看到程序计数器是基于每一个线程的,每一个线程都有一个程序计数器 。
JVM中的程序计数寄存器(Program Counter Register)中,Register的命名源于CPU的寄存器,寄存器存储指令相关的现场信息 。CPU只有把数据装载到寄存器才能够运行 。这里,并非是广义上所指的物理寄存器,或许将其翻译为PC计数器(或指令计数器)会更加贴切(也称为程序钩子),并且也不容易引起一些不必要的误会 。JVM中的PC寄存器是对物理PC寄存器的一种抽象模拟 。
PC寄存器用来存储指向下一条指令的地址,也即将要执行的指令代码 。由执行引擎读取下一条指令 。
栈帧对应这一个方法,各个栈帧之间会有互相调用,栈帧里的指令有行号的表识,pc寄存器就相当于这个行号的表识,执行引擎会拿到标识(地址)去执行下一条指令,完成之后会再去pc寄存器拿地址继续执行,总而言之,pc寄存器只是存储指令的地址 。

    推荐阅读