我要投搞

标签云

收藏小站

爱尚经典语录、名言、句子、散文、日志、唯美图片

当前位置:2019跑狗图高清彩图 > 指令 >

计算机如何区分指令和数据?

归档日期:08-07       文本归类:指令      文章编辑:爱尚语录

  其实这个很简单的,通过不同的时间段来区分指令和数据,即在取指令阶段(或取指微程序)取出的为指令,在执行指令阶段(或相应微程序)取出的即为数据。如果通过地址来源区分,由PC提供存储单元地址的取出的是指令,由指令地址码部分提供存储单元地址的取出的是操作数。

  指令和数据都是应用上的概念。汇编语言,通过编译器编译,最后送给CPU的都是二进制数,那么CPU在一堆纷繁复杂的二进制,01中如何区分指令和数据呢?

  每台机器的指令,其格式和代码所代表的含义都是硬性规定的,故称之为面向机器的语言,也称为机器语言。二进制,作为一种机器码,计算机可以直接识别,不需要进行任何翻译。

  计算机硬件主要通过不同的时间段来区分指令和数据,即:取指周期(或取指微程序)取出的既为指令,执行周期计算机加载的第一条肯定是指令,然后根据这条指令去取二进制数,如果这条指令要取操作数,那么取出来的就是操作数;如果这条指令要取下一条指令,那么取出来得就是指令。

  虽然指令和数据存放的格式一样,但是访问他们的时机不同。在取指令时期,cpu通过指令流取指令,存放在指令寄存器, 然后解释并执行指令;在执行指令时期,cpu通过数据流取数据, 存放在数据寄存器。 所以指令流取的是指令,数据流取的是数据。

  二、计算机可以从时间和空间两方面来区分指令和数据。在时间上,取指周期从内存中取出的是指令,而执行周期从内存取出或往内存中写入的是数据;在空间上,从内存中取出指令送控制器,而执行周期从内存从取的数据送运算器、往内存写入的数据也是来自于运算器。

  比如:要计算机做1+2=?中,“+”表示要做什么和怎样做,1和2则是做的时候需要的原始数。现在假设某CPU中,“+”用二进制“00000001”来表示,“1、2”分别用“00000001、00000010”来表示。那么,这段程序存入内存中就是这样的:

  从上面可以看出,“+”指令和被加数是完全相同的,当然,这是我故意这样假设的,但是,在实际情况中,这种情况是大量存在的。在正常情况下,CPU只能把XXXX1内存中的00000001作为指令,XXXX2内存中的00000001作为被加数才能得到正确的结果。那么CPU如何才能做到不把第二个00000001也当成“+”呢?

  1.人们把内存的某个地址规定为起始地址(又称为复位地址),也就是说,当计算机开机或者被强行复位(也就是机箱上那个重启动按钮按下的的时候),CPU立即跳转到这个地址中,并且把它里面的代码作为指令来执行,同时根据这个指令的长度和格式判断下一条指令在什么地方。

  对于X86系列CPU(也就是现在人们常用的什么奔XX、赛XX系列),它的复位地址是FFFF0,如果表示成逻辑地址则是:FFFF:0000。对DEBUG比较熟悉的朋友或者会在一些高级语言中嵌入汇编语言的朋友可以这样做一个试验:

  用DEBUG执行一条指令(这是一条无条件跳转指令):jmp FFFF:0000,或者在高级语言中嵌入这条汇编指令,执行后,你就会发现,计算机重新启动了。其实,用程序控制计算机重启的最本质的操作就是这样的。

  2.给各种指令规定了相应的长度和格式。比如:某数+某数这条指令就规定:这条指令的长度是3个字节,其中第一个字节表示“+”,后面两个字节表示被加数和加数。于是,当CPU到达这个指令后,就自动把第一个代码作为指令,后面两个代码作为数据,依次类推,第4个代码就必然是指令.....

  计算机指令就是指挥机器工作的指示和命令,程序就是一系列按一定顺序排列的指令,执行程序的过程就是计算机的工作过程。

  控制器靠指令指挥机器工作,人们用指令表达自己的意图,并交给控制器执行。一台计算机所能执行的各种不同指令的全体,叫做计算机的指令系统,每一台计算机均有自己的特定的指令系统,其指令内容和格式有所不同。

  通常一条指令包括两方面的内容:操作码和操作数,操作码决定要完成的操作,操作数指参加运算的数据及其所在的单元地址。

  在计算机中,操作要求和操作数地址都由二进制数码表示,分别称作操作码和地址码,整条指令以二进制编码的形式存放在存储器中。

  指令的种类和多少与具体的机型有关,在此不详述,请参见具体的机器资料手册。

  指令的顺序执行,将完成程序的执行,因而有必要了解指令的执行过程。首先是取指令和分析指令。按照程序规定的次序,从内存储器取出当前执行的指令,并送到控制器的指令寄存器中,对所取的指令进行分析,即根据指令中的操作码确定计算机应进行什么操作。

  程序流程图其次是执行指令。根据指令分析结果,由控制器发出完成操作所需的一系列控制电位,以便指挥计算机有关部件完成这一操作,同时,还为取下一条指令作好准备。

  计算机数据表示是指处理机硬件能够辨认并进行存储、传送和处理的数据表示方法。

  处理机硬件能够辨认并进行存储、传送和处理的数据表示方法。一台处理机的数据表示方法是处理机设计人员规定的,尽管数据的来源和形式有所不同,但输入这台处理机并经它处理的全部数据都必须符合规定。软件设计人员还可以依此来规定各数据类型(如虚数、向量等)和组织复杂的数据结构(如记录、文卷等)。

  早期的机械式和继电式计算机都用具有10个稳定状态的基本元件来表示十进制数据位0,1,2,…,9。一个数据的各个数据位是按10的指数顺序排列的,如386.45=3×10+8×10+6×10+4×10+5×10。

  但是,要求处理机的基本电子元件具有10个稳定状态比较困难,十进制运算器逻辑线路也比较复杂。多数元件具有两个稳定状态,二进制运算也比较简单,而且能节省设备,二进制与处理机逻辑运算能协调一致,且便于用逻辑代数简化处理机逻辑设计。因此,二进制遂得到广泛应用。

  定点表示法 在二进制中,0和 1分别由处理机电子元件的两个稳定状态表示, 2为数的基底。二进制字符数据表示法用二进制位序列组成供输入、处理和输出用的编码称为字符数据。字符数据包括各种运算符号、关系符号、货币符号、字母和数字等。

  中国通用的是1980年颁布的国家标准 GB1988-80《信息处理交换用的七位编码字符集》(见表),它以7个二进制位表示 128个字符。它包括32个控制字符集、94个图形字符集、一个间隔字符和一个抹掉字符。

  展开全部计算机加载的第一条肯定是指令,然后根据这条指令去取二进制数,如果这条指令要取操作数,那么取出来的就是操作数;如果这条指令要取下一条指令,那么取出来得就是指令。

本文链接:http://ok-panic.net/zhiling/486.html