汇编学习笔记---第二讲

 接着上面的,补充一下 16进制的一位对应二进制的4位,也就指一次性传输一位16进数需要四根数据线或地址线,因此,16位地址总线一次最多只能传四位16进制的数。如果地址总线是20位,那意味着一次可传5位16进制数。cpu也就需要通过加法器来把两个16进制数计算成表示成20位。这时大家有问题,是什么把段地址和偏移地址传给cpu的呢?

 这也是当初我的困惑。是这样的,由于cpu有许多寄存器,其中有两个寄存器  代码寄存器 cs   指针寄存器 ip  这两个寄存器是用来存放计算机指令所在的内存地址信息的。cpu所执行的任何指令都是通过这两个寄存器来给地址的。由于cpu供电复位时,默认将cs寄存器地址置FFFFH  IP地址置0000H  此时,cs就是段地址 ip就是偏移地址,cpu通过加法器算出物理地址FFFF0H,cpu一通电就主动到这个内存地址读取指令执行。以后所有程序的运行,只需要将cs:ip地址指向该程序的内存地址就可以运行该程序了。那指令里面又指定了另外的内存地址,cpu读取后继续加法算出物理地址,再读取指令执行。。。。   详细后面会讲。

 现在先讲讲寄存器:

     cpu 内部拥有几种类型的寄存器,分别是 数据寄存器(俗称通用寄存器)、段寄存器、指针寄存器、控制寄存器

     数据寄存器分为: AX,BX,CX,DX

     段寄存器:CS 代码段  ds 数据段 SS 椎栈段 ES 附加段

     指针寄存器: SP 椎栈指针 BP基址指针  SI 源地址指针 DI 目的地址指针

     控制寄存器: IP 指令指针  FLAG 标志寄存器

  

posted @ 2010-07-06 11:41  你的影子  阅读(97)  评论(0编辑  收藏  举报