计算机系统概述 第3讲:程序开发和执行过程简介

课件来源

南京大学袁春风老师

内容简介

最早的程序开发过程

直接用机器语言编写,穿孔表示0,未打孔表示1。

太原始了吧!书写阅读困难,不够灵活。

用汇编语言开发程序

用助记符,表示操作码;用标号表示位置。

可读性比直接用机器语言强一些,但是机器却不认识这些指令,因此需要用汇编程序转换。

指令能描述的功能

Ld【load,装载】,将存储单元内容装到寄存器中。

St【Store,存储】,将寄存器内容存入存储单元。

将某个寄存器中的内容和另一个寄存器的内容,在ALU中进行计算。

ALU,算术逻辑单元负责执行算术运算如加法减法等)和逻辑运算(如与、或、非等)。

进一步认识机器级语言

指令:操作码+操作数/操作数的地址码。

操作码:指令的操作码OP表示该指令应进行什么性质的操作,如进行加、减、乘、除、取数、存数等等。

用高级语言开发程序

面向算法,而不是面向动作描述,比机器级语言(机器语言或者汇编语言)描述能力强。

面向对象;面向过程;

结构:顺序+选择+循环

最终,需要将高级语言转换为机器语言,因为硬件无法理解高级语言,只能理解机器语言

转换方式:编译(执行一次,到处运行)+解释(边解释,边运行,速度慢)

一个典型程序的转换处理过程

.c文件,预处理为.i文件,编译为汇编语言程序,再汇编为.o文件【二进制】,再与其他.o文件链接为可执行目标程序。

Hello程序的数据流动过程

键盘上的一个个字符,送入到寄存器中,然后通过store指令,传送到主存;

遇到回车后,shell命令行程序就会调用操作系统里的一些基本系统调用,系统调用会把控制权传递给hello程序,让机器执行hello程序,操作系统会把hello程序装载到主存储器中,并且把程序中的数据,也装载到主存储器。

然后把输出信息送入寄存器中,然后送到显示器上进行显示。

不同层次语言之间的等价转换

汇编指令和机器指令是一一对应的。

第1个字段是:操作码字段。

第2个字段是:地址码。

第3个字段是:寄存器。

第4个字段是:偏移码。

开发和运行程序需要什么支撑?

答案:系统软件。

包含:操作系统+语言处理系统。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

深耕AI

谢谢鼓励~我将继续创作优质博文

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值