首页 > 编程知识 正文

寄存器形象解释,程序计数器和指令寄存器

时间:2023-05-04 06:51:03 阅读:120443 作者:4068

程序计数器(PC,Program counter )用于保存指令的地址。 为了确保程序(在OS中被理解为进程)连续运行,CPU必须采取某些手段来确定下一个指令的地址。 执行指令时,首先需要根据PC中保存的指令地址,将指令从存储器读取到指令寄存器中。 这个过程叫做“采取命令”。 与此同时,PC内的地址或自动地加1,或者由传送指针给出以下指令的地址。 然后分析该命令并执行该命令。 第一个指令的执行完成,然后,在从PC取出第二个指令的地址这一循环中,执行各指令。

指令寄存器(IR,Instruction Register )保存当前正在执行的指令。 在临时保存从存储器获取的程序指令的寄存器中,保存当前从主存储器读取的执行中的指令。 执行指令时,从存储器读取到数据寄存器(DR,Data Register )中,然后传输到IR。 指令分为操作码和地址码字段,由二进制组成。 要执行说明,必须测试操作代码以识别请求的操作。 指令解码器在做这项工作。 指令寄存器操作码字段的输出是指令解码器的输入。 操作码解码后,可以向操作控制器发出具体操作的特定信号。 通用寄存器(GR,General register )通用寄存器可以用于数据的传输和临时保存,可以参与算术逻辑运算,也可以保存运算结果。 除此之外,它们还分别具有一些特殊的功能。 通用寄存器的长度取决于机器语言的长度,汇编语言程序员必须熟悉各寄存器的一般用途和特殊用途,只有这样才能在程序中正确合理地使用它们。 16位cpu通用寄存器是AX (累加器)累加器寄存器(Accumulator Register )、BX (基地址寄存器)、CX (计数寄存器)、DX (数据寄存器)这8个寄存器DI )目的地索引寄存器) )的八个寄存器都可以用作常规数据寄存器。 寄存器AX通常称为累加器(Accumulator ); 在累加器中执行的操作可能需要更少的时间。 累加器可用于乘法、除法、输入输出等操作,它们使用频率高;

寄存器BX称为基址寄存器(Base Register ),可以作为存储器指针使用。

寄存器CX称为计数寄存器(Count Register )。 用于在循环和字符串操作时控制循环次数。 在位操作中,移位多个位时,用CL指定移位的位数。

寄存器DX称为数据寄存器(Data Register ),在进行乘法、除法运算时,可以作为默认的操作数参与运算,也可以用于存储I/O的端口地址。

指针寄存器EBP、ESP、(Pointer Register )、指针寄存器主要用于存储栈内存储单元的偏移,用它们实现多个存储操作数的寻址方式,以不同的地址形式存储指针寄存器不能分割为8位寄存器。 作为通用寄存器,也可以存储算术逻辑运算的操作数和运算结果。 寄存器BP是基地址指针寄存器(Base Pointer ); 寄存器SP称为堆栈指针寄存器(堆栈指针)。

索引寄存器ESI、EDI、索引寄存器主要用于存储存储单元段内的偏移,通过使用它们实现多个存储操作数的寻址方式,用于以不同的地址形式访问存储单元索引寄存器不能分割为8位寄存器。 作为通用寄存器,也可以存储算术逻辑运算的操作数和运算结果。

寄存器SI称为源索引寄存器(Source Index );

寄存器DI称为目标寄存器(目标索引)。

16位cpu通用寄存器共有8个: AX、BX、CX、DX、BP、SP、SI、DI。

32位cpu通用寄存器是EAX、EBX、ECX、EDX、EBP、ESP、ESI、EDI这8个

包含在程序字PSW(PSW,Program Status Word )中的状态位为进位标志位(CF )、结果零标志位(ZF )、符号标志位(SF )、溢出标志位(off )

状态寄存器别名为条件代码寄存器(SR, 也称为Status register ),它是计算机系统的核心部件——运算器的一部分,状态寄存器为一类是体现当前指令执行结果的各种状态信息(条件码),有无进位(CF位),有无溢出) 根据机器的不同,PSW称为标志寄存器fr (标志寄存器)。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。