欢迎来到天天文库
浏览记录
ID:12869541
大小:607.00 KB
页数:31页
时间:2018-07-19
《新第7章 单片机指令系统》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第7章MCS-51系列单片机指令系统指令是规定计算机执行特定操作的命令。具体而言,指令由CPU执行,CPU就是根据指令来指挥和控制微机各部分协调地动作,以完成规定的操作。计算机全部指令的集合叫作计算机指令系统,指令系统准确定义了计算机的处理能力。以二进制代码形式存在指令叫做机器码指令。机器码指令的优点是能被CPU直接理解和执行。缺点是编程烦琐、不直观、难记忆、易出错。为克服机器码指令的缺点,人们通常用助记符(几个字母构成的符号)来代替机器码指令。助记符与机器码指令之间有一一对应的关系,助记符即所谓
2、汇编指令。汇编指令与机器指令并无本质区别。由于CPU只能执行机器指令,汇编指令必须先“汇编”成机器指令才能被CPU执行。本章将详细介绍MCS-51的指令系统。7.1概述7.1.1指令格式单片机汇编语言指令语句由标号、操作码、操作数和注释四项组成。其格式如下:LOOP:MOVA,#26H;A←26H①②③④[标号:]<操作码>[操作数][;注释]说明:1、凡用标有“[]”的项为可选项,标有“<>”的项为必选项;2、各项之间之间必须用空格或制表符隔开;3、各项功能。①标号是指令的符号地址,代表指出该指
3、令机器码所在程序存储器单元的首地址;②操作码项规定了指令的操作功能,常用助记符表示。③操作数是指令的操作对象。操作数分为目标操作数(上例中的累加器A)和源操作数(上例中的#26H)。目标操作数在左,源操作数在右,中间用逗号“,”隔开,书写顺序不能颠倒。操作数可以是数字(地址、数据),也可以是标号或寄存器名等。④注释项是对指令功能作的说明,便于阅读和维护。7.1.2 指令的描述约定为便于单片机指令系统的学习,先对描述指令的一些符号进行说明。Rn——当前选中的寄存器区的8个工作寄存器(n=0,1,2,
4、…,7)。Ri——当前选中的寄存器区中可作为间址寄存器的两个寄存器(i=0,1)direct——内部数据存储单元的8位地址。既可以是一个内部RAM的低128B地址(8位二进制数),也可以是一个特殊功能寄存器的单元地址或名称符号。#data——指令中的8位常数(立即数)。#data16—指令中的16位常数(立即数)。addr16——用于LCALL和LJMP指令中的16位目的地址,目的地址的空间为64kB程序存储器地址。#addr11——用于ACALL和AJMP指令中的11位目的地址,目的地址必须放在
5、与下条指令第一个字节同一个2kB程序存储器空间之中。rel——8位带符号的偏移量,用于所有的条件转移和SJMP等指令中,偏移量字节数是以下条指令的第一个字节为基值,偏移范围为-128~+127。@——间接寻址方式中,表示后续寄存器为间接寻址寄存器。bit——片内RAM或特殊寄存器的直接寻址位地址/——位操作指令中,表示对该位取反后再参与操作,但不影响该位的原值。(x)——表示地址x单元中的内容。((x))——表示x地址单元中的内容为地址的单元中的内容。$——当前指令第一个字节的地址←——数据传输方
6、向。可理解为箭头左边的内容被箭头右边的内容所取代。←→——数据交换。箭头两侧的内容互换。7.1.3 寻址方式寻址即寻找源操作数的方式。源操作数在哪里,可以在指令中,可以在寄存器中,也可以在存储器单元中。MCS-51单片机指令系统有7种寻址方式:立即寻址、直接寻址、寄存器寻址、寄存器间接寻址、变址寻址、相对寻址和位寻址。其功能强大,使用灵活。下面分别介绍各种寻址方式。1.立即寻址源操作数在指令中。指令中直接给出一个8位或16位的二进制常数(立即数)参与操作,立即数前必须加“#”号表示。一般用#dat
7、a表示。例7-1将立即数74H送入累加器A中助记符:MOVA,#85H;A←#85H机器码:7485;双字节指令该指令的功能是将立即数85H送入累加器A中。例7-2将数据指针寄存器DPTR指向2008H助记符:MOVDPTR,#2008H;DPTR←#2008H机器码:902008;三字节指令该指令的功能是将立即数2008H送入数据指针寄存器DPTR中。2.直接寻址源操作数在内RAM中,指令中直接给出的操作数是片内RAM单元的地址,该地址单元中的数据才是真正被操作的对象。直接地址有direct表示
8、。直接寻址方式只适于内部RAM的数据传送。例7-3MOVA,44H;A←(44H)该指令的功能是把内部RAM44H单元的内容送入累加器A。注意:指令中数据或地址不允许以字母打头,若出现的以字母A~F打头的十六进制数(立即数、单元地址或其它),均需加前导0。3.寄存器寻址源操作数在寄存器中,指令中给出的操作数是一个寄存器,在此寄存器中存放着真正被操作对象。例7-4INCR2;R2←(R2)+1该指令的功能是将R2工作寄存器的内容加1后送回R2。如果指令执行前片内(R4)=24H,指令
此文档下载收益归作者所有