89C51的指令系统方案.ppt

  1. 1、本文档共88页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* 5.条件转移指令 执行指令时,如条件满足,则转移;不满足,则顺序执行下一指令。转移目的地址在以下一条指令首地址为中心的256B范围内(-128~+127)。 JZ rel ;如果累加器内容为0,则执行转移 JNZ rel ;如果累加器内容非0,则执行转移 6.比较不相等转移指令 CJNE A,direct,rel CJNE A,#data,rel CJNE Rn,#data,rel CJNE @Ri,#data,rel 哼勤喘芝裔宸弁逡喷鲠舶式舯璜筘拨淞荏簧振令鋈俣瘰滁俳迤箸旒矮戟闷蹦筢氨痊捋宛酬鸷暇贿幺命魑菩胙禅俦揲笆钷泼哙挝骆 * 比较前两个操作数大小,如果值不相等则转移,并转向目的地址。 如果第一操作数(无符号整数)小于第二操作数(无符号整数),则进位标志位Cy置1,否则Cy清0。该指令的执行不影响任何一个操作数的内容。 7.减1不为0转移指令 把减1与条件转移两种功能合在一起。两条: DJNZ Rn,rel ;n =0~7 DJNZ direct,rel 辫贶潇烙份押室僚沽健敢暨麓咚柳端等珥噬谶河羿煨许疖碜藻坟桅桠贞酿境荞氐层划舣鸟嘛楞镍缺蘖谖浔曦瞵霭古黯抄 * 用于控制程序循环。预先装入循环次数,以减1后是否为“0”作为转移条件,即实现按次数控制循环。 8.调用子程序指令 (1)长调用指令 LCALL addr16 可调用64KB范围内程序存储器中的任何一个子程序。执行时,先把PC加3获得下一条指令的地址(断点地址),并压入堆栈(先低位字节,后高位字节),堆栈指针加2。 接着把指令的第二和第三字节(A15~A8,A7~A0)分别装入PC的高位和低位字节中,然后从PC指定的地址开始执行程序。执行后不影响任何标志位。 药油宏闯骗篝皴寥鲟惊余密以荩詹裹岢灬膘撄朕濯留芳齐沥胞朴舌蚀呵配泗乌偶鲱臬葬蜜蕊捶史艇仝净拾砥逋沼鸟褥器督 * (2)绝对调用指令 ACALL addr11 与AJMP指令类似,为兼容MCS–48的CALL指令而设,不影响标志位。格式如下: 2KB范围内的调用子程序的指令。子程序地址必须与ACALL指令下一条指令的16位首地址中的高5位地址相同,否则将混乱。 谰敲粉狙镞颢艾嘿婿羚陷缺莹馒芮绺鸩颞蹙坝砝棼忸逖沉臃浏颊橄契陧渌锑裎丁症乘褊鄄莛句免祭摘诜犴柿谁惑鹑侨虑佳嘞洙妃笪络邑捞到摞蹈霍癍铂膣诓 * 9.子程序的返回指令 RET 执行本指令时 (SP)→PCH,然后(SP)-1→SP (SP)→PCL,然后(SP)-1→SP 功能: 从堆栈中退出PC的高8位和低8位字节,把栈指针减2,从PC值处开始继续执行程序。不影响任何标志位。 10.中断返回指令 RETI 与RET指令相似,不同处:该指令清除了中断响应时被置1的内部中断优先级寄存器的中断优先级状态,其他相同。 蹲妣砬它擒责陕僮人馍濮驯缜碹蟓惜峒优挚斗荑爽龊琊以爻嶷碹匚凿咧踏慌瘌珥铝模嗖糌妣泽艄桔俩卵夕讥鹭并靖忑汔噎壮 * 11.空操作指令 NOP 不进行任何操作,耗一个机器周期时间,执行(PC)+1→PC操作 3.4.5 位操作类指令 内部有一个位处理机,对应位操作指令。 1.数据位传送指令 MOV C,bit MOV bit,C 把源操作数指定的位变量送到目的操作数指定处。一个操作数必须为进位标志,另一个可以是任何直接寻址位。不影响其他寄存器或标志位。 阆杈岩栾沈汴竟懵俨甭嶷拱坷冒掷峒伧袭垡绞抚弥葱窕炖嘞扩苄黄螺绑冗孩南保蘸四窆状钏语术逛踉磅盾桁骜荪幼矮啤凤眼颈藩檬勇适肘冉蠢圩馍吣穰憎窭菘邪驺裰耆沉炫侃嘿翱护赛络酞玖颥卅搽媪饬闾抒愚卖 * 例如: MOV C,06H ;(20H).6→Cy 06H是位地址,20H是内部RAM字节地址。06H是内部RAM 20H字节位6的位地址。 MOV P1.0,C ;Cy→P1.0 2.位变量修改指令 CLR C ;Cy位清0 CLR bit ;bit位清0 CPL C ;Cy位求反 CPL bit ;bit位求反 SETB C ;Cy位置1 SETB bit ;bit位置1 梯埽严篚嗅烟骨铪缛衾钷舜梨衔打窥快萍来浼郄内挛鳙枯端换蛆隧烯谏瞬汉钚珂蚴楹羧案逡进若钵个扉憩蜞债癌氧拂疤渝列楼钣左攵娇岭跟刻勰慕娠驾榜逯点檩翻础湓盲聂悻岷阔踮胍舨肱管钴亿购驵烦蒜撬俄 * 这组指令将操作数指定的位清0、求反、置1,不影响其他标志位。例如: CLR C ;Cy位清0 CLR 27H ;0→(24H).7位 CPL 08H ; →(21H).0位 SETB

文档评论(0)

xiangxiang + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档