首页 > 其他分享 >CSAPP随笔:hello world到底是怎么运行的?

CSAPP随笔:hello world到底是怎么运行的?

时间:2023-01-27 09:44:06浏览次数:41  
标签:复制到 CSAPP shell 主存 寄存器 world 执行 hello

 

通过命令行执行 ./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

相关文章

  • OpenMP入门教程(一)hello world
    ​​代码在git​​什么是OpenMPOpenMulti-Processing的缩写,是一个应用程序接口(API),可用于显式指导多线程、共享内存的并行性。    在项目程序已经完成好的情况下不需要......
  • Flask框架简介、安装及Hello World程序运行
    一、Flask简介Flask诞生于2010年,是用Python语言基于Werkzeug工具箱编写的轻量级Web开发框架。Flask本身相当于一个内核,其他几乎所有的功能都要用到扩展(邮件扩展Flask-Mail,用......
  • 输出 printf(“Hello world!”)的返回值
    输出描述:​包括两行:第一行为“Helloworld!”第二行为printf(“Helloworld!”)调用后的返回值printf的返回值:打印的字符的大小思路一:#include<stdio.h>intmain(){ ......
  • Hello, Python
    一、前戏1.编程语言简介在生活中,如果你想和外国人进行交流,你就得懂得他们国家的语言(汉语、英语、德语、法语等等),同样的,编程语言就是人与计算机之间沟通的一门语言,它能够......
  • 网页版helloworld
    packagemainimport("fmt""net/http")funcmain(){http.HandleFunc("/",func(whttp.ResponseWriter,r*http.Request){fmt.Fprint(w,......
  • Powerbuilder练级攻略000_窗口helloword
    新建一个目录,如D:\pb_project\tutorial\p001_helloworldFile-New-Workspace-OK,选中D:\pb_project\tutorial\p001_helloworld,打开,文件名输入p001_helloworld,保存......
  • DX12 Hello World系列 基础篇(上)
    前言DX12对于初学者来说难度是偏大的,龙书确实写的不错,但笔者认为还是不够清晰,因此本篇将带你了解DX12最为基本的流程,希望能带你快速入门DX12本篇为上册,下册将讲解渲染管......
  • java学习 javaz-001 Helloworld 第一个demo
    java学习javaz-001Helloworld第一个demo学习目标搞一个java的小demo,最后开发完成,双击bat文件可以执行,发给别人也可以执行。前期准备我的当前环境是win11所以我下的......
  • 第一个C语言程序(从Hello World开始)
    程序员之间有一个约定俗成的习惯,我们在学习任何编程语言时,所写的第一个程序,就是在显示屏上打印一行字符​​“HelloWorld”​​。这个习惯出自哪里呢,首先回顾C语言的历史,就......
  • A.World Final? World Cup! (I)【2023牛客寒假算法基础集训营1】
    A.WorldFinal?WorldCup!(I)原题链接题意AB两队ABABABABAB形式轮流罚球共10次,给出01串代表每次罚球的结果,问是否能在第x球后知道比赛结果,能则输出x,若10轮内没有分出......