使用 Marie Simulator 进行除法

问题描述 投票:0回答:4

我无法确定 Marie Sim 的划分。我不想要-1,但它一直显示负值。我只想要最多 2 个。有什么建议吗?

这是我的代码:

ORG 100
Input 
Store   x
Input   
Store   y
loop, load x
Subt    y
Store   x
Load    x
Output
Skipcond 0
Jump    loop
Load    x
Halt
x,  Dec     0 
y,  Dec     0 

输出: 11 8 5 2 -1

divide marie
4个回答
1
投票

我注意到如果程序在除法时遇到余数,上面的一些响应会创建无限循环。我解决了这个问题,我的程序分别输出结果和余数 2 个十进制值。

这是一篇非常老的帖子,但希望这对 Assembly 的新手有用。

INPUT
STORE x
INPUT
STORE y

loop, Load x
If, Subt y
    Skipcond 000
    Jump Else
Then, Jump Endif
Else, Store x
    Load Counter
    Add One
    Store Counter
    Jump loop
Endif, Load Counter
Output
Load x
Output
HALT
    
x, Dec 0
y, Dec 0
Counter, Dec 0
One, Dec 1

0
投票

//下面的代码解决了您的问题,但只要除法问题有余数,就会创建无限循环。

ORG 100
INPUT
STORE x
INPUT
STORE y
loop, LOAD x
SUBT y
STORE x
SKIPCOND 000
OUTPUT
SKIPCOND 400
JUMP loop
HALT
x, Dec 0
y, Dec 0

0
投票

试试这个:

Input 
Store   x
Input   
Store   y
loop, load x
Subt    y
Store   x
Load    x
Output
Skipcond 400
Jump    loop
Load    x
Halt
x,  Dec     0 
y,  Dec     0

-2
投票
ORG 100


input
store var1
input
store var2
loop, load var1

Subt var2

Store var1
Store remain


load qout
Add one
Store qout

Load remain
Subt var2
Skipcond 000
Jump loop


load qout
output

load remain
output

halt


var1, dec 0

var2, dec 0
one, dec 1
remain, dec 0
qout, dec 0
© www.soinside.com 2019 - 2024. All rights reserved.