- 1、本文档共74页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第3章指令修改
概述 一、汇编语言程序设计的重要性 程序设计三种语言 ①机器语言 由二进制组成的代码式语言,人们很难记忆,但运行速度最快。 ②汇编语言 由助记符组成的指令式语言,程序结构简练,运行速度较快。 ③高级语言 由单词缩写组成的语句式语言,程序易学易董,运行速度较慢。 二. MCS-51系列单片机的指令系统 1.指令总数: 111 条 2.按占内存空间分类:(程序大小) ①单字节指令 49条 ②双字节指令 45条 ③三字节指令 17条 3.按运行周期分类: (执行速度) ①单周期指令 64条 ②双周期指令 45条 ③四周期指令 2 条 3.2.2 数据传送类指令 指令汇总表的阅读 水平分栏为不同的传送类型指令 助记符栏 用于帮助记忆指令的功能 操作功能栏 用于帮助理解指令的功能 机器码栏 用于帮助了解指令的机内码 字节数栏 用于帮助了解每个指令的机内长度 机器周期数栏 用于帮助了解每个指令的运行时间长度 MOV DPTR,#TAB MOV A,#3 MOV A, #3 MOVC A,@A+PC MOVC A,@A+DPTR TAB:00H,01H,04H,09H,10H ………………….. …………………. TAB: 00H,01H,04H,09H,10H 3.2.3 算术运算类指令 3.2.4 逻辑运算类指令 3.2.5 控制转移指令 3.2.6 位操作类指令 复 习 1.数据传送类: MOV,MOVC,MOVX,PUSH,POP,XCH,XCHD,SWAP 2.算术运算类: ADD,ADDC,INC,DA,SUBB,DEC,MUL,DIV 3.逻辑运算类: CLR,CPL,RR,RRC,RL,RLC,ANL,ORL,XRL 4.控制转移类: AJMP,LJMP,SJMP,JMP,JZ,JNZ,CJNE,DJNZ,ACALL,LCALL,RET,RETI 5.位运算类: MOV,CPL,SETB,CLR,ANL,ORL,JC,JNC,JB,JNB,JBC 五、 调用及返回指令 在程序设计中, 通常把具有一定功能的公用程序段编制成子程序, 当主程序需要使用子程序时用调用指令, 而在子程序的最后安排一条子程序返回指令,以便执行完子程序后能返回主程序继续执行。 睬临豪鞠况月靴弯铀啼鬼东穗眯啮允赔物延驮篇双剧庞横咀奶挤箍酝疡资第3章指令修改第3章指令修改 1. 绝对调用指令 ACALL addr11 这是一条 2 KB范围内的子程序调用指令。执行该指令时,先将 PC+2 以获得下一条指令的地址, 然后将 16 位地址压入堆栈(PCL内容先进栈, PCH内容后进栈), SP内容加 2, 最后把 PC的高 5 位PC15~PC11与指令中提供的 11 位地址addr11相连接(PC15~PC11, A10~A0), 形成子程序的入口地址送入PC, 使程序转向子程序执行。所用的子程序的入口地址必须与 ACALL下面一条指令的第一个字节在同一个 2 KB区域的存储器区内。 巴挟击恿贪惮触硒胡诡瓶乍恳茄珊啼炊大张毫小依疾党泣隔劝脏喷午侥淌第3章指令修改第3章指令修改 2. 长调用指令 LCALL addr16 这条指令无条件调用位于 16 位地址addr16的子程序。执行该指令时,先将PC+3以获得下一条指令的首地址, 并把它压入堆栈(先低字节后高字节), SP内容加 2, 然后将 16 位地址放入 PC中, 转去执行以该地址为入口的程序。 LCALL指令可以调用 64 KB范围内任何地方的子程序。指令执行后不影响任何标志。 律棒阵绑缩罢沦纬琅辙岔代忌讲裳吧蝗音范贯挚枫德根霸靳璃枯鸡蒲彭共第3章指令修改第3章指令修改 3. 子程序返回指令 RET 这条指令的功能是: 恢复断点, 将调用子程序时压入堆栈的下一条指令的首地址取出送入PC, 使程序返回主程序继续执行。 4. 中断返回指令 RETI 这条指令的功能
文档评论(0)