0

我是汇编程序的新手,我需要一些帮助。

我的编译器只对这个命令做出反应

load i  
store i 
loadi i 
addi i  
subi i  
move S T    
loadin i j  
storein i j
all kind of jumps

我需要编写程序在一个数据存储中查找数字存储的阶乘,假设在第一个单元格中

提前致谢

4

1 回答 1

0

您需要弄清楚的第一件事是如何相乘,因为您没有操作码可以这样做。您可以执行以下操作:

loop   add mul1 to result
       subtract 1 from mul2
       if counter is greater zero jump to loop

您尝试计算 mul1 * mul2 的位置,当循环退出时,您的答案将得到结果。

现在您需要弄清楚如何进行阶乘。使用我刚刚写的乘法会是这样的:

       load num
       set i = num
top    multipy num and  i
       subtract 1 from i
       if i is greater than 0 jump to top

现在要把它翻译成你的汇编器的操作码,我不打算这样做。我不太了解它,即有多少寄存器,什么是操作码规范等,因为有许多不同种类的汇编代码。

帮助我开始使用 ASM 的主要因素是将任务分解为更小、更易于管理的任务。祝你好运!

于 2013-03-03T21:10:04.593 回答