什么是计算机指令?

口才训练 2022-12-31 07:14 编辑:admin 261阅读

一、什么是计算机指令?

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

控制器靠指令指挥机器工作,人们用指令表达自己的意图,并交给控制器执行。

控制器靠指令指挥机器工作,人们用指令表达自己的意图,并交给控制器执行。

一台计算机所能执行的各种不同指令的全体,叫做计算机的指令系统,每一台计算机均有自己的特定的指令系统,其指令内容和格式有所不同。

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

在计算机中,操作要求和操作数地址都由二进制数码表示,分别称作操作码和地址码,整条指令以二进制编码的形式存放在存储器中。 指令的种类和多少与具体的机型有关,在此不详述,请参见具体的机器资料手册。

二、单片机通常指令表示形式有那些

从分类上来说,有以下几种类别的指令(51为例)

1、数据传送指令

2、算术运算指令

3、逻辑运算指令

4、控制转移指令

5、位操作指令

从寻址方式上分为以下几种:

1、立即数寻址

2、直接寻址

3、寄存器寻址

4、寄存器间接寻址

5、变址寻址

6、位寻址

7、相对寻址

MCS-51单片机指令系统包括111条指令,按功能可以划分为以下5类

数据传送指令(29条)

算术运算指令(24条)

逻辑运算指令(24条)

控制转移指令(17条)

位操作指令(17条)

三、C语言中“语句”和“指令”有什么区别?

区别一:构成不一样

1、C程序的执行部分是由语句组成的。 程序的功能也是由执行语句实现的。

2、指令可以使编译器按不同的条件编译不同的程序部分,因而产生不同的目标代码文件。这对于程序的移植和调试是很有用的,尤其是针对于跨平台程序移植的时候。

区别二:实现功能不一样

1、C程序语言可以实现多种程序结构, 即顺序结构、分支(选择)结构、循环结构。

2、指令可以实现源代码的部分编译功能,可以根据表达式的值或者某个特定的宏来确定编译条件,以决定编译哪些代码,不编译哪些。

扩展资料

C语言表达式语句

表达式语句由表达式加上分号“;”组成。

其一般形式为:表达式;执行表达式语句就是计算表达式的值和执行副作用。

例如: x=y+z;a=520;赋值语句;

y+z;加法运算语句,但计算结果不能保留,无实际意义;

i++; 自增1语句,i值增1。

i++; 是先运算i后再加1。

++i; 是先把i值增1后运算。

包括空语句,函数调用语句在内都属于表达式语句。

C语言条件编译指令

1、#if指令

该指令检测表达式值是否为真。如果表达式的值为真,则编译后面的代码直到出现 #else、#elif 或 #endif 为止,否则不编译。

2、#endif指令

该指令用于终止 #if 指令。

3、#else指令

该指令用于 #if 指令之后,当前面的 #if 指令的条件不为真时,就编译 #else 后面的代码。

4、#elif指令

该指令综合了 #else 和 #if 指令的作用。下面的示例代码演示了 #if、#else、#elif 与 #endif 的组合使用情况。

参考资料来源:百度百科―C语言基础语句

1. 语句(statement):

如果我们浏览C的yacc语法中的statement,有如下内容:

statement

: labeled_statement

| compound_statement

| expression_statement

| selection_statement

| iteration_statement

| jump_statement

;

这里就很清晰地将C的“语句”分成了6类(翻译参考自《C程序设计语言》第二版):

带标号语句(labeled statement)

例如 

LABEL1:

    printf(hello,world!);

复合语句(compound statement,指用花括号{}括起来的语句表(statement list))

表达式语句(expression statement)

例如

i += 1 * 2;

a = 1;

选择语句(selection statement,如if-else,switch-case语句等)

循环语句(iteration statement,如while,for语句等)

跳转语句(jump statement,如goto,break,return等)

通俗一点讲,语句就是定义在函数或方法,且用分号或花括号结尾,是C语言程序最基本的组成部分

2. 指令

其实C中并没有单纯“指令”这一概念,和其相近的是“预编译指令”

如#include,#define,#ifdef等

其作用是在编译之前,由编译器将所包含的头文件通过单纯粘贴的方式合并成单一文件后,再根据条件语句删去一些代码形成最终可编译的代码

综上所述,语句和(预编译)指令有很大差别,其作用和编译先后顺序完全不同

指令是规定计算机完成某种操作的命令。一条指令只能完成有限的功能。单片机汇编指令不是就那111条吗?常用的记住就行了,用C语言也可以啊。

指令有很多分类方式,比如按照指令完成的任务不同可分为五大类:

1、数据传送类;2、算术运算类;3、逻辑运算及移位类;4、控制程序转移类;5、位操作类。

语句理解起来就容易多了,一个分号标志着一个语句结束。语句比较灵活,即使没有执行指令,仅有一个分号也叫一个语句。语句不一定是指令,如for语句、while语句等不一定就是指令,也有可能是空等待延时的。指令都是有一定格式的,不是随便写上就能构成语句的。

以上是我个人理解,不知道到位否?

可以理解为:C语言中的语句都是由一条或者很多条指令构成的。只有一条指令的时候,它也是一条C语言的语句,有很多条的时候,它也是构成这些C语言语句的指令。或者理解为:C语言语句是C语言的标准表达方式,而指令是为了执行相应的操作。

一个函数分为两个部分,即函数头和函数体,函数头就是函数的定义,比如int main(),函数的语句块就是函数体,函数体包含的执行语句就是要执行的动作内容,每一个执行语句都是以“;”结尾,作为语句结束的标志。在C语言中的语句是用来向计算机系统发出操作指令的,一条语句编写完成经过编译后会产生若干条机器指令,实际程序中包含若干条语句。程序包括声明和执行部分,声明部分不能算作语句,比如:“int a;”就不是一条语句,因为不产生机器的操作,只是对变量提前的定义,而执行部分就是由语句组成。