搜索

...状态寄存器、指令寄存器、地址寄存器、其他寄存器等组成。

发布网友 发布时间:2024-10-23 20:58

我来回答

3个回答

热心网友 时间:2024-11-08 07:59

先分析下这些寄存器干嘛用的。

指令指针寄存器: (这个最简单最好理解最重要)虽然在机器语言上没有数据类型,但是我还是要这样告诉你,它存放的是一个无符号整数,(专业点儿的说法叫做指令偏移地址)。
这个整数代表着 下一条 ,注意是下一条 指令在主存中相对于本进程的指令段段首地址的偏移量。
例如,如果你的指令段段首地址是 0x0000 (这个地址也存放在一个专用寄存器中,段寄存器,先不用了解了)指令寄存器中的数字是 0x0034 ,那么意味着你要执行的下一条指令要到 0x0000 + 0x0034 = 0x0034的位置去取,取指令的这些操作是由控制器硬件完成的,程序员不可干预,所以,你不用了解了。
指令寄存器:这个东西程序员一般也不管(因为对程序员透明),上一步中确定了下一条指令的位置,然后,指令就被自动的取来,放到这个寄存器中,由硬件来完成指令的解析运行。(这个寄存器就是当前正在运行的指令正存放的位置)。
通用寄存器:一般是在汇编语言中以一个字母+ X命名的寄存器。不同的处理器有不同个数的通用寄存器。
它的作用就是程序员安排的了,一般都是用作缓存数据。例如常用的累加寄存器AX ,处理器进行累加运算时将中间结果放在这里,下一次运算时从这里取数作为其中一个加数,并在运算结束后将结果 放回。
程序员也可以指定把什么数据放在这些寄存器中以用作运算。
指令基本格式 为 : 操作码 + 操作数
其中的操作数可能为 一个,多个,或者零个。
一个操作数的指令就是单目指令,两个的就是二目指令了。
例如 INC 指令 格式 INC AX 即把AX中的值加一后放回到AX中。 这是个单目指令
例如ADD指令 格式 ADD AX,BX 即把AX寄存器中的值与BX寄存器中的值相加后放回AX寄存器。这是个双目指令。
唉,敲键盘真辛苦。。。。

热心网友 时间:2024-11-08 08:04

二目运算就是A+B这样的有两个输入的运算,自然就有第一地址 第二地址两个地址码
CPU架构中没有把指令从内存放到寄存器里的步骤(不过很可能放到缓存里),指令寄存器就是存放待取指令的地址,既你说的指令指针寄存器,MIPS架构名为PC寄存器。

热心网友 时间:2024-11-08 08:01

寄存器本身没有区别,取这么多名的原因是用途不一样。
打个比方,有的地用来耕作,就叫耕地。有的地用来植树造林,就叫林地。有的地用来跑汽车,就叫马路。 归根到底还是“地”

比如指令指针寄存器,这个寄存器用来保存指令的位置。
比如 MOV 指令,这个指令可以移动数据。比如把内存地址 1234 位置处的数据移动到 EAX 寄存器,我就可以这么写代码: MOV EAX, [1234]
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
Top