使用带符号的int乘法数学进行移位的汇编语言

问题描述 投票:2回答:1

这有点转。

通常是尝试使用移位来执行乘法,而不是相反。

在日立/摩托罗拉6309上,没有移位n位。仅移位1位。

但是有一个16位x 16位带符号的乘法(提供32位带符号的结果)。

我一直在尝试使用此指令来执行移位,但是到目前为止,我失败了。

我可以轻松地将任何正值偏移0到14,但是要偏移15位(乘以0x8000,则要乘以某些值的组合):

  • 将结果补1
  • 将结果补2
  • 向结果加1
  • 对结果无所作为
  • 而且我只是看不到这些值的任何模式。

任何想法表示赞赏!

这有点转弯。通常,一个尝试使用移位执行乘法,而不是相反。在Hitachi / Motorola 6309上,没有移位n位。有...

algorithm assembly bit-shift motorola integer-arithmetic
1个回答
1
投票

您是否使用定点乘法逆来将高半值结果用于右移?

© www.soinside.com 2019 - 2024. All rights reserved.