汇编语言程序的设计的方法.ppt

  1. 1、本文档共47页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
3.4汇编语言程序设计方法 341汇编程序约定 342汇编程序设计步骤 343顺序程序 344分支程序 345循环程序 346算术运算程序 34.1汇编程序约定 ●汇编语言程序: 用汇编语言编写的、完成特定功能的指令序列。 ●汇编程序: 能将汇编语言源程序转换成机器语言目标程序的 系统软件 汇编语言程序到机器语言程序的转换过程称为汇编。 手工汇编:人工查指令表汇编。用于设计短小程序或调试 程序的场合。 2、机器汇编:用汇编程序进行汇编。 源程序使用机器汇编要考虑汇编程序的约定: ◎1)按指令格式和语法规则编写程序。 常数的表示: 十进制数:20 十六进制数:87H,OFOH 二进制数 字符: H 字符串:“He1lo” ●2)使用伪指令提供汇编信息。 汇编的主要任务: 1)确定程序中每条汇编语言指令的指令机器码。 2)确定每条指令在存储器中的存放地址。 3)提供错误信息。 4)提供目标执行文件(*.OBJ/HX)和 列表文件(*.LST)。 汇编语言指令类型: 机器指令 指令系统中的全部指令,每条指令有对应的机器代码。 ●2.伪指令 汇编控制指令,仅提供汇编信息,没有指令代码 3.4.2汇编语言程序设计步骤 、确定方案和计算方法 二、了解应用系统的硬件配置、性能指标 建立系统数学模型,确定控制算法和操作步骤 四、画程序流程图; 表示程序结构和程序功能 开始 五、编制源程序。 理 1.合理分配存储器单元和了解 I/0接口地址 条件满足? 2.按功能设计程序,明确各程序 之间的相互关系 「处理][处理 3.用注释行说明程序,便于阅读、「处理 修改和调试。 六、程序的调试 结束 流程图符号和说明 符号 名称 表示的功能 起止框 程序的开始或结束 外理框 各种处理操作 判断框 条仵转移操作 输入输出框 输入输出操作 流程线 描述程序的流向 引入引出连搂线流程的连接 将CPU要执行的操作写在一个个框内,并以一定的次序,用 带方向箭头的直线把这些框连接起来,指示出CPU的操作过程 此方框图结构称程序框图或程序流程图。 2014-1-21 常用程序结构: 顺序程序、分支程序、循环程序、公用子程序 3.4.3顺序程序 顺序程序按顺序依次执行的程序,又称简单程序。 程序走向只有一条路径,是复杂程序结构的基础。 例:双字节变补程序(设数据在RR中):(开始 MOv A R5;取低字节 CPL A 「处理 ADDA,#01H;低字节变补 Mov R5, A 处理 MOVA,R4;取高字节 CPL A 处理 ADCA,#80H高字节变补 MOV R4, A 结束 ●举例(顺序) [例341三字节无符号数相加,其中被加数在内部RAM的50H、51H和52H 单元中;加数在内部RAM的53H、54H和55H单元中;要求把相加 之和存放在50H、51H和52H单元中,进位存放在位寻址区的00H 位中。 内部RAM 50H 51H 52H 53H54H55R1-5H低字节 高字节低字节+高字节低字节 54H中字节加数 53H高字节 低字节 50H 51H 52H R0-+52H 51H中字节被加数 5OH高字节 20H 程序: MOV Ro,#52H:被加数的低字节地址 MOV R1, #55H ;加数的低字节地址 MOv A, Ro ADD A, R1 低字节相加 MOv Ro, A ;存低字节相加结果 DEC Ro DEC R1 MOv A, Ro ADDc A, R1 ;中间字节带进位相加 MOv @Ro, A ;存中间字节相加结果 DEC Ro DE Rl MOv A, Ro ADDc A, R1 高字节带进位相加 MOv Ro, #20H MOV Ro, A 存高字节相加结果 Mov @Ro, A CLRA ADDC A,#00H MOV C, ACCo MOV 00H, C ;存放进位的单元地址 MOV 00H, C ;进位送00H位保存 例3.4.2将R2中BCD码数转为二进制数存进R2。 ORG 20001 BCD2B: Mov A, R2 取入口数据 ANLA,#0F0H;取出十位 SWAP A 高4位低4位 Mov B, #OaH MUL AB ;十位乘10 mov R3 A 积暂存进R3 Mo A, R2 ;再取入口数据 ANLA,#0FH;取出个位 ADd A R3 MOv R2, A

文档评论(0)

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

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

1亿VIP精品文档

相关文档