基于单片机汇编语言的通用多字节无符号数除法的改进.pdfVIP

基于单片机汇编语言的通用多字节无符号数除法的改进.pdf

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于单片机汇编语言的通用多字节无符号数除法的改进

第! 卷第# 期 广东工业大学学报 ()*+ ! ,)+ # ’ ’ ’ ’ ’ ’ ’ ’ !$$% 年 月’ !#$%’ ( )#%*+%* ,%-./$0-12 ( 3/45%’*2 -./01 !$$% 基于单片机汇编语言的通用多字节 无符号数除法的改进 严克剑,张’ 淼,王丽琼 (广东工业大学自动化学院,广东广州2#$$5$ ) 摘要:论述一种在6$2# 系列单片机上实现的高可靠多字节除法运算的改进型算法,该算法通过改进传统的“移位 7 相减”算法,克服了常用的多字节无符号除法的局限性,可以针对任意长度的除数且不会发生商溢出+ 经实验得 到计算结果准确无误,该算法具有算法简单、适应性强、高度可靠等优点,具有很强的实用性+ 关键词:单片机;汇编指令;多字节除法 中图分类号: 89$#+ ’ ’ ’ ’ ’ ’ 文献标识码::’ ’ ’ ’ ’ ’ 文章编号:#$$%3%#;!(!$$% )$#3$$!!3$ ’ ’ 单片微型计算机的应用越来越广泛,它不仅应 步骤,直到被除数的所有位都处理完为止+ 用在各种控制上,有时也用来做数据处理运算[#]+ 现 根据上述算法,设被除数为(!2 ),除数 在应用广泛的2# 系列单片机具有强大的运算能力, 为(;% ),商存于2 中,余数存于! 中+ 相应 可以直接选用算术运算指令完成单字节(6 位)数据 的程序流程图如图#所示+ 被除数(!2 )的长 运算+ 同时,它的进位(借位)标志为无符号整数算 术运算提供了方便+ 目前有关数据处理运算的资料 比较多,然而笔者在参考关于多字节无符号数据整 数除法的资料时发现,目前资料所介绍的有关程序 应用范围非常小,应用时受除数长度限制比较大+ 而 在实际应用中,除法运算非常重要,甚至有时候要求 必须快速地进行除法运算,这就要求编写的除法程 序力求高效、快速[! ]+ 本文巧妙地利用“移位 7 相 减”法[32 ],以2# 系列单片机为例,设计了除数不受 字节长度限制的单片机除法运算算法+ 该算法还可 以根据实际需要扩充为位数更高的多字节除数算 法,也可以移植到其它的单片机平台上+ #’ 目前常用的单片机多字节除法运算 方法及其局限性 ’ ’ 目前,单片机多字节除法运算要求被除数为除 数的双倍字长,否则除法运算就不能执行+ 当被除数 是除数的双倍字长时,首先比较被除数的高位字与 除数的大小,如果出现被除数的高位字大于、等于除 数,则认为是商溢出,置位溢出标志不执行除法操 作+ 如果这些条件都成立,再采用一系列相减和移位 操作来执行除法运算,每“移位7 相减”一次求得一 位商,当余数够减时得商#,不够减时得商$ ,循环此 图#’ 传统多字节除法流程图 收稿日期:!$$23$23#$ 基金项目:广东省科技计划项目(!$$4#$!$!! ) 万方数据 作者简介:严克剑(#56!3),男,硕士研究生,主要研究方向为控制网络集成+ ( 第. 期 ( ( ( ( ( 严克剑,等:基于单片机汇编语言的通用多字节无符号数除法的改进 ( ( ( $ 度是! 个字节时,如果除数的长度是 位的,而且被 )67 8 ,95/4 除数高位(##$ )与除数(#%# )比较,如果前者小 *:; #5 ,9554 ,=7= 于后者,这个程序可以得到正确的答案’ 如果除数是 )67 8 ,9.54 *# ? $ 位或者被除数的高位(##$ )大于除数(#%# )这 @*4 ? ,#$ 个程序没

文档评论(0)

zsmfjh + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档