作者回复: 赞,认真学习的典范
作者回复: 推荐书籍
作者回复: 后面很多地方要用到寄存器,所以必须先讲一下
作者回复: 赞
作者回复: 1.会有指令起始地址,后面讲ELF格式的时候会说这个事情。当执行一个程序的时候,会加载ELF格式,加载的时候会设置指令指针
2.多线程共享同一个进程内存空间,所以代码段的起始地址还是一样的。只不过每个线程执行不同的func,指令指针会不一样,在内核中,线程也是有独立的task_struct
3.寄存器是有限的,如果把程序编译成汇编看的话,再大的数据,也是要转换为对寄存器的操作。当然寄存器里面可以包含对内存的访问地址,这样内存里面的数据就很多了
作者回复: 就是乘以十六
作者回复: 没有人写程序用高位的
作者回复: 哈哈
作者回复: 补充完再看,可以看看计算机组成与系统结构
作者回复: 这本书值得推荐
作者回复: 是的,所以兼容比优雅要重要
作者回复: 有的
作者回复: 好久没用vs了,只要能够帮助理解,就是好工具
作者回复: 呜哇,没想到能和go联系在一起,看来底层原理比较容易互通
作者回复: 可以理解为,CPU和操作系统的一起干活的模式,在实模式下,两者约定好了这些寄存器是干这个的,总线是这样的,内存访问是这样的,在保护模式下,两者约定好了这些寄存器是干那个的,总线是那样的,内存访问是那样的。这样操作系统给CPU下命令,CPU按照约定好的,就能得到操作系统预料的结果,操作系统也按照约定好的,将一些数据结构,例如段描述符表放在一个约定好的地方,这样CPU就能找到。两者就可以配合工作了。