Assembly MARIE中的重复减法除法
我正试图用MARIE汇编语言编写一个程序,使用重复减法将两个数字相除。在达到零或负数之前,我需要计算所需的减法次数。我在这方面有一些问题,以下是我目前的代码:Assembly MARIE中的重复减法除法,assembly,marie,Assembly,Marie,我正试图用MARIE汇编语言编写一个程序,使用重复减法将两个数字相除。在达到零或负数之前,我需要计算所需的减法次数。我在这方面有一些问题,以下是我目前的代码: Load A Store A Load, Load A Subt B Skipcond 800 Jump Endloop Load C Add One Store C Endloop, Output H
Load A
Store A
Load, Load A
Subt B
Skipcond 800
Jump Endloop
Load C
Add One
Store C
Endloop, Output
Halt
A, DEC 10
B, DEC 2
C, DEC 0
One, DEC 1
任何帮助都将不胜感激,因为我已经为此奋斗了一段时间
更新:
我已经改变了我的代码,但现在得到了一个无限循环-有什么办法可以解决这个问题吗
Input
Store A
Input
Store B
Load A
Skipcond 800
Jump Endloop
Loop, Subt B
Store A
Load X
Add One
Store X
Load A
Skipcond 400
Jump Loop
Load X
Endloop, Halt
A, DEC 0
B, DEC 0
X, DEC 0
One, DEC 1
如果数字不能被除法器整除,则使用
Skipcond 400
将有一个无止境的循环,因为它将变为负而不是零
当余数不能被B整除时,需要注意不要增加X。因此,对等于零的余数进行检查,以便当a不再为正时,可以增加X
Input
Store A
Input
Store B
Loop, Load A
Subt B
Store A
Skipcond 800
Jump Endloop / While X is positive it will continue
Load X
Add One
Store X
Jump Loop
IncrementX, Load X
Add One
Store X
Load A
Subt B
Store A
Endloop, Load A
Skipcond 000 /Skip if negative
Jump IncrementX
Load X
Output
Halt
A, DEC 0
B, DEC 0
X, DEC 0
One, DEC 1
我看不到你在绕圈子。除此之外,它看起来有点理智。当然,你会想要输出
C
。我已经更改了代码,但是现在得到了一个无限循环-知道我做错了什么吗?