怎么将程序写入硬件,计算机的工作原理是怎样的

怎么将程序写入硬件,计算机的工作原理是怎样的,第1张

这个问题很专业~~

我上学4年现在只会编写软件,这个问题我也问过我的大学教授,他跟我一路神侃~然后~我比糊涂的还糊涂~

计算机运行原理

个人电脑的主要结构: 显示器 主机板 CPU (微处理器) 主要储存器 (记忆体) 扩充卡 电源供应器 光碟机 次要储存器 (硬碟) 键盘 滑鼠

尽管计算机技术自20世纪40年代第一台电子通用计算机诞生以来以来有了令人目眩的飞速发展,但是今天计算机仍然基本上采用的是存储程序结构,即冯·诺伊曼结构。这个结构实现了实用化的通用计算机。

存储程序结构间将一台计算机描述成四个主要部分:算术逻辑单元(ALU),控制电路,存储器,以及输入输出设备(I/O)。这些部件通过一组一组的排线连接(特别地,当一组线被用于多种不同意图的数据传输时又被称为总线),并且由一个时钟来驱动(当然某些其他事件也可能驱动控制电路)。

概念上讲,一部计算机的存储器可以被视为一组“细胞”单元。每一个“细胞”都有一个编号,称为地址;又都可以存储一个较小的定长信息。这个信息既可以是指令(告诉计算机去做什么),也可以是数据(指令的处理对象)。原则上,每一个“细胞”都是可以存储二者之任一的。

算术逻辑单元(ALU)可以被称作计算机的大脑。它可以做两类运算:第一类是算术运算,比如对两个数字进行加减法。算术运算部件的功能在ALU中是十分有限的,事实上,一些ALU根本不支持电路级的乘法和除法运算(由是使用者只能通过编程进行乘除法运算)。第二类是比较运算,即给定两个数,ALU对其进行比较以确定哪个更大一些。

输入输出系统是计算机从外部世界接收信息和向外部世界反馈运算结果的手段。对于一台标准的个人电脑,输入设备主要有键盘和鼠标,输出设备则是显示器,打印机以及其他许多后文将要讨论的可连接到计算机上的I/O设备。

控制系统将以上计算机各部分联系起来。它的功能是从存储器和输入输出设备中读取指令和数据,对指令进行解码,并向ALU交付符合指令要求的正确输入,告知ALU对这些数据做那些运算并将结果数据返回到何处。控制系统中一个重要组件就是一个用来保持跟踪当前指令所在地址的计数器。通常这个计数器随着指令的执行而累加,但有时如果指令指示进行跳转则不依此规则。

20世纪80年代以来ALU和控制单元(二者合成中央处理器,CPU)逐渐被整合到一块集成电路上,称作微处理器。这类计算机的工作模式十分直观:在一个时钟周期内,计算机先从存储器中获取指令和数据,然后执行指令,存储数据,再获取下一条指令。这个过程被反复执行,直至得到一个终止指令。

由控制器解释,运算器执行的指令集是一个精心定义的数目十分有限的简单指令集合。一般可以分为四类:1)、数据移动(如:将一个数值从存储单元A拷贝到存储单元B)2)、数逻运算(如:计算存储单元A与存储单元B之和,结果返回存储单元C)3)、条件验证(如:如果存储单元A内数值为100,则下一条指令地址为存储单元F)4)、指令序列改易(如:下一条指令地址为存储单元F)

指令如同数据一样在计算机内部是以二进制来表示的。比如说,10110000就是一条Intel x86系列微处理器的拷贝指令代码。某一个计算机所支持的指令集就是该计算机的机器语言。因此,使用流行的机器语言将会使既成软件在一台新计算机上运行得更加容易。所以对于那些机型商业化软件开发的人来说,它们通常只会关注一种或几种不同的机器语言。

更加强大的小型计算机,大型计算机和服务器可能会与上述计算机有所不同。它们通常将任务分担给不同的CPU来执行。今天,微处理器和多核个人电脑也在朝这个方向发展。

超级计算机通常有着与基本的存储程序计算机显著区别的体系结构。它们通常由者数以千计的CPU,不过这些设计似乎只对特定任务有用。在各种计算机中,还有一些微控制器采用令程序和数据分离的哈佛架构(Harvard architecture)。

通常情况下对芯片的编程是利用一些防真软件来做的。譬如威福防真器。我们通常是先把程序在防真器的环境下调试成功后通过这个防真器把程序语言(如C语言、汇编语言)转换为机器语言(就是零和一的代码)。再把机器语言烧些进芯片。

算法,可以简单理解为解决问题的一种思想;而程序就是用来实现这种思想的方法。

程序的语言,代码方式无非就那么几种,而一个问题的解决方法确实千变万化的。

要把所谓的算法写入程序,那就得先把算法中的流程转换成计算机所能认识的程序代码。

完整过程如下:

C:\>DEBUG

-E200 (输入E200回车)

0AF5:0200 740 651 612 643 204 6F5 666 0D7

0AF5:0208 0A8 259 76A 61B 72C 69D 61E 62F

(依次键入1,2 。。。CDEF,字符间用空格键,键入F后回车)

-

-A (输入汇编命令A后回车)

0AF5:0100 MOV SI, 0200 (依次键入各行命令,以回车结束,注意数据后不要加H)

0AF5:0103 MOV DI, 0230

0AF5:0106 MOV CX, 10

0AF5:0109 REP MOVSB

0AF5:010B (这里直接回车)

-

-

-D200 L10 (显示刚键入的内容)

0AF5:0200 00 01 02 03 04 05 06 07-08 09 0A 0B 0C 0D 0E 0F

-D230 L10 (显示待复制处在复制前的内容,该处现在的具体内容不一定)

0AF5:0230 61 64 73 20 61 20 70 72-6F 67 72 61 6D 20 69 6E ads a program in

-

-G10B (执行键入的汇编程序,默认值从100开始,到10B结束)

AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0210 DI=0240

DS=0AF5 ES=0AF5 SS=0AF5 CS=0AF5 IP=010B NV UP EI PL NZ NA PO NC

0AF5:010B 7320 JNB 012D

-

-D230 L10 (显示待复制处在复制后的内容,该处现在的内容应该与键入的内容一致)

0AF5:0230 00 01 02 03 04 05 06 07-08 09 0A 0B 0C 0D 0E 0F

-

-Q (返回DOS提示符)

另外,以上出现的0AF5是段地址,不用管它,你运行的环境可能不是该值。

呵呵,该知道怎么做了吧!

以上就是关于怎么将程序写入硬件,计算机的工作原理是怎样的全部的内容,包括:怎么将程序写入硬件,计算机的工作原理是怎样的、芯片是怎么写入程序的呢、如何把算法写入程序中等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9279340.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-26
下一篇 2023-04-26

发表评论

登录后才能评论

评论列表(0条)

保存