用安卓虚拟机运行程序时程序停止_读书笔记之- 运行helloworld程序时到底发生了什么?...

初始时:

shell程序执行它的指令,等待输入一个命令,当在键盘上输入”./hello”后,shell程序将字符逐一读入寄存器,再把它存入内存中。

从键盘上读取hello命令步骤如图:

a33b6aeb90ce3da60529a9406cddeb35.png

当我们在键盘上敲入回车键时:

shell程序就知道我们结束了命令输入。然后shell执行一系列指令来加载可执行的helloworld文件,这些指令将helloworld目标文件中的代码和数据从磁盘复制到主存;
数据包括最终会被输出到”helloworld!n”。

利用直接存储器存取(DMA)技术,数据可以不通过CPU直接从磁盘到达主存。

从磁盘加载可执行文件到主存的步骤如图:

dc5d345242aaabb5a1ef28e6d548cb1a.png

——————————————————————

一旦目标文件helloworld中的代码和数据被加载到主存,CPU便开始执行hello程序中的main程序中的机器语言指令。
这些指令将”helloworld!n”字符串中的字节从主存复制到寄存器文件,在从寄存器文件复制到显示设备,最终显示在显示在屏幕上.

将输出字符串从存储器写到显示器的步骤如图:

040ff78e7bfbd938b4af668e8ecd6ba5.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值