assembly Donald Knuth的Mix汇编语言1.3.1中的算术运算

dphi5xsq  于 2023-04-12  发布在  其他
关注(0)|答案(1)|浏览(111)

我一直在阅读Donald Knuth的The Art of Programming,Volume 1,其中MIX被用作汇编语言。在Knuth谈到MIX中的算术运算的部分,我不明白减法,乘法和除法运算是如何进行的。
例如,教科书有这样的:
寄存器A具有以下字代码:-|一二三五|0|三|1,并且存储器单元,例如M,具有以下字代码:-|0|0|0|二|0。
书上说,执行DIV 100的结果是:rA(+|0|六一七|?|?),rX(-|0|0|0|?|1).有人能帮我吗?
如我所知,它应该是rA(+|0|六一七|五|1),rX(-|0|0|0|1|1)?

ergxz8rk

ergxz8rk1#

我不认为你有足够的设置信息在这里为给定的DIV指令,加上你混合4部分的单词形式和5部分的单词形式,但让我们专注于划分:

  • 股息= -1235000301
  • 除数= -200
  • 1235000301/ -200 = 6175001.505
  • 商= 6175001
  • 余数= -101 = 0.505 * -200
组件MIX 4部分十进制MIX 5部分十进制数值
股利- | 1235 | 00 | 03 | 01- | 12 | 35 | 00 | 03 | 01-12.35亿301万
除数- | 0000 | 00 | 02 | 00- | 00 | 00 | 00 | 02 | 00两百
+ | 0006 | 17 | 50 | 01+ | 00 | 06 | 17 | 50 | 016175001
余数- | 0000 | 00 | 01 | 01- | 00 | 00 | 00 | 01 | 01-101

在上述单词形式的较短版本中,去掉前导零-例如1表示01 -但不要忘记包括前导零以获得完整和正确的数值。

相关问题