用汇编语言实现多字节乘法计算

部分积右移乘法计算

用汇编语言实现多字节乘法计算

CPU一般都提供乘除法运算指令,不过能够直接运算的乘除法受限于CPU的字长,如MCS-51单片机是8位的,就只能计算8位二进制乘除法,也就是被乘数、乘数、被除数、除数都小于256的计算。如果需要计算的数据较大怎么办?加减法我们还可以用先加/减低字节,再带进/借位加/减高字节的方法来计算,但乘除法这样子显然不行。

下面通过分析二进制乘法的计算特点介绍通用的部分积右移乘法运算: 首先看乘法,列竖式我们都会的,二进制乘法和十进制的其实也差不多,都是按位相乘,再将各部分积错位相加,不同的是二进制乘法各位相乘时结果只有两种:乘数该位为0时乘积为0,乘数该位为1时乘积即被乘数本身。如下图所示:

图1 二进制乘法竖式计算过程

这是一个8位二进制数乘法,过程简明易懂,但是我们怎么将这个过程转化为汇编语言程序呢?下面是根据图1竖式设计的程序流程,很容易看懂,但对于写程序来讲就比较繁琐了,对于乘数的每一位处理方法都不一样,对于每一位乘数我们都要判断它是第几位,然后它和被乘数的积要左移几位相加,这样编出来的程序冗长而且效率很低。

其实我们反过来看,乘数由低到高位每位对应的乘积依次左移一位相加,和每次乘积不动而将结果右移一位相加效果是不是一样的呢?如图3所示:

用汇编语言实现多字节乘法计算

Word文档免费下载Word文档免费下载:用汇编语言实现多字节乘法计算 (共6页,当前第1页)

你可能喜欢

  • 语言培训
  • 语言知识
  • 计算机语言
  • 语言学习
  • 经典语言
  • 语言和文化

用汇编语言实现多字节乘法计算相关文档

最新文档

返回顶部