美文网首页
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

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