【发布时间】:2013-02-26 14:20:01
【问题描述】:
我正在使用一个名为可见虚拟机的小人计算机模拟器程序来学习汇编语言格式的编码基础知识。目前,我正在尝试将任意两个数字相乘(x 和y),但以一种有效的方式通过抓取最大的数字并将较小的数字等于多少次添加到其中。如何交换数字,以便取最大数字并加上较小数字等于多少倍?
例如
输入可以是:
5 * 12 或 12 * 5
高效计算:
12 + 12 + 12 + 12 +12 = 60
效率不高:
5 + 5 + 5 + 5 + 5 + 5 + 5 + 5 + 5 + 5 + 5 + 5 = 60
代码:
IN
STO 99
IN
STO 98
STO 96
LDA 99
SUB 97
STO 99
LDA 96
ADD 98
BRP 07
LDA 96
OUT 96
*95
DAT 001
HLT
【问题讨论】:
标签: assembly little-man-computer