【大学课件】汇编语言程序设计P228知识分享.ppt

【大学课件】汇编语言程序设计P228知识分享.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
【大学课件】汇编语言程序设计P228知识分享.ppt

4.6 综合程序举例 图4-13 七段码显示器(共阳极接法) 4.6 综合程序举例 表4-1 七段代码表 4.6 综合程序举例 参考程序: ORG 8000H HESEC: MOV DPTR,#TABS MOV A,R2 ANL A,#0FH ;取低半字节 MOVC A,@A+DPTR ;查表 MOV R3,A ;结果送R3 MOV A,R2 ANL A,#0F0H ;取高半字节 SWAP A MOVC A,@A+DPTR ;查表 MOV R2,A ;结果送R2 RET 4.6 综合程序举例 三、运算类程序 *例4.25 多字节无符号数加法。 解: 多字节运算一般是按从低字节到高字节的顺序依次进行。   入口:(R0)=被加数低位字节地址指针      (R1)=加数低位字节地址指针      (R2)=字节数   出口:(R0)=和数高位地址指针 4.6 综合程序举例 图4-14 多字节无符号数加法程序流程图 4.6 综合程序举例 参考程序: ADDBIN: CLR C LOOP1: MOV A,@R0 ;取被加数 ADDC A,@R1 ;两数相加,带进位 MOV @R0,A INC R0 INC R1 DJNZ R2,LOOP1 ;未加完转LOOP JNZ LOOP2 ;无进位转LOOP2 MOV @R0,#01H RET 4.6 综合程序举例 LOOP2: DEC R0 RET 说明: (1)要考虑低字节向高字节的进位情况,最低两字节相加,无低位来的进位,因此,在进入循环之前应对进位标志清“0”。最高位两字节相加若有进位,则和数将比加数和被加数多出一个字节; (2)此程序执行后,被加数被冲掉。 *例4.26 多字节无符号数减法。 解:与加法原理类似。   4.6 综合程序举例 图4-15 多字节无符号数减法程序流程图 4.6 综合程序举例 入口:(R0)=被减数低位字节地址指针      (R1)=减数低位字节地址指针      (R2)=字节数   出口:(R0)=差的低字节,(R3)=差值字节数,07H为无符号位。 参考程序: SUBBIN: PUSH PSW CLR C ;清标志位 CLR 07H ;清结果标志位 MOV R3,#00H 4.6 综合程序举例 LOOP3: MOV A,@R0 ;取被减数 SUBB A,@R1 ;两数相减 MOV @R0,A INC R0 ;地址值增1 INC R1 INC R3 DJNZ R2,LOOP3 ;做完减法否 JNB CY,LOOP4 ;有无借位 SETB 07H ;差为负,置“1”符号位,说明结果无效 LOOP4: POP PSW ;恢复标志寄存器内容 RET 4.6 综合程序举例 *例题:编制程序实现两位16进制数乘法运算: (R7R6)16×(R5R4)16→(R3R2R1R0)16   解:51系列乘法指令只能完成两个8位无符号数相乘,因此16位无符号数求积必须将它们分解成8位数相乘来实现。其方法有先乘后加和边乘边加两种。现以边乘边加为例设计。 程序如下: ORG 1000H

文档评论(0)

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

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

1亿VIP精品文档

相关文档