8086系统汇编语言压缩BCD码与二进制相互转换问题的4种方法可编辑_第1页
8086系统汇编语言压缩BCD码与二进制相互转换问题的4种方法可编辑_第2页
8086系统汇编语言压缩BCD码与二进制相互转换问题的4种方法可编辑_第3页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、8086系统汇编语言压缩 BCD码与二进制相互转换问题的 4 种方法设计信息化【文章编号】 .? 系统汇编语言压缩码与 二进制相互转换问题的 种方法袁雪尧大连理工大学 , 辽宁大连【摘 要】总结出压缩码与二进制相互转换 的 种方法 ,引言 即逐位调整法、指令法、除十求余法和按权展开法。同时 分析了各种方法的适用范围和不同条件下应该使用的最佳方 汇编语言一直是计算机硬件编程中的重点与难 法。最后结合具体程序说明各种方法的使用方法 , 并且给出注 点, 而数制转换问题由于涉及知识广、实用性强、具 意事项。有定技巧性 , 因此又是汇编语言学习和应用的重 【关键词】逐位调整法 ;指令法;除十求余法 ;

2、按权展开法 中之重。其中 , 以压缩码与二进制数之问的转 【中图分类号 【文献标志码】化最为复杂 ,也最具有代表性。为此 , 通过对 系统中各种条件下码与二进制转化问题的探索与总结, 我将其归纳为五种情况 ,四种方法。方法综述. 逐位调整法 ?将 位二进制数看作一个十六进制位 , 再利用 , 十六进制和压缩码的关系进行转换。 具体逻辑为 : 如果该位大于 , 则该位加 同时进位。该方法 , , 虽然原理简单 , 但是由于涉及到进位操作 , 数据长度 .增加时, 会变得繁琐和复杂。 . 指令法 . ,指令法是利用二进制加法的十进制调整指令,直接集成了逐位调整法 , 对在 中的由 . 两个压缩的码

3、相加的结果进行校正 ,产生一个 ; 正确的码的和。因此 ,相对于逐位比较法 ,使用 ; 它可以更好的利用现成的汇编语言逻辑 , 直接实现 ?址 ?址 ?址 ? ? 址 . 址 . 址 . . 址 . 址 . 址 ? 址 . . 址 . 址 . 址 . . 址 .址 . 址 . 址 ?址 . 龇 .; . 视频安防监控系统工程设计规范 . 组成部分,希望通过本文 ,能为汽车工厂设计中信息 【 】 入侵报警系统工程设计规范】 .系统设计起到抛砖引玉的作用 , 与同行们共同交流。【收稿日期 . . 让我们为企业发展、促进信息技术的推广应用 , 为全 社会的和谐进步共同努力。【参考文献】嗡 . 电子信

4、息系统机房设计规范 .张玉华,女, 吉林长春人 , 高级工程师 ,从事信息 综合布线系统工程设计规范【 】系统设计 , 电子邮箱 . 。 设计信息化 ?将 中的 位二进制数转换为 位压缩码 , ; 二进制数 有多大 , 就逻辑最为简单 ,语句也最少。但是 , 应当注意的是 ,进行几次加 操作, 这样保 证;本身为 位寄存器 , 而每 个二进制位表示一位压 与 等值缩码。因此 的最大值为 , 该方法只适合 ; 进行压缩码调整于 以下的二进制数对压缩码的转 ; 每次将待转换二进制数换。对于较长数据 , 可以将其拆成以字节为单位的数减 , 直到为零 , 否则 据段, 再使用指令法调整。继续加 . 除

5、十求余法对于待转换二进制数 , 由于转换后大小不 变,因此可假设该数本身就是以十进制在计算机中烈储存的, 这样就将二进制数向码的转换转化成 注意事项 :要先将 清零,并且每次加 后立十进制向码的转换。于是 , 该数除十后得到的 即作调整。 余数即为压缩码的个位 , 再对商求余 , 得到十 位二进制数转换为压缩码 位, 以此类推。求余的次数取决于转换后压缩 由于 位二进制数超出指令范 围, 只能码的位数。但是 , 取出的余数为非压缩码 , 仍需 应用除十求余法和按权展开 法。使用除十求余法只进行相应调整。而且 , 求商和余数的操作要依靠二进需应用 指令,得到相应十进制位的大小 , 也就是制除法指

6、令 来实现 , 而 系统中 除法 非压缩码。然后需要再通过指令将 其调整为压中商和余数最长为 位,因此除十求余法只适用于 缩码, 这里采用以字节为 单位存储 , 移位相加位和 位以下二进制数向压缩码的转换。 的方法。而按权展开法则需要取出 相应十六进制位 ,. 按权展开法 进行累加乘 操作, 然后再使用指令法对结果 按权展开法原理简单 , 是将任何数制转换为十 进行压缩码调整。相比而言 , 除十求余法语句 进制表示方式的通用方法 , 也可将压缩码转换 较为简单 , 在此推荐使用。 为二进制数的方法。但是在二进制向压缩码的 具体程序如下 :转换中, 要与 指令法配合操作。而且其涉及大量移位和乘法

7、操作 ,语句相对复杂。 ; 初始化.不同条件下 ,方法的选择和 注意事项 . 二进制转换为压缩码 . 小于的二进制数转换为压缩码 . 四种方法都适 用, 但是指令法逻辑最为简 .; 二进制数 作为被单, 指令也最少 , 因此为最佳选择。除数具体程序如下 : .: 为除数 , ; 位二进制对应的压缩 . 码最多 位, 占 用.字节, ;置零, 用于储存累加结果并进: 指向最低位行十进制调整 .:占用 字节,循环 次: . : ;用于 , 左移,一: 余数作为码存入结果最 【 , 低位 , : 高位进 . ; 进行第二次除法 清零 , ; 待求压缩码最多IV位,也就是个字节,;入栈保护; 指向其最

8、低位 , ; 结果为 个字节 , ; 第二个余数左移 位作为次低 位: ; 用于对取出位乘 并将累加结果 , ; 与最低位相加作为一起作为最低字节,; 用于储存当前单 ; 指向次低字节 元, 进行十进制乘法 ,; 从单元最低位开始 ,; 第一次 来自 , ; 乘 后累加结果十进制调整 ,; 结 果存入单元注意事项 : 转换完的低位在高地址 ; 指向下一个字节中, 因此 初始值为 , 然后逐位相减。 ; 将累加结果调整为 个字节的 除十求余法得到的结果为非压缩码 , 因此需要 压缩码表示 将低位余数和次低位余数移位后相加在一起 , 共同 存于字节单元中。 位二进制数转换为压缩码 对于 位二进制数

9、 , 由于超出 系统汇编 【语言除法 位的最大长度 , 因此只能使用按权展开 注意事项: 难点在于如何 将取出的二进制高位法。使计算机能够正确识别 位二进制数 , 的 进行累加和十进制调整。 应该左移次, 并且在每大小 , 再通过指令法将其转换为压缩码。次移位后, 针对累加结果分别进行 次调整,具体程序如下 : 以使其能够形成正确的十进制数IV U字节以下压缩码转换为二进制数:;初始化由于计算机中的数据默认以二进制数储存 , 因,此码转换为二进制数 , 实际上就是将其大小存入计算机中 , 计算机就会自动将其转换为二进制。换 .算 公 式 为 : 二 进 制 数, 。但是受限于 内部寄存 , ;

10、 位二进制数 器及乘法指令字长的限制 , 此方式只适用于 位以存于 , 下二进制数据的转换 ,对应于压缩码 ,也就是 . 位。,; 每次左移一位 , 取出最高位 ,具体程序如下 :V U共移次【 .息化,. . , . , ;存入 ,; 存入, ., ; 存放累加结果 , ; 字节压缩码对应 的十 ,; , 清零 , 存放二进制结果六进制位: . , ; 为乘数 , ; 移位位数: 取出的高位累加后乘 . : 字节压 缩码一共包含 . 个十六进制位 ,; 待转换码不带进位循环左 : ; 实现移位及取出 高位操作移 个十六进制位 , ; 小于 , 则说明高 位 , ; 移位结果存入 , 以保护

11、已全 部取 出,: 跳入 , ; 取出 低四位, 即 的高四 , 对低十六位 进行操作位 , ; 取出位累加到 : : 取高 位 ; 入栈 , 保护移位结果 , , ; 为 相与因子 , 初始值 , ; 最终二进制结果存入 为, 用于取出 中n的指定位,;第一次 高位右移 次;右移同样要用到,将原入栈保护注意事项 : 取出高位的方法有许多 ,.但是由于下一步要将取出位作为最低位与 相加,.: 将 右移四位 , 以取 使用指令效率最高。出 次高位 字节压缩码转换为二进制数 :对于 字节压缩码 , 转换方法依旧只能采取按 ; 复原 . : 取出位累加到 , 权展开法 , 但是由于 位二进制数的储存必须使用 . 个寄存

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论