资源描述:
《单片机-江汉大学教案》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、2MCS-51指令系统及汇编语言程序设计指令格式寻址方式指令系统程序设计概述由构成计算机的电子器件的特性所决定,计算机只能识别二进制代码。这种以二进制代码来描述指令功能的语言,称之为机器语言,用机器语言组成的程序,称为目标程序。计算机就是按照机器语言的指令来完成各种功能操作的,它具有程序简捷、占用存储空间小、执行速度快、控制功能强等特点。一个单片机所需执行指令的集合即为单片机的指令系统。使用易于阅读和辨认的指令符号来代替机器码,称为助记符,用助记符的形式表示的单片机指令就是汇编语言,为便于记忆和阅读,助记符号通常都使用易于理解的英文单词和拼音字母来表示。单片机
2、使用的机器语言、汇编语言及高级语言,但不管使用是何种语言,最终还是要“翻译”成为机器码,单片机才能执行之。每种单片机都有自己独特的指令系统,那么指令系统是开发和生产厂商定义的,如要使用其单片机,用户就必须理解和遵循这些指令标准,要掌握某种(类)单片机,指令系统的学习是必须的。MCS-51单片机汇编语言指令的格式[标号:]操作码[目的操作数],[源操作数][;注释]例如:LOOP:ADDA,#10H;(A)←(A)+10H(1)方括号[]表示该项是可选项,可有可无。(2)标号是用户设定的符号,它实际代表该指令所在的地址。标号必须以字母开头,其后跟1~8个字母或数
3、字,并以“:”结尾。(3)操作码是用英文缩写的指令功能助记符。它确定了本条指令完成的操作功能。任何一条指令都必须有该助记符项,不得省略。(4)目的操作数提供操作的对象,并指出一个目标地址,表示操作结果存放单元的地址,它与操作码之间必须以一个或几个空格分隔。(5)源操作数指出的是一个源地址(或立即数),表示操作的对象或操作数来自何处。它与目的操作数之间要用“,”号隔开。(6)注释部分是在编写程序时,为了增加程序的可读性,用户写的对该条指令或该段程序功能的说明。它以分号“;”开头,可以用中文、英文或某些符号来表示,它不存入单片机,只出现在源程序中。无标号:MOVA
4、,B无目的操作数:PUSHA无源操作数:CLRA既无目的操作数也无源操作数:RET标号的作用:如软件延时程序:MOVR1,#0AH;给R1赋循环初值DELAY:DJNZR1,DELAY;(R1)←(R1)-1,若(R1)≠0则循环一些特殊符号的意义在介绍指令系统前,先了解一些特殊符号的意义,这对今后程序的编写都是相当有用的。Rn—当前选中的寄存器区的8个工作寄存器R0~R7(n=0~7)。Ri(i=0,1)—当前选中的寄存器区中可作为地址寄存器的两个寄存器R0和R1direct—内部数据存储单元的8位地址。包含0~127(255)内部存储单元地址和特殊功能寄存
5、地址。#data—指令中的8位常数。#data16—指令中的16位常数。addr16—用于LCALL和LJMP指令中的16位目的地址,目的地址的空间为64KB程序存储器地址。addr11—用于ACALL和AJMP指令中的11位目的地址,目的地址必须放在与下条指令第一个字节同一个2KB程序存储器空间之中。rel—8位带符号的偏移字节,用于所有的条件转移和SJMP等指令中,偏移字节对于下条指令的第一个字节开始的-128~+127范围内。@—间接寄存器寻址或基址寄存器的前缀。/—为操作的前缀,声明对该位操作数取反。DPTR—数据指针。bit—内部RAM和特殊功能寄存
6、器的直接寻址位。A—累加器。B—寄存器B。用于乘法和除法指令中。C—进位标志位。(x)—某地址单元中的内容。((x))—由X寻址单元中的内容。微型计算机的基本工作原理微型计算机解题过程举例:计算a+b-c=?计算a+b-c=?存储器指令或数据的地址指令指令内容说明操作功能操作码地址码程序区0取数6把内存6号地址内的数a取出送运算器的A累加器中,即a→A(6)→A1加法7将内存7号地址中的数b取出与A中数相加,结果保留在A中,即a+b→AA+(7)→A2减法8把A中内容减8单元中内容c,相减结果保留在A中,即a+b-c→AA-(8)→A3存数9把A中内容寄存到9
7、单元,即a+b-c送9号地址中寄存A→(9)4打印输出端口把A中内容送打印机端口A→打印端口5停机暂停状态HLT数据区6数a7数b8数c9存结果微型计算机的工作过程微型计算机的工作过程就是执行程序的过程,而程序由指令序列组成,因此,执行程序的过程,就是执行指令序列的过程,即逐条地从存储器中取出指令并完成指令所指定的操作。由于执行每一条指令,都包括取指、译码和执行三个基本步骤,所以,微型计算机的工作过程,也就是不断地取指令、译码和执行的过程,直到遇到停机指令时才结束机器的运行。取指令PC+1译码送地址取出地址送操作数执行操作取下一条指令PC+1开始取指令阶段执行
8、指令阶段一个CPU周期一个CPU周期一