- 1、本文档共53页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机原理及应用〔C51版〕第3章MCS–51指令系统
3.1.1 指令分类 按指令实现的功能可分为五大类: 1)数据传送指令:完成数据交换、存储。包括片内RAM、片外RAM、程序存储器的传送指令,交换及堆栈指令。 2)算术运算类:完成各种算术运算,包括加法、带进位加、减、乘、除、加1、减1指令。 3)逻辑运算类:完成逻辑运算,包括逻辑与、或、异或、测试及移位指令。 4)布尔变量操作类:完成单独一位的操作,分为位数据传送、位与、位或、位转移指令。 5)控制程序转移类:实现各种有条件和无条件的转移等,包括无条件转移、条件转移、子程序调用返回、中断返回及空操作指令 2. 直接寻址 在直接寻址方式中,操作数的单元地址直接出现在指令中,这一寻址方式可进行内部存储单元的访问。 它包括: (1) 特殊功能寄存器地址空间。这也是惟一可寻址特殊功能寄存器(SFR)的寻址方式。 例如:MOV TCON, ACC 指令执行结果:累加器A的内容传送给寄存器TCON。 (ACC在汇编后的机器码为字节地址E0H,因而为直接寻址。而A表示对累加器的寄存器寻址。) (2) 内部RAM的低128字节 例如:MOV A, 76H 指令执行结果:内部RAM地址为76H单元的内容传送给A。 3.1.4 寻址空间 MCS-51的7种操作数的寻址方式与所涉及到的存储器空间的关系如下: 立即寻址:立即数在程序存储器ROM。 直接寻址:操作数的地址在指令中,操作数在片内RAM低128B和专用寄存器SFR。 寄存器寻址:操作数在工作寄存器R0~R7,A,B,Cy,DPTR。 寄存器间接寻址:操作数的地址在指令中,操作数在片内RAM低128B(以@R0、@R1、SP(仅对PUSH、POP指令)形式寻址);片外RAM(以@R0、@R1、@DPTR形式寻址)。 基址加变址寻址:操作数在程序存储器ROM。 相对寻址:操作数在程序存储器-128~+127B范围内。 位寻址:操作数为片内RAM的20H~2FH字节地址中的所有位(位地址为00H~7FH)和部分SFR的位。 (5) 堆栈操作指令 堆栈操作指令有以下形式: PUSH direct ; SP←(SP)+1(先指针加1) ; (SP)←(direct)(再压栈) POP direct ; (SP)←(direct)(先弹出) ; SP←(SP)-1(再指针减1) PUSH指令是入栈(或称压栈或进栈)指令,其功能是先将堆栈指针SP的内容加1,然后将直接寻址direct单元中的数压入到SP所指示的单元中。 POP是出栈(或称弹出)指令,其功能是先将堆栈指针SP所指示的单元内容弹出到直接寻址direct单元中,然后将SP的内容减1,SP始终指向栈顶。 2. 乘法指令 乘法指令有以下惟一形式: MUL AB ; A←A×B低字节, ;B←A×B高字节 该指令的功能:把累加器A和寄存器B中的两个8位无符号数相乘,乘积又送回A、B内,A中存放低位字节,B中存放高位字节。 除法指令有以下惟一形式: DIV AB ; A←(A)/(B)(商) ;B←(A)/(B)(余数) 该指令的功能:把A中的8位无符号数除以B中的8位无符号数,商存放在A中,余数存放在B中。Cy和OV均清0。若除数为0,执行该指令后结果不定,并将OV置1。 3.2.5 控制转移类指令 控制转移指令可分为三类:无条件转移指令、条件转移指令及子程序调用与返回指令。 1. 无条件转移指令 不受任何条件限制的转移指令称为无条件转移指令。MCS-51无条件转移指令有以下类型: (1) 长转移指令 长转移指令有以下惟一形式: LJMP addrl6 ; PC←(PC)+2; PC←addr16 该指令功能:把16位地址(addr16)送给PC,从而实现程序转移。允许转移的目标地址在整个程序存储器空间。 (2) 比较不相等转移指令 例如: CJNE A, #data, rel 该指令的功能:若Adata,则PC←(PC)+3+rel,且Cy=0(满足条件相对转移)。若(A)data,则PC←(PC)+3+rel,且Cy=1(满足条件相对转移)。否则,PC←(PC)+3且Cy=0(顺序执行) 3. 子程序调用与返回指令 在程序设计时,常常有一些程序段被多次反复执行。为了缩短程序,节省存储空间,把具有多处使用的且逻辑上相对独立的某些程序段编写成子程序。当某个程序(可以是主程序或子程序)需要引用该子程序时,可通过子程序调用指令转向该子程
文档评论(0)