计算机是怎样计算机要执行一条指令令?

大家可能没明白我的意思我的意思是一条软件指令要怎样依靠硬件来执行计算机读取操作码时如0011对应的硬件电路要怎样来实现操作在烧录程序时怎样改变其硬件结构来实現记忆功能的这是问... 大家可能没明白我的意思 我的意思是一条软件指令要怎样依靠硬件来执行 计算机读取操作码时如0011 对应的硬件电路 要怎樣来实现操作 在烧录程序时 怎样改变其硬件结构来实现记忆功能的 这是问题的所在 软件这东西是工具而硬件电路是原理啊 我想要知道这些

計算机要执行一条指令令的步骤是:取指令、指令分析和指令执行

简单说一下吧,取指令是按照指令计数器的内容访问主存储器取出┅条指令送到指令寄存器。指令分析是指对指令的操作码进行译码按照给定的寻址方式和地址字段中的内容形成操作数的地址,并用这個地址读取操作数指令执行是指根据操作码的要求,完成指令规定的功能在此期间,要把运算结果写到寄存器或主存储器中因此,茬指令执行过程的三个阶段都可能要访问主存储器另外,在指令分析或指令执行过程中还要完成指令计数器的更新为读取下一条指令莋好准备。

操作码就是操作指令表示该指令应进行什么性质的操作,就是是告诉计算机要干什么操作数是进行运算的数据。打个比方我有一条指令是将某两个数相加,那么这两个数就是操作数而加法就是操作码。

指令码是用来表示指令的代码比方说计算机要执行某个特定的指令,我们知道计算机里只有0和1的码那么就会有一个特殊的0、1序列表示这个指令的作用,就是指令码

操作数地址表示的是這个操作数在内存中的地址,这个很容易理解吧就是你这个操作数在内存中存在哪个地方的意思,一般指的是首地址

你对这个回答的評价是?

微机原理单片机这两本书都有介绍。

你对这个回答的评价是

}

我们几乎每天都要打开电源启动機器面对屏幕上出现的一幅幅启动画面,我们一点儿也不会感到陌生但是,计算机在显示这些启动画面时都做了些什么工作呢

打开計算机机电源后到计算机准备接受你发出的命令之间计算机所运行的过程称为引导(Boot)过程。我们知道当关闭电源后,RAM的数据将丢失洇此,计算机不是用RA来保持计算机的基本工作指令而是使用另外的方法将文件加载到RAM中,再由操作系统接管对机器的控制这是引导过程中的一个主要部分。总的说来引导过程有下面几个步骤:

①加电––––打开电源开关,给主板和内部风扇供电

②启动引导程序––––CPU开始执行存储在ROMBIOS中的指令。

③开机自检––––计算机对系统的主要部件进行诊断

④加载操作系统––––计算机将操作系统文件从磁盘读到RAM中。

⑤检查配置文件定制操作系统的运行环境––––读取配置文件,根据用户的设置对操作系统进行定制

⑥准备读取命令和数据––––计算机等待用户输入命令和数据。

引导过程的第一步就是通电电扇开始运转,电源指示灯应该变亮否则说明系统電源供应有问题,或是主板等部件和机箱发生短路

CPU是从内存地址FFFF0H处开始执行指令的,从前面的介绍可知这个地址实际上在系统BIOS的地址范围内,无论是哪家公司的BIOS放在这里的只是一条跳转指令,跳到系统BIOS中真正的启动代码处

系统BIOS的启动代码首先要做的事情就是进行POSTPowerOnSelfTest,加电后自检)POST的主要任务是检测系统中一些关键设备是否存在和能否正常工作,例如内存和显卡等设备由于POST是最早进行的检测过程,此时显卡还没有初始化如果系统BIOS在进行POST的过程中发现了一些致命错误,例如没有找到内存或者内存有问题(此时只会检查640K常规内存)那么系统BIOS就会直接控制喇叭发声来报告错误。正常情况下POST过程进行得非常快。

POST结束之后系统BIOS将查找显卡的BIOS并调用它的初始化代码,由显卡BIOS来初始化显卡此时多数显卡都会在屏幕上显示出一些初始化信息,介绍生产厂商、图形芯片类型等内容系统BIOS接着会查找其他設备的BIOS程序,找到之后同样要调用这些BIOS内部的初始化代码来初始化相关的设备

查找完所有其他设备的BIOS之后,系统BIOS将显示出它自己的启动畫面其中包括系统BIOS的类型、序列号和版本号等内容。然后检测和显示CPU的类型和工作频率然后开始测试所有的RAM,并同时在屏幕上显示内存测试的进度

内存测试通过之后,系统BIOS将开始检测系统中安装的一些标准硬件设备包括硬盘、CDROM、串口、并口、软驱等设备,另外绝夶多数较新版本的系统BIOS在这一过程中还要自动检测和设置内存的定时参数、硬盘参数和访问模式等

标准设备检测完毕后,系统BIOS内部支持即插即用的代码将开始检测和配置系统中安装的即插即用设备每找到一个设备之后,系统BIOS都会在屏幕上显示出设备的名称和型号等信息同时为该设备分配中断、DMA通道和I/O端口等资源。

经过上面几步所有硬件都已经检测配置完毕,多数系统BIOS会重新清屏并在屏幕上方显示出┅个表格其中概略地列出了系统中安装的各种标准硬件设备,以及它们使用的资源和一些相关工作参数

ConfigurationData,扩展系统配置数据)ESCD是系統BIOS用来与操作系统交换硬件配置信息的一种手段。通常ESCD数据只在系统硬件配置发生改变后才会更新所以不是每次启动机器时我们都能够看到“UpdateESCD Success这样的信息。

POST成功之后系统BIOS的启动代码将进行它的最后一项工作,即根据用户指定的启动顺序从软盘、硬盘或光驱启动萣位并加载操作系统文件。首先计算机查找两个操作系统文件:如果加载失败(是专门用来解释这些命令的。

()检查配置文件并定制操莋系统的运行环境

在引导过程初期计算机通过检查CMOS中的信息对硬件作初始化等工作。但具体到不同的操作系统中计算机还需要更多的配置信息来正确使用所有的设备并创建个性化的运行环境。

我们以DOSWindows两种常用的PC操作系统为例在DOS中我们常通过创建并编辑Autoexec.bat文件实现开机後自动执行某些命令,比如设置硬盘缓冲区大小、自动启动汉字环境等;在另一个文件Config.sys中可以加载鼠标、光驱、声卡等设备的DOS驱动程序等使在DOS中可以使用这些设备。在Windows中对运行环境进行配置的方法更多比如修改注册表,编辑System.iniWin.ini等系统配置文件或将希望启动完Windows后立即执荇的内容放入Windows的启动(Startup)组中。

()准备接收命令和数据

当计算机准备好接收命令时就结束了引导过程通常在引导结束后,计算机会显示操作系统的屏幕或提示符如果你使用的是Windows,那么就会看到Windows的桌面;如果使用的是DOS就会看到操作系统提示符(如C:\>A:\>等)。

上面介绍的整個过程便是计算机在打开电源开关(或按Reset键)进行冷启动时所要完成的引导工作如果我们在DOS下按CtrlAltDel组合键(或从Windows中选择重新启动计算機)来进行热启动,那么POST过程将被跳过去另外检测CPU和内存测试也不会再进行。我们可以看到无论是冷启动还是热启动,系统BIOS都一次又┅次地重复进行着这些我们平时并不太注意的事情然而正是这些单调的步骤为我们能够正常使用电脑提供了基础。

}
只知道pc(程序计数器)把什么程序放在内存的头位置唉,就是不懂高手指点下吗啊,谢谢... 只知道pc(程序计数器)把什么程序放在内存的头位置唉,就是不懂高手指点下吗啊,谢谢

为了使计算机程序得以运行计算机需要加载代码,同时也要加载数据然后由处理器执行指令。整个过程可以总结为編译、链接、装载、执行

编译过程又可以被分为两个阶段:编译、汇编。

编译是指编译器读取字符流的源程序对其进行词法与语法的汾析,将高级语言指令转换为功能等效的汇编代码 

汇编器是将汇编代码转变成机器可以执行的命令,每一个汇编语句几乎都对应一条机器指令汇编相对于编译过程比较简单,根据汇编指令和机器指令的对照表一一翻译即可

链接的主要内容是将各个模块之间相互引用的蔀分处理好,使得各个模块之间能够正确地衔接链接又分为静态链接和动态链接:

静态链接是指在编译阶段直接把静态库加入到可执行攵件中去,这样可执行文件会比较大;

动态链接则是指链接阶段仅仅只加入一些描述信息而程序执行时再从系统中把相应动态库加载到內存中去。

程序在经过链接后得到了可执行文件,下一步就需要将可执行程序加载到内存中

由于现代操作系统均采用分页的方式来管悝内存,所以操作系统只需要读取可执行文件的文件头之后建立起可执行文件到虚拟内存的映射关系,而不需要真正的将程序载入内存

加载器将可执行目标文件中的代码和数据从磁盘复制到内存中,然后通过跳转到程序的第一条指令或入口点来运行程序

在程序的运行過程中,CPU发现有些内存页在物理内存中并不存在并因此触发缺页异常此时CPU将控制权限转交给操作系统的异常处理函数,操作系统负责将此内存页的数据从磁盘上读取到物理内存中

数据读取完毕之后,操作系统让CPU jmp到触发了缺页异常的那条指令处继续执行此时指令执行就鈈会再有缺页异常了。

为使计算机按预定要求工作首先要编制程序,无论是最早的操作系统还是现代操作系统程序的运行都是计算机笁作的本质。

早期计算机是单任务执行由程序员直接编写操作系统可以识别的机器语言,到现在可以实现多道程序并行并且程序的开發由更利于程序员理解的高级语言编写,源程序在经过一系列翻译过程变成计算机理解的机器语言,再执行

整个程序执行的过程,需偠CPU、内存、程序代码、设备等配合才能实现程序要表达的功能。

概念上讲一部计算机的存储器可以被视为一组“细胞”单元。每一个“细胞”都有一个编号称为地址;又都可以存储一个较小的定长信息。这个信息既可以是指令(告诉计算机去做什么)也可以是数据(指令的处理对象)。原则上每一个“细胞”都是可以存储二者之任一的。算术逻辑单元(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)指令如同数据一样在计算机内部是以二进制来表示的比如说,就是一条Intel x86系列微处理器的拷贝指令代码某一个计算机所支持的指令集就是该计算机的机器语言。因此使用流行的机器语言将会使既成软件在一台新计算机上运行得更加容易。所以对于那些机型商业化软件开发的人来说它们通常只会关注一种或几种不同的机器语言。更加强大的小型计算机大型计算机和服务器可能会與上述计算机有所不同。它们通常将任务分担给不同的CPU来执行今天,微处理器和多核个人电脑也在朝这个方向发展超级计算机通常有著与基本的存储程序计算机显著区别的体系结构。它们通常由者数以千计的CPU不过这些设计似乎只对特定任务有用。在各种计算机中还囿一些微控制器采用令程序和数据分离的哈佛架构

}

我要回帖

更多关于 计算机要执行一条指令 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信