单片机的软件基础:单片机指令系统概述

来自:张凯阳
4年前
已收藏
收藏
阅读数
122
回复数
0

控制单片机硬件有序工作的机器指令是一组二进制数,所有机器指令的集合被称为指令系统,指令系统是计算机软件的基础。 1.指令的形式。 计算机能够识别的指令是二进制代码,用二进制数表示的指令也被称为机器语言。机器语言虽然可直接操纵计算机硬件工作,但识别、记忆十分困难,为此,人们用助记符号来表示计算机的各条指令。用助记符号来表示的计算机指令,就形成了汇编语言。 也就是说,计算机指令有两种形式:一种是二进制代码组成,能被计算机识别的机器语言;另一种是采用助记符号,能被人十分容易地识别和记忆的汇编语言。汇编语言与机器语指令有一一对应的关系,因此,人们用汇编语言来编制程序,通过“汇编”将程序翻译成机器语言后,再将其存入程序存储器。


2.指令的格式。 8051单片机每条指令都对应一个特定的操作功能,其中操作码和操作数用来表示该指令进行的是何种操作。包含内容最多的指令格式如下[标号]操作码[目的操作数],[源操作数];[注释指令中有方括弧部分是可选项,也就是说,一条指令唯一不可缺少的是操作码。 操作码:用于指明机器所要进行的操作,如加、减、取数、输出等,因此,一条指明要进行何种操作的指令必须有操作码。操作码用助记符表示,例如:用MOV表示传送数据,用ADD表示数相加。 操作数:用于指明本条指令所要执行的对象,操作数一般有0~3个,两个操作数之间用“,”分隔。操作数可以是一个数,也可以是一个地址或寄存器的代码。指令中目的操作数在前,源操作数在后。 标号:指令的地址标志符号,由1~8个字母或数字组成。规定第一个必须是字母,可以用下画线符号“_”。指令助记符、伪指令、特殊功能寄存器名及指令系统符号等均不能用作标号。 注释:指令功能的说明,便于程序的阅读和调试。
3.指令的分类。 (1)按指令功能分类。 每条指令都对应一个特定的操作功能,按指令功能的不同,可将指令系统分为数据传送类、算术运算类、逻辑运算类、位操作类和控制转移类5大类。8051单片机指令共有111条指令,其中数据传送类29条、算术运算类24条、逻辑运算类24条、位操作类12条、控制转移类22条。 (2)按指令长度分类。 指令的长度是指它在程序存储器中存储所占用的字节数,按指令长度的不同,可分为单字节指令、双字节指令和三字节指令三种。8051单片机不同长度的指令数如图3-13所示。
(3)按指令时间分类。 指令时间是指执行该指令所需的机器周期(12时钟振荡脉冲),按指令时间的不同,可分为1机器周期指令、2机器周期指令和4机器周期指令三种。8051单片机有1机器周期指令64条,2机器周期指令45条,4机器周期指令2条。
4.指令的符号计算机指令中除了操作码采用相应的助记符外,通常还采用一些规定的符号。8051单片机指令系统中常用的符号有: Rn—当前选中的寄存器区中的8个工作寄存器R0~R7(n=0~7)。 Ri—当前选中的寄存器区中的2个工作寄存器RO、R1(i=0,1)。 direct一8位的片内RAM地址。 #data—包含在指令中的8位常数。 #data16—包含在指令中的16位常数。 addr16—16位目的地址,只限于 LCALL和LJMP中使用。 addr11—11位目的地址,只限于 ACALL和AJMP中使用。 rel—8位带符号的偏移字节,简称偏移量。 DPTR—数据指针,可用作16位地址寄存器。 bit—具有位寻址功能的位地址。 A一累加器。 B—专用寄存器,用于乘法和除法指令中。 C一进位标志或进位位,或布尔处理机中的累加器。 @一间址寄存器或基址寄存器的前缀,如@Ri、@DPTR。

上一篇下一篇
参与回答(0条评论)
用户头像
上传
用户头像
{{item.nickname}}{{item.pubtime}}回复
回复图片
用户头像
上传
用户头像
{{item1.nickname}}回复 {{item1.othername}} {{item1.pubtime}} 回复
回复图片
用户头像
上传
查看全部回复{{item.replylist_count}}条 查看全部
收起回复 收起全部
{{isLoadList==1?'加载中...':(isLoadList==2&&(list.length <=3||(list.length>3&&!is_hidden))?'没有更多内容了':'查看更多回答')}}
返回顶部

返回顶部