美文网首页
CSAPP translation page 8

CSAPP translation page 8

作者: 木子9268 | 来源:发表于2019-07-15 10:30 被阅读0次

•加载:从主存复制一个字节或一个字到寄存器(register)里, 覆盖寄存器以前的内容.

•储存:从寄存器复制一个字节或者一个字到主存中的某个位置(location), 以覆盖这个位置原来的内容.

•操作:把两个寄存器的内容复制到ALU,对这两个字执行算术运算(arithmetic operation),并且保存结果到寄存器中, 以覆盖原来寄存器当中的内容.

•跳跃:从指令本身(itself)提取(extract)一个字并且复制这个字到程序计数器(PC),覆盖程序计数器原来的值(value).

我们说处理器(processor)看上去(appears)是它指令集架构(instruction set architecture )的简单实现(implementation ), 但是事实上,现代(moder)处理器使用更复杂的机制(mechanisms)加快(speed up)程序的执行(execution).

因此,我们将处理器的指令集架构(instruction set architecture)和处理器的微体系结构(microarchitecture)区分(distinguish )开来: 指令集架构描述的是每条机器代码的执行效果.当我们在第3章学习机器代码,我们将考虑机器指令集架构(machine`s instruction set architecture)提供的抽象性(abstraction). 在第4章会详细的说处理器实际上是如何实现(implemented )的

1.4.2 hello程序的运行

前面简单介绍了硬件(hardware)系统的组成和操作, 我们开始慢慢明白我们的示例程序运行发生了什么. 我们必须删掉(omit)很多细节,稍后会做补充, 但是现在我们要联系这张大图.

初始时(Initially ),shell程序执行(executing)他的指令. 等待我们输入(type)一个命令. 我们在键盘输入字符 “./hello”,  shell程序将每一个字符读入寄存器然后存储在内存里, 如图1.5所示.

当我们在键盘上敲回车键, shell程序知道我们完成了指令(command)的输入(typing). 然后shell执行一系列的指令加载可执行的hello文件,将hello目标文件(object file)中的代码和数据到从磁盘复制到内存. 数据包括最终会被打印出的字符串”hello, word\n”.

使用直接存储器存取(direct memory access)技术, 数据直接(directly)从磁盘(disk)转移到主存,没有通过处理器(processor). 如图1.6所示.

一旦hello目标文件里的代码和数据进入到主存,处理器开始执行hello程序的main程序(main routine)中的机器指令,这些指令把”hello, world\n”字符串的字节从主存复制到寄存器文件,再从寄存器复制到显示设备(display device),最终显示在屏幕上.如图1.7所示.

相关文章

  • CSAPP translation page 8

    •加载:从主存复制一个字节或一个字到寄存器(register)里, 覆盖寄存器以前的内容. •储存:从寄存器复制一...

  • CSAPP translation page 1

    1.1信息就是位(bits)+上下文(context) 我们的hello 程序生命开始就是一个源程序(或者称为一个...

  • CSAPP translation page 6

    总线 在整个系统中运行的是称为总线(buses)的电导管(electrical conduits)集合,它们在组件...

  • CSAPP translation page 3

    这里,GCC编译器驱动程序读取hello.c源文件然后翻译成一个可执行的目标文件hello. 翻译执行的4个阶段在...

  • CSAPP translation page 4

    旁注: GNU项目 GCC是CNU项目开发出来的许多实用工具之一.GNU项目是理查德·马修·斯托曼(Richard...

  • CSAPP translation page 7

    第6章详细的讲关于输入/输出设备像磁盘的工作. 在第10章, 你将要学习怎样使用Unix的输入/输出接口从应用程序...

  • CSAPP translation page 10

    这本书当中的一个重要结论(lessons)之一就是,意识到高速缓存存储器的应用程序员能够利用(exploit)它们...

  • CSAPP translation page 9

    1.5高速缓存非常重要 这个简单的例子有重要的经验,系统花费大量的时间把信息从一个地方传送到另外一个地方. hel...

  • CSAPP translation page 2

    旁注: C编程语言的起源 C语言在1969年到1973年由贝尔实验室由丹尼斯•里奇(Dennis Ritchie)...

  • CSAPP translation page 13

    1.7.1进程 当程序例如hello程序运行在现代系统当中, 操作系统给我们了一个程序只运行在系统里面的错觉(il...

网友评论

      本文标题:CSAPP translation page 8

      本文链接:https://www.haomeiwen.com/subject/tqvbkctx.html