实际上所有的通用寄存器都可以传送、暂存地址和数据,也可以保存运算结果。关键要看作什么用途,在程序中起什么作用。
你问的可能是一些更加细节化的东西,比如作存储器间接寻址的寄存器时,8086只有4个:BX、BP、SI和DI。在这种情况下,这四个寄存器存储的是地址。其它的就不能存地址吗?——也不对,因为它们虽不能用作间接寻址,但同样也可以作为一个中间变量保存地址,只不过在写代码时要走一个弯路。
至于数据的处理,如数据传送指令、算数和运算指令、栈处理指令等等对这些通用寄存器都有效。非通用寄存器,比如:IP、FR以及段寄存器在使用这些指令时会受到严格的限制,比如这些寄存器不能直接赋予一个立即数改变其值。
cpu里有很多寄存器,不同的寄存器有不同的用处。比如idtr寄存器是存放中断例程的入口地址的寄存器,他就干这个,你不能用他干别的。通用寄存器的意思是这个寄存器没有特殊用途,你用它做什么都可以,比如存一个ascii码,存一个数,干什么都行,只要你自己明白你给他赋值的意义就好。宽泛的来说一般程序员可以修改的寄存器多数都属于通用寄存器。