道理是一样的,因为整个结构体的基址指向了那一组寄存器的基地址,然后使用偏移量寻找任何一个寄存器。
这可以看做是一种面向对象的编程思想。使用的时候需要实例化这么一个对象。然后设定这个对象的任何一个参数。
这么做,首先 是由于硬件的体系架构较方便这样去实现。假设硬件上面同一组的每个寄存器的安排相距甚远,就不适合这么做了。
当然好处就是,更方便管理,更容易理清架构了。
但是这么做也是有缺点的,编译器如果没有针对此类代码优化,那么明显这么做会浪费更多的内存(如果像您上面那种使用指针的话则会好一些),然后就是欠缺灵活性,比如再某一时刻需要单独修改某一个寄存器的值。
以上为个人理解,仅供参考。
呵呵~
|