精华内容
下载资源
问答
  • 通用寄存器

    千次阅读 2018-11-23 12:39:31
    引言 要想真正的了解计算机,首先要了解的便是CPU,...8/16/32位通用寄存器 计算机中最经典的指令就是移动指令,如:mov ecx,eax。这条指令的意思就是将eax寄存器的值移动到ecx寄存器中。 在32位操作系统中包含...

    引言

    要想真正的了解计算机,首先要了解的便是CPU,CPU是计算机的核心部件,因为计算机的所有指令都是由CPU处理的,而CPU的核心部件之一就是寄存器。所以了解寄存器和寄存器是如何工作的才能真正明白计算机的工作原理。

    8/16/32位通用寄存器

    计算机中最经典的指令就是移动指令,如:mov ecx,eax。这条指令的意思就是将eax寄存器的值移动到ecx寄存器中。

    在32位操作系统中包含如下8个通用寄存器:eax,ecx,edx,ebx,esp,ebp,esi,edi。

    mov指令可以任意移动这8个寄存器,在mov ecx,eax中,后面的是源,后面的是目标,中间是逗号,不区分大小写。寄存器之间可以相互的移动。

    如果计算机只有移动指令的话,那么什么事也干不了了。

    mov是操作码,两个寄存器是操作数,操作码除了mov之外还有很多,你可以替换:加(ADD)、减(SUB)、与(AND)、或(OR)、异或(XOR)、非(NOT)。

    比如: add eax,ecx

    当然了,操作码不仅仅只有这几个,还有很多很多,只要搞清楚操作数是任意两个寄存器,当然可以是同一个寄存器。

    比如:or esi,esi指令的意思是将esi “或” esi并将结果赋给esi。操作数除了寄存器之外,还可以是一个立即数(imm),只要保证32即可。

    历史原因

    由于历史原因,早期的计算机科学家在设计时,最早是运行在8位的操作系统中,为了保证其兼容性,所以8个寄存器是分段设计的。

    比如算盘,我们可以只用一半,或者四分之一。

    eax可以分成4个部分:eax共0~31(32位),其中0~7位叫作AL,8~15位叫作AH。整个0~15位又称为AX。

    AL:low表示低位,AH:high表示高位。ecx,edx,ebx寄存器也是一样的,如图2-1所示:

    图2-1:EAX寄存器

     

    以上的四个寄存都可以分成三段。

    ESP,EBP,ESI,EDI,这四个寄存器只分成两段,比如:ESP整体0~31位称为ESP,0~15位称为SP。

    通过以下,我们可以看出,32位的寄存器有8个,分别是:EAX,ECX,EDX,EBX,ESP,EBP,ESI,EDI,每个寄存器都有一个编号,分别是:0号,1号,2号,3号......如表2-2所示:

    寄存器编号(二进制)编号(十进制)
    32位16位8位  
    EAXAXAL00000
    ECXCXCL00011
    EDXDXDL00102
    EBXBXBL00113
    ESPSPAH01004
    EBPBPCH01015
    ESISIDH01106
    EDIDIBH01117

    32 位寄存器有自己的编号,16 位寄存器也有属于自己的独立的编号。当然,他们是重叠的,当改变了 32 位的寄存器,相应的 16 位寄存器也会跟着改变。


    同样,也有 8 位的寄存器,第 0 号 AL,第 1 号,CL,DL,BL,AH,CH,DH,BH。顺序不能乱。当然还有两个寄存器:EIP 和 EFLAGS(又称为 EFL),8 号和 9 号寄存器,EIP 有 16 位,叫做 IP。EFL 的 16 位称为 FL。这两个寄存器使用相对较少。

    Q/A

    Q:在使用DTDebug进行调试时,发现EIP的值不断在发生变化,我们不但要有命令去操作这些寄存器,还需要区别当前用的是哪一条命令,下一次再调用哪一条命令?

    A:CPU具有判断指令长度和预处理指令的功能,每一条指令都有字节长度,EIP的计算方法是:下一条指令=当前指令地址+当前指令字节长度。

    Q:为什么通用寄存的指令顺序是EAX,ECX,EDX,EBX......而不是EAX,EBX,ECX,EDX... ...,按顺序不是更容易记住吗?

    A:其实从记忆的角度来看,确实按字母的顺序更方便于我们记忆,但是Intel的技术员不这么认为,他们就是这么定义寄存器的的顺序的。了解寄存的顺序和编号,对汇编指令和硬编码尤为重要。

    总结

    通用寄存器即CPU常用的寄存器。Intel手册给出了通用寄存器的功能:通用目的寄存器(General-Purpose Register)主要实现逻辑和算术运算、地址计算和内存指针。

    通用寄存器结构图如下:

    图212:通用寄存器结构

     

    为什么上图看上去比较奇怪,有的寄存器被分成一块一块?其实都是历史遗留问题,在早期的技术还没有现在成熟时,8 个通用寄存器宽度是 8 位(这里指的是二进制的 8 位):AL,AH,CL,CH,DL,DH,BL,BH。后来 cpu 技术逐渐发展,由 8 位发展成 16 位,于
    是寄存器由 8 位演变成 16 位:AX,CX,DX,BX,SP,BP,SI,DI。但是为了兼容前面的 8 位技术,将之前的 8 个 8 位寄存器封装到 AX,CX,DX,BX 寄存器中。技术发展的脚步是不会停歇的,之后将16位寄存都扩充了一倍,于是32位寄存器又相继出现了,当然这里只截止32位,64位和128位寄存器留给大家思考。

    32位通用目的寄存器的指定用途如下:

    • EAX:累加器(Accumulator)
    • ECX:计数器(Counter)
    • EDX:I/O指针
    • EBX:DS段的数据指针
    • ESP:堆栈(Stack)指针
    • EBP:SS段的数据指针
    • ESI:字符串操作的源(Source)指针:SS段的数据指针
    • EDI:字符串操作的目标(Destination)指针:ES段的数据指针。

       以上只是让大家对寄存器的缩写的含义了解一下,毕竟使用一样的东西,不明白其中的道理,实在太不高明,而且这东西是老外发明的,按中式逻辑很难猜测出来。

    汇编就是”寄存器与寄存器“或者”寄存器与内存“之间来回移动数据。

     

    展开全文
  • 设计要求层次设计。底层的设计实体有 3 个:16 位寄存器,具有复位功能和 允许写功能;一个 2-4 译码器,对应寄存器写操作;一个 4 选 1 多路开关,负责 选择寄存器的读出。顶层设计构成一个完整的通用寄存器
  • CPU通用寄存器

    2019-12-02 16:54:01
    转载,供参考 引言 要想真正的了解计算机,首先要了解的便是CPU,CPU...8/16/32位通用寄存器 计算机中最经典的指令就是移动指令,如:mov ecx,eax。这条指令的意思就是将eax寄存器的值移动到ecx寄存器中。 在32...

    转载,供参考

     

    引言
    要想真正的了解计算机,首先要了解的便是CPU,CPU是计算机的核心部件,因为计算机的所有指令都是由CPU处理的,而CPU的核心部件之一就是寄存器。所以了解寄存器和寄存器是如何工作的才能真正明白计算机的工作原理。

    8/16/32位通用寄存器
    计算机中最经典的指令就是移动指令,如:mov ecx,eax。这条指令的意思就是将eax寄存器的值移动到ecx寄存器中。

    在32位操作系统中包含如下8个通用寄存器:eax,ecx,edx,ebx,esp,ebp,esi,edi。

    mov指令可以任意移动这8个寄存器,在mov ecx,eax中,后面的是源,后面的是目标,中间是逗号,不区分大小写。寄存器之间可以相互的移动。

    如果计算机只有移动指令的话,那么什么事也干不了了。

    mov是操作码,两个寄存器是操作数,操作码除了mov之外还有很多,你可以替换:加(ADD)、减(SUB)、与(AND)、或(OR)、异或(XOR)、非(NOT)。

    比如: add eax,ecx

    当然了,操作码不仅仅只有这几个,还有很多很多,只要搞清楚操作数是任意两个寄存器,当然可以是同一个寄存器。

    比如:or esi,esi指令的意思是将esi “或” esi并将结果赋给esi。操作数除了寄存器之外,还可以是一个立即数(imm),只要保证32即可。

    历史原因
    由于历史原因,早期的计算机科学家在设计时,最早是运行在8位的操作系统中,为了保证其兼容性,所以8个寄存器是分段设计的。

    比如算盘,我们可以只用一半,或者四分之一。

    eax可以分成4个部分:eax共0~31(32位),其中0~7位叫作AL,8~15位叫作AH。整个0~15位又称为AX。

    AL:low表示低位,AH:high表示高位。ecx,edx,ebx寄存器也是一样的,如图2-1所示:


    图2-1:EAX寄存器
     

    以上的四个寄存都可以分成三段。

    ESP,EBP,ESI,EDI,这四个寄存器只分成两段,比如:ESP整体0~31位称为ESP,0~15位称为SP。

    通过以下,我们可以看出,32位的寄存器有8个,分别是:EAX,ECX,EDX,EBX,ESP,EBP,ESI,EDI,每个寄存器都有一个编号,分别是:0号,1号,2号,3号......如表2-2所示:

    寄存器    编号(二进制)    编号(十进制)
    32位    16位    8位          
    EAX    AX    AL    0000    0
    ECX    CX    CL    0001    1
    EDX    DX    DL    0010    2
    EBX    BX    BL    0011    3
    ESP    SP    AH    0100    4
    EBP    BP    CH    0101    5
    ESI    SI    DH    0110    6
    EDI    DI    BH    0111    7
    32 位寄存器有自己的编号,16 位寄存器也有属于自己的独立的编号。当然,他们是重叠的,当改变了 32 位的寄存器,相应的 16 位寄存器也会跟着改变。


    同样,也有 8 位的寄存器,第 0 号 AL,第 1 号,CL,DL,BL,AH,CH,DH,BH。顺序不能乱。当然还有两个寄存器:EIP 和 EFLAGS(又称为 EFL),8 号和 9 号寄存器,EIP 有 16 位,叫做 IP。EFL 的 16 位称为 FL。这两个寄存器使用相对较少。

    Q/A
    Q:在使用DTDebug进行调试时,发现EIP的值不断在发生变化,我们不但要有命令去操作这些寄存器,还需要区别当前用的是哪一条命令,下一次再调用哪一条命令?

    A:CPU具有判断指令长度和预处理指令的功能,每一条指令都有字节长度,EIP的计算方法是:下一条指令=当前指令地址+当前指令字节长度。

    Q:为什么通用寄存的指令顺序是EAX,ECX,EDX,EBX......而不是EAX,EBX,ECX,EDX... ...,按顺序不是更容易记住吗?

    A:其实从记忆的角度来看,确实按字母的顺序更方便于我们记忆,但是Intel的技术员不这么认为,他们就是这么定义寄存器的的顺序的。了解寄存的顺序和编号,对汇编指令和硬编码尤为重要。

    总结
    通用寄存器即CPU常用的寄存器。Intel手册给出了通用寄存器的功能:通用目的寄存器(General-Purpose Register)主要实现逻辑和算术运算、地址计算和内存指针。

    通用寄存器结构图如下:


    图212:通用寄存器结构
     

    为什么上图看上去比较奇怪,有的寄存器被分成一块一块?其实都是历史遗留问题,在早期的技术还没有现在成熟时,8 个通用寄存器宽度是 8 位(这里指的是二进制的 8 位):AL,AH,CL,CH,DL,DH,BL,BH。后来 cpu 技术逐渐发展,由 8 位发展成 16 位,于
    是寄存器由 8 位演变成 16 位:AX,CX,DX,BX,SP,BP,SI,DI。但是为了兼容前面的 8 位技术,将之前的 8 个 8 位寄存器封装到 AX,CX,DX,BX 寄存器中。技术发展的脚步是不会停歇的,之后将16位寄存都扩充了一倍,于是32位寄存器又相继出现了,当然这里只截止32位,64位和128位寄存器留给大家思考。

    32位通用目的寄存器的指定用途如下:

    EAX:累加器(Accumulator)
    ECX:计数器(Counter)
    EDX:I/O指针
    EBX:DS段的数据指针
    ESP:堆栈(Stack)指针
    EBP:SS段的数据指针
    ESI:字符串操作的源(Source)指针:SS段的数据指针
    EDI:字符串操作的目标(Destination)指针:ES段的数据指针。
       以上只是让大家对寄存器的缩写的含义了解一下,毕竟使用一样的东西,不明白其中的道理,实在太不高明,而且这东西是老外发明的,按中式逻辑很难猜测出来。

    汇编就是”寄存器与寄存器“或者”寄存器与内存“之间来回移动数据。

    展开全文
  • MIPS 通用寄存器

    千次阅读 2016-03-22 15:26:22
    MIPS有32个通用寄存器($0-$31),各寄存器的功能及汇编程序中使用约定如下: 下表描述32个通用寄存器的别名和用途 REGISTER NAME USAGE $0 $zero 常量0(constant value 0) $1 $at 保留给...
    MIPS有32个通用寄存器($0-$31),各寄存器的功能及汇编程序中使用约定如下:

    下表描述32个通用寄存器的别名和用途

    REGISTER

    NAME

    USAGE

    $0

    $zero

    常量0(constant value 0)

    $1

    $at

    保留给汇编器(Reserved for assembler)

    $2-$3

    $v0-$v1

    函数调用返回值(values for results and expression evaluation)

    $4-$7

    $a0-$a3

    函数调用参数(arguments)

    $8-$15

    $t0-$t7

    暂时的(或随便用的)

    $16-$23

    $s0-$s7

    保存的(或如果用,需要SAVE/RESTORE)(saved)

    $24-$25

    $t8-$t9

    暂时的(或随便用的)

    $28

    $gp

    全局指针(Global Pointer)

    $29

    $sp

    堆栈指针(Stack Pointer)

    $30

    $fp

    帧指针(Frame Pointer)

    $31

    $ra

    返回地址(return address)



    下面给以详细说明
    $0:即$zero ,该寄存器总是返回零,为0这个有用常数提供了一个简洁的编码形式。
               move $t0,$t1
           实际为
               add $t0,$0,$t1
           使用伪指令可以简化任务,汇编程序提供了比硬件更丰富的指令集。
    $1:即$at,该寄存器为汇编保留 ,由于I型指令的立即数字段只有16位,在加载大常数时,编译器或汇编程序需要
           把大常数拆开,然后重新组合到寄存器里。比如加载一个32位立即数需要 lui(装入高位立即数)和addi两条
           指令。像MIPS程序拆散和重装大常数由汇编程序来完成,汇编程序必需一个临时寄存器来重组大常数,这
           也是为汇编 保留$at的原因之一。
       (设置专用的寄存器是为了防止和程序员编程所用的寄存器进行交叉产生不必要的麻烦。
    
        具体来说,比如他用$s1来干这个,那么如果你自己写的程序用到了$s1,这样汇编器在执行某些指令的时候把中间变量存到了$s1里,就会破坏你的数据,导致程序出错。
        而如果汇编器用$at,你用$s1,二者不想干扰,就不会有这种隐患。
    
        其实$at不仅是数据重组,它有很多作用,整体来讲就是伪指令的中间变量,例子:
        指令
        li $t1,40
        是一条伪指令,在汇编器中会转换成
        addi $t1,$zero,40
        但是
        li $t1,-4000000
        因为数字太大,需要拆开,则会被转换成
        lui $at,0xffc2
        ori $t1,$at,0xf700
        这之中,$at就作为一个中间变量来用的)
    $2..$3:($v0-$v1)用于子程序的非浮点结果或返回值, 对于子程序如何传递参数及如何返回,MIPS范围有一套约
           定,堆栈中少数几个位置处的内容装入CPU寄存器,其相应内存位置保留未做定义,当这两个寄存器不够存
           放返回值时,编译器通过内存来完成。
    $4..$7:($a0-$a3)用来传递前四个参数给子程序,不够的用堆栈 a0-a3和v0-v1以及ra一起 来支持子程序/过程
           调用,分别用以传递参数,返回结果和存放返回地址。当需要使用更多的寄存器时,就需要堆栈(stack)
           了,MIPS编译器总是为参数在堆栈中留有空间以防有参数需要存储。
    $8..$15:($t0-$t7)临时寄存器, 子程序可以使用它们而不用保留。
    $16..$23:($s0-$s7)保存寄存器,在过程调用过程中需要保 留(被调用者保存和恢复,还包括 $fp和$ra ),MIPS
           提供了临时寄存器和保存寄存器,这样就减少了寄存器溢出(spilling,即将不常用的变量放到存储器的过程),
           编译器在编译一个叶(leaf)过程(不调用其它过程的过程)的时候,总是在临时寄存器分配完了才使用需要
           保存的寄存器。
    $24..$25:($t8-$t9)同($t0-$t7)
    $26..$27:($k0,$k1)为操作系统/异常处理保留,至少要预留一个 。 异常(或中断)是一种不需要在程序中显示
           调用的过程。MIPS有个叫异常程序计数器(exception program counter,EPC)的寄存器,属于CP0寄存器,

           用于保存造成异常的那条指令的地址。查看控制寄存器的唯一方法是把它复制到通用寄存器里,指令mfc0
           (move from system control)可以将EPC中的地址复制到某个通用寄存器中
    通过跳转语句(jr),程序可以
           回到造成异常的那条指令处继续执行
    MIPS程序员都必须保留两个寄存器$k0和$k1,供操作系统使用。

           发生异常时,这两个寄存器的值不会被恢复,编译器也不使用k0和k1, 异常处理函数可以将返回地址放到这
           两个中的任何一个,然后使用jr跳转到造成异常的指令处继续执行

    $28:($gp) 为了简化静态数据的访问,MIPS软件保留了一个寄存器:全局指针gp(global pointer,$gp),全局指针
           只想静态数据区中的运行时决定的地址,在存取位于gp值上下32KB范围内的数据时,只需要一条以gp为基
           指针的指令即可。在编译时,数据须在以gp为基指针的64KB范围内。
    $29:($sp)MIPS硬件并不直接支持堆栈 ,你可以把它用于别的目的,但为了使用别人的程序或让别人使用你的程
           序, 还是要遵守这个约定的,但这和硬件没有关系。
    $ 30:($fp)GNU MIPS C编译器使用了帧指针(frame pointer), 而SGI的C编译器没有使用, 而把这个寄存器当作保
           存寄存器使用($s8),
    这节省了调用和返回开销,但增加了代码生成的复杂性。
    $31:($ra)存放返回地址, MIPS有个jal(jump-and-link,跳转并 链接)指令,在跳转到某个地址时,把下一条指令的
           地址放到$ra中。用于支持子程序,例如调用程序把参数放到$a0~$a3,然后jal X跳到X过程,被调过程完成后
           把结果放到$v0,$v1,然后使用jr $ra返回。

    除了32个通用寄存器以及别名外,还有8个专用寄存器,分别是:

    sr ( 全称Status ,CP0 Reg12) Processor status and control; interrupt control; and shadow set control

    lo ( 全称WatchLo , CP0 Reg18) Low-order watchpoint address

    hi ( 全称WatchHi, CP0 Reg19) High-order watchpoint address

    bad ( 全称BadVAddr, CP0 Reg8) Reports the address for the most recent address-related exception

    cause (CP0 Reg13) Cause of last exception

    pc 很明显这个是程序计数寄存器,奇怪的是在32个通用寄存器以及CP0的32个寄存器中都没有找到他,最接近的一个是CP0Reg14 EPC (Program counter at last exception.)

    fsr 浮点相关寄存器,具体用途不明

    fir浮点相关寄存器,具体用途不明


    展开全文
  • 通用寄存器

    2012-10-31 15:04:17
    通用寄存器组,完成对输入字符的存储并输出
  • 通用寄存器是()。 A.可存放指令的寄存器 B.可存放程序状态字的寄存器 C.本身具有计数逻辑与移位逻辑的寄存器 D.可编程指定多种功能的寄存器 通用寄存器可用于传送和暂存数据,也可参与算术逻辑运算,...

    通用寄存器是()。

     

    A.可存放指令的寄存器

     

    B.可存放程序状态字的寄存器

     

    C.本身具有计数逻辑与移位逻辑的寄存器

     

    D.可编程指定多种功能的寄存器

    通用寄存器可用于传送和暂存数据,也可参与算术逻辑运算,并保存运算结果。除此之外,它们还各自具有一些特殊功能。

    通用寄存器的长度取决于机器字长,汇编语言程序员必须熟悉每个寄存器的一般用途和特殊用途,只有这样,才能在程序中做到正确、合理地使用它们。


    16位cpu通用寄存器共有 8 个:AX,BX,CX,DX,BP,SP,SI,DI.
    八个寄存器都可以作为普通的数据寄存器使用。
    但有的有特殊的用途:AX为累加器,CX为计数器,BX,BP为基址寄存器,SI,DI为变址寄存器,BP还可以是基指针,SP为堆栈指针。
    32位cpu通用寄存器共有 8 个: EAX,EBX,ECX,EDX,EBP,ESP,ESI,EDI功能和上面差不多

    展开全文
  • 1 通用寄存器 ARMv8提供了31个通用寄存器 R0~R30; 在AArch32架构,通用寄存器w0~w30是32bit宽度; 在AArch64架构,通用寄存器x0~x30是64bit宽度; 2 特殊寄存器 SP (stack pointer register) 指向当前栈的指针;...
  • 通用寄存器 段寄存器

    千次阅读 2012-03-03 22:57:39
    通用寄存器8 个通用寄存器是 8086 寄存器的超集,它们的名称和用途分别为:EAX 一般用作累加器EBX 一般用作基址寄存器( Base )ECX 一般用来计数( Count )EDX 一般用来存放数据( Data )EBP 一般用作堆栈指针( ...
  • 在64位模式下,有16个64位宽通用寄存器(32位模式是8个通用寄存器),默认的操作数宽度是32位(注:与32位模式相同)。但是,通用寄存器保存32位或64位的操作数。如果指定了32位操作数,则可以使用EAX/EBX/ECX/EDX/...
  • 寄存器(通用寄存器

    千次阅读 2017-01-05 14:27:24
    因为学习使用的是王爽的《汇编语言(第3版)》,因此也只能提到8086CPO的寄存器。...8086的通用寄存器有AX、BX、CX、DX4个,16位,可存放两个字节,可分为高8位和低8位。例如: 这里需要注意的是
  • 计算机组成原理 实验报告 学 号 姓 名 提交日期 成 绩 东北大学秦皇岛分校 实验三 通用寄存器存储器实验 1实验目的与要求 实验目的 熟悉通用寄存器的数据通路 掌握通用寄存器的构成和运用 熟悉和了解存储器组织与...
  • 实验二 通用寄存器实验

    千次阅读 2021-01-04 21:51:08
    实验二 通用寄存器实验 简介:各种计算机的CPU可能有所不同,但是在CPU中至少有六类寄存器:指令寄存器(IR)、程序计数器(PC)、数据地址寄存器(AR)、数据缓冲寄存器(DR)、通用寄存器(R0~R3)、状态字寄存器...
  • 通用寄存器和段寄存器

    千次阅读 2016-01-18 08:45:25
    8086/8088通用寄存器的通用性表现在:  这些寄存器除了各自规定的专门用途外,他们均可以用于传送和暂存数据,可以保存算术逻辑运算中的操作数和运算结果;  8个通用寄存器的专门用途如下:  AX 字乘法,字除...
  • 通用寄存器文件是用于存放数据的寄存器。一般用于中间数据或结果数据存放。所有的通用寄存器构成了通用寄存器文件
  • CPU中的通用寄存器

    2021-01-12 00:01:58
    CPU内部有若干个通用寄存器,它们除了具有与自己名字含义相对应的专用功能外,还具有通用功能,比如传递数据,暂存数据,参与计算等。因此为CPU中的寄存器取名为通用寄存器。16位CPU有14个通用寄存器,32位CPU有16个...
  • 一、通用寄存器 寄存器 编号(二进制) 编号(十进制) 64位 32位 16位 8位 累加寄存器 RAX EAX AX AL 000 0 计数寄存器 RCX ECX CX ...
  • MIPS-通用寄存器详细资料
  • 2.1通用寄存器

    千次阅读 2017-04-04 19:33:59
    AX、BX、CX、DX这4个寄存器通常用来存放一般性的数据,被称为通用寄存器。    以AX为例,寄存器的逻辑结构如下图:   16位寄存器的逻辑结构    一个16位寄存器可以存储一个16位的数据,数据在寄存器中的情况如...
  • 通用寄存器: 寄存器和变量差不多,目的都是用于保存一些即将操作的数据 EAX(accumulator) 寄存器:扩展累加寄存器(一般在乘/除中会被主动调用),也可以用于其他用途 ECX(Count) 寄存器:循环计数器,多数...
  • 寄存器总结之通用寄存器

    千次阅读 2020-09-15 16:34:02
    一个典型CPU是由运算器、控制器、寄存器等器件组成,这些器件靠内部总线相连。 区别:内部总线实现CPU内部各个器件之间的联系 外部总线实现CPU与主板上其它器件的联系。(地址,数据,控制) 8086CPU有14个寄存器...
  • 汇编—通用寄存器

    2020-04-27 16:12:20
    1.通用寄存器 1)寄存器 存储数据: CPU > 内存 > 硬盘 32位CPU: 8 16 32 64位CPU:8 16 32 64 2)32位通用寄存器: EAX ESP ECX EBP EDX ESI EBX EDI ​ 计算机最常见的指令就是移动指令:mov ecx eax ...
  • 1 状态寄存器传送至通用寄存器类指令 功能:将状态寄存器的内容传送至通用寄存器。 格式: MRS{条件码>}Rd,CPSR}SPSR 其中: Rd 目标寄存器,Rd不允许R15。 R=0 将CPSR中的内容传送目的寄存器。 R=1 将...
  • 通用寄存器和IP和标识寄存器

    千次阅读 2015-02-01 11:25:15
    32位CPU中,通用寄存器一般分为三类:16位通用寄存器,32位扩展通用寄存器,8位的半寄存器。 8个16位通用寄存器:ax,bx,cx,dx,bp,si,di,sp(8086、8088、80286) 8个32位通用寄存器:eax,ebx,ecx,edx,...
  • IA-32架构提供了8个32位通用寄存器用于临时存储指令的操作数或指针;它们分别是EAX/EBX/ECX/EDX/EBP/ESP/ESI/EDI,可用于如下用途: 逻辑与算术操作的操作数 地址计算的操作数 存储器指针 尽管这几个寄存器都可以...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 98,620
精华内容 39,448
关键字:

属于通用寄存器的是