寄存器於內存的區別?兩個都是存儲器有什么區別?
爲什麽要有內存又要有寄存器?
希望答案簡潔,明瞭。謝謝!
寄存器於內存的區別?兩個都是存儲器有什么區別?
爲什麽要有內存又要有寄存器?
希望答案簡潔,明瞭。謝謝!
这个问题我初学汇编的时候也困扰过,不过现在明白了。寄存器集成在cpu中,是cpu能够直接访问的存储设备吧。其容量其小,但是访问速度是最快的。当cpu执行指令的时候,它根据代码寄存器和IP往内存中找到相关的机器码来执行指令,代码寄存器CS存放的是代码段的基址,ip存放的是偏移,它指向当前执行的代码的偏移地址。当执行一条指令后,它会加一。
寄存器由于容量小,不可能存放什么变量什么的,它一般就存放一些地址作为索引,cpu执行指令的时候根据它的地址去内存找相关内容来完成当前的执行。包括变量的内容什么的。至于通用寄存器ax之类,通常就用来暂存中间的结果,比如从内存取出的变量,先用一寄存器保存,然后执行指令,这样寄存器的内容会发生变化(指令是直接作用于寄存器对象的),然后把它的内容可以传给内存保存下来。ax,bx,cx,dx在一般情况下可以通用,只是要注意它们的特殊用法,比如在loop指令的时候默认的就是操作cx,还有bx是唯一能够当指针寄存器来用的通用寄存器,ax一般用于dos功能调用等等。其他场合你可以随便用哪个啊。
要真正的理解就要认真看书哦。呵呵