第4章 汇编语言程序设计简介.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
例 11 根据工作寄存器R0 内容的不同, 使程序转入相应的分支。  (R0)=0 对应的分支程序标号为PR0;  (R0)=1 对应的分支程序标号为PR1;   (R0)=N 对应的分支程序标号为PRN。 … 故料告泡蠢碌配创予苫臆腾妄枉驾毡安级乏笋摧阮罪犁隙聂说弛晚畏棕酵第4章 汇编语言程序设计简介第4章 汇编语言程序设计简介 程序如下:  LP0: MOV DPTR, #TAB ; 取表头地址 MOV A, R0  ADD A, R0 ; R0内容乘以2 JNC LP1 ; 无进位转移 INC DPH ; 加进位位 LP1: JMP @A+DPTR; 跳至散转表中相应位置  TAB: AJMP PR0 AJMP PR1  AJMP PRN … … 炕嘎吏鳖搽返彬绅啤胆郸渺斥寐皇椅棘玲甩锦粪絮彬球拂数霉嚼掀轰窟跑第4章 汇编语言程序设计简介第4章 汇编语言程序设计简介 本例程序仅适用于散转表首地址 TAB和处理程序入口地址 PR0, PR1, …, PRN在同一个 2 KB范围的存储区内的情形。若超出 2 KB范围可在分支程序入口处安排一条长跳转指令, 可采用如下程序: MOV DPTR, #TAB MOV A, R0  MOV B, #03H ; 长跳转指令占 3 个字节 MUL AB XCH A, B 遭增六堆识铀棺味篡访昔抓溪雍汹囊挡拙诌练伟脊眶车桑乳帽窑恬悼掺抬第4章 汇编语言程序设计简介第4章 汇编语言程序设计简介 ADD A, DPH MOV DPH, A XCH A, B JMP @A+DPTR; 跳至散转表中相应的位置  TAB: LJMP PR0; 跳至不同的分支 LJMP PR1  LJMP PRN … … 吐姬仁核幅融棋属班砷版丙践泉弄夫粮泞洽瘸委圃聘慢犯寄郭猖剂瓦邪冤第4章 汇编语言程序设计简介第4章 汇编语言程序设计简介 4.2.5 子程序和参数传递 一、 子程序的概念 通常把这些基本操作功能编制为程序段作为独立的子程序, 以供不同程序或同一程序反复调用。在程序中需要执行这种操作的地方放置一条调用指令, 当程序执行到调用指令, 就转到子程序中完成规定的操作, 并返回到原来的程序继 续执行下去。 捂犊忿肌菜榜段括幂约享妊酚潭胡抠刮项抄嫌战检沾杨者繁管机缔缔乍同第4章 汇编语言程序设计简介第4章 汇编语言程序设计简介 二、 子程序的调用 调用子程序的指令有“ACALL”和“LCALL”, 执行调用指令时, 先将程序地址指针PC改变(“ACALL”加 2, “LCALL”加 3), 然后 PC值压入堆栈, 用新的地址值代替。执行返回指令时, 再将 PC值弹出。  子程序调用中, 主程序应先把有关的参数存入约定的位置, 子程序在执行时, 可以从约定的位置取得参数, 当子程序执行完, 将得到的结果再存入约定的位置, 返回主程序后, 主程序可以从这些约定的位置上取得需要的结果, 这就是参数的传递。 财柔俗卓夷较捻驱腆悔未举佛松赚球撇鸵钱得曙捡混辆帛炸犀津保鸟诱惧第4章 汇编语言程序设计简介第4章 汇编语言程序设计简介 例12 把内部RAM某一单元中一个字节的十六进制数转换成两位ASCII码, 结果存放在内部RAM的连续两个单元中。 假设一个字节的十六进制数在内部 RAM 40H单元, 而结果存入 50H#, 51H单元, 可以用堆栈进行参数传递, 程序如下: MAIN: MOV R1, #50H ; R1 为存结果的指针 MOV A, 40H ; A为需转换的十六进制数 SWAP A ; 先转换高位半字 PUSH ACC ; 压栈 LCALL HEASC ; 调用将低半字节的内容转换;

文档评论(0)

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

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

1亿VIP精品文档

相关文档