一、系统的硬件系统
(1)主存是一个临时存储设备(内存条),在处理器执行程序时,用来存放程序和程序处理的数据。
二、计算机中程序的表示、运行
1、示例代码
// #include <stdio.h> int main() { printf("hello world!\n"); return 0; } //
2、表示
(1)大部分的现代计算机系统都是用ASCII标准表示文本字符。
3、GCC编译过程
4、运行流程
(1)shell下执行"./hello"后,shell将字符逐一读入寄存器,再把它存放在内存中,如图:
(2)当我们在键盘上敲回车键时,shell程序就知道我们已经结束了命令的输入。然后shell执行一系列指令来加载可执行的hello文件,这些指令将hello目标文件中的代码和数据从磁盘赋值到主存。数据包最终会被输出的字符串“Hello world\n”。利用直接存储器存取(DMA)技术,数据可以不通过处理器而直接从磁盘到达主存。
(3)一旦目标文件hello中的代码和数据被加载到主存,处理器就开始执行hello程序的main程序中的机器语言指令。这些指令将“hello,world\n"字符串中的字节从主存复制到寄存器文件,再从寄存器文件中复制到显示设备,最终显示在屏幕上。
致谢
1、《深入理解计算机系统》[第3版],作者 Randal E.Bryant, David R.O`Hallaron 译者 龚奕利 贺莲