网站大量收购独家精品文档,联系QQ:2885784924

实用汇编子程序.doc

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

MCS-51定点运算子程序库及其使用说明 ???? 1.多字节定点操作数:用 [R0] 或 [R1] 来表示存放在由 R0 或 R1 指示的连续单元中的数据。地址小的单元存放数据的高字节。例如: [R0]=123456H ,若 (R0)=30H ,则 (30H)=12H , (31H)=34H , (32H)=56H 。 ???? 2.运算精度:单次定点运算精度为结果最低位的当量值。 ???? 3.工作区:数据工作区固定在 PSW 、 A 、 B 、 R2 ~ R7 ,用户只要不在工作区中存放无关的或非消耗性的信息,程序就具有较好的透明性。 ???? (1) ?? 标号: ?? BCDA ???? 功能:多字节BCD码加法 入口条件:字节数在 R7 中,被加数在 [R0] 中,加数在 [R1] 中。 出口信息:和在 [R0] 中,最高位进位在 CY 中。 影响资源: PSW 、 A 、 R2???? 堆栈需求: ?? 2字节 BCDA:? ?MOV??A,R7?? ;取字节数至 R2 中 ? ?MOV??R2,A ? ?ADD??A,R0?? ;初始化数据指针 ? ?MOV??R0,A ?? MOV??A,R2 ?? ADD??A,R1 ?? MOV??R1,A ?? CLR??C BCD1:? ?DEC??R0?? ;调整数据指针 ?? DEC??R1 ? ?MOV??A,@R0 ? ?ADDC??A,@R1?? ;按字节相加 ? ?DA??A?? ;十进制调整 ? ?MOV??@R0,A?? ;和存回 [R0] 中 ? ?DJNZ??R2,BCD1?? ;处理完所有字节 ? ?RET (2) ?? 标号: ?? BCDB ???? 功能:多字节BCD码减法 入口条件:字节数在 R7 中,被减数在 [R0] 中,减数在 [R1] 中。 出口信息:差在 [R0] 中,最高位借位在 CY 中。 影响资源: PSW 、 A 、 R2 、 R3???? 堆栈需求: ?? 6字节 BCDB:??LCALL??NEG1?? ;减数 [R1] 十进制取补 ? ?LCALL??BCDA?? ;按多字节BCD码加法处理 ?? CPL??C?? ;将补码加法的进位标志转换成借位标志 ?? MOV??F0,C?? ;保护借位标志 ?? LCALL??NEG1?? ;恢复减数 [R1] 的原始值 ?? MOV??C,F0???? ;恢复借位标志 ?? RET NEG1:??MOV??A,R0?? ; [R1] 十进制取补子程序入口 ? ?XCH??A,R1?? ;交换指针 ?? XCH??A,R0 ?? LCALL??NEG?? ;通过 [R0] 实现 [R1] 取补 ?? MOV??A,R0 ?? XCH??A,R1?? ;换回指针 ?? XCH??A,R0 ?? RET ???? (3) ?? 标号: ?? NEG ???? 功能:多字节BCD码取补 入口条件:字节数在 R7 中,操作数在 [R0] 中。 出口信息:结果仍在 [R0] 中。 影响资源: PSW 、 A 、 R2 、 R3???? 堆栈需求: ?? 2字节 NEG:??MOV??A,R7?? ;取(字节数减一)至 R2 中 ?? DEC??A ?? MOV??R2,A ?? MOV??A,R0?? ;保护指针 ?? MOV??R3,A NEG0:?CLR??C?? ?? MOV??A,#99H ?? SUBB??A,@R0?? ;按字节十进制取补 ?? MOV??@R0,A?? ;存回 [R0] 中 ?? INC??R0?? ;调整数据指针 ?? DJNZ??R2,NEG0?? ;处理完( R2 )字节 ?? MOV??A,#9AH?? ;最低字节单独取补 ?? SUBB??A,@R0 ?? MOV??@R0,A ?? MOV??A,R3?? ;恢复指针 ?? MOV??R0,A ?? RET ???? (4) ?? 标号: ?? BRLN ???? 功能:多字节BCD码左移十进制一位(乘十) 入口条件:字节数在 R7 中,操作数在 [R0] 中。 出口信息:结果仍在 [R0] 中,移出的十进制最高位在 R3 中。 影响资源: P

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档