初始时:
shell程序执行它的指令,等待输入一个命令,当在键盘上输入”./hello”后,shell程序将字符逐一读入寄存器,再把它存入内存中。
从键盘上读取hello命令步骤如图:
![a33b6aeb90ce3da60529a9406cddeb35.png](https://i-blog.csdnimg.cn/blog_migrate/ce7c87fdefd364c093fbd27ee5169be8.jpeg)
当我们在键盘上敲入回车键时:
shell程序就知道我们结束了命令输入。然后shell执行一系列指令来加载可执行的helloworld文件,这些指令将helloworld目标文件中的代码和数据从磁盘复制到主存;
数据包括最终会被输出到”helloworld!n”。
利用直接存储器存取(DMA)技术,数据可以不通过CPU直接从磁盘到达主存。
从磁盘加载可执行文件到主存的步骤如图:
![dc5d345242aaabb5a1ef28e6d548cb1a.png](https://i-blog.csdnimg.cn/blog_migrate/89f75708d14161de3a30409614cf2841.jpeg)
——————————————————————
一旦目标文件helloworld中的代码和数据被加载到主存,CPU便开始执行hello程序中的main程序中的机器语言指令。
这些指令将”helloworld!n”字符串中的字节从主存复制到寄存器文件,在从寄存器文件复制到显示设备,最终显示在显示在屏幕上.
将输出字符串从存储器写到显示器的步骤如图:
![040ff78e7bfbd938b4af668e8ecd6ba5.png](https://i-blog.csdnimg.cn/blog_migrate/0b426c4db05f6bf1f097cdfb61fa296e.jpeg)