通过命令行执行 ./test
拆分:
0. shell是干什么的?:shell输出提示符,等待输入一个命令行并执行,若该字符串的首个单词不是shell命令,就假设为一个可执行文件的名称,进行加载并执行。
1. 键盘敲入"./test"过程:shell将从键盘敲入的字符串一个个的读入寄存器,再由寄存器放到主存中。(键盘->寄存器->主存)
2. 按Enter键:进行加载执行文件的操作,按Enter表示结束命令行的输入,将hello目标文件中的代码和数据从磁盘复制到主存中。(这里通过DMA可以让数据不经过CPU(包含CPU执行的操作及存储的寄存器占用))。(磁盘->主存)
3. 执行显示:主存中的代码及数据有了后,处理器执行main中的机器指令。将“hello world\n”字符串从主存复制到寄存器文件,再从寄存器文件复制到显示设备(屏幕)上。(主存->寄存器->屏幕)
标签:复制到,CSAPP,shell,主存,寄存器,world,执行,hello From: https://www.cnblogs.com/fourmi/p/17068571.html