- 1、本文档共42页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第五章 汇编语言程序设计110928
四.子程序 13.四位BCD码减法程序设计 被减数:50H,51H 减数:60H,61H 结果:40H,41H a-b(a﹥b) 9Ah b a-b DA (9AH-b+a) 9Ah-b a-b (a﹤b) 9Ah b a-b DA (9AH-b+a) 9Ah-b BCD码减法示意图 子程序: BSUB:MOV A,#9AH SUBB A,@R0 ;减减数 ADD A,@R1 ;加被减数 AD A INC R0 INC R1 CPL C ;形成借位位 RET 主程序: MOV R1,#50H ;置被减数地址 MOV R0,#60H ;置减数地址 CLR C ACALL BSUB MOV 40H,A ACALL BSUB MOV 41H,A ● ● ● 14. 单字节有符号数加减法程序设计 R2±R3→R7 求补码子程序: CPMT:JNB ACC.7,NCH CPL A ADD A,#1 SETB ACC.7 NCH:RET BYTE_SUB: MOV A,R3 CPL ACC.7 MOV R3,A BYTE_ADD: MOV A,R3 ACALL CPMT ;R3中的内容求补 MOV R3,A MOV A,R2 ACALL CPMT ;R2中的内容求补 ADD A,R3 ; A←(R3)补+(R2)补 ACALL CPMT ;和求补 MOV R7,A RET 1.将30H单元存放的压缩BCD码,转变为ASCII码放入32H和33H中。下图中a和b 是BCD码。 b a 30H 33H → 32H 2.编成实现下列函数。 Y= 1(X ﹥ 0) -1(X ≦ 0) Y= X(X ﹥ 0) 2X(X﹤0) 1(X = 0) ① ② |X |﹤125 0 b的ASCII码 0 a的ASCII码 X—30H(有符号数) Y—31H 3.将内部数据存储器的30H~3FH单元存入00H-0FH 16个数。 4.将内部数据存储器的30H~4FH单元存放的数据存入外部数据存储器的3000H~301FH单元中。 5.内部数据存储器的30H~37H单元中存放着8个16进制数,将它们转换为ASCII码,存入40H~47H 中(用子程序)。 总结 简单程序设计 分支程序设计 循环程序设计 查表程序设计 散转程序设计 子程序程序设计 最后修改日期:2011.4.14 2011.4.11 * * HIT(Weihai) Microelectronics Centre 第五章 汇编语言程序设计 简单程序设计 分支程序设计 循环程序设计 查表程序设计 散转程序设计 子程序程序设计 第一节 汇编语言的语句格式与伪指令 一、语句格式 汇编语言是用助记符来表示指令的一种计算机语言。 机器码C4H) 助记符:SWAP A 汇编语言指令最多包含4个部分: 标号 、操作码、 操作数和注释。 如: START:MOV A,#30H;A← 30H START—标号,代表该指令的地址。 MOV--操作码(74H),是指令的核心,给出了指令功能。 #30H--操作数(30H),参加运算的数,可有多个,用“,”隔开。 注释—由“;”开头,用来说明语句的功能。 ① ORG n;n—地址。 用于规定其后面指令的地址。 如: ORG 0003H LJMP GO_INT0000000100003H 0004H 0005H 程序存储器 二、伪指令 伪指令:在程序汇编时起作用,在执行时不起作用的指令没有对应的机器码。 ② END 汇编语言程序结束伪指令。 ③ DB和DW 定义常数或变量为指令。 DB:8 bit DW:16 bit WORDS 如:
文档评论(0)