0
ORG 100 /Start Here

INPUT

Store X /Store 1st input value in X

INPUT

Store Y / Store 2nd input value in Y

choice, INPUT

Store C /Store choice in C

if, Load C

Subt A

Skipcond 400

Jump elseif1

JnS ADDITION /Call subroutine

Jump end

elseif1, Load C

Subt S

Skipcond 400

Jump elseif2

JnS SUBTRACT /Call subroutine

Jump end

elseif2, Load C

Subt M

Skipcond 400

Jump elseif3

JnS MULTIPLY /Call subroutine

Jump end

elseif3, Load C

Subt D

Skipcond 400

Jump elseif4

JnS DIVISION /Call subroutine

Jump end

elseif4, Load C

Subt Q

Skipcond 400

Jump choice /re-enter choice

Halt /stop the program

end, Output /Display the value

Halt /Stop

X, DEC 0

Y, DEC 0

C, DEC 0

/add two numbers

ADDITION Load X   

Add Y

JumpI ADDITION / Indirect jump to return.

/subtract two numbers

SUBTRACT Load X   

Subt Y

JumpI SUBTRACT / Indirect jump to return.

/multiply two numbers using continuous add loop

MULTIPLY loop, Load num

Add X

Store num

Load Y

Subt one

Store Y

Skipcond 400

Jump loop

Load num

JumpI MULTIPLY / Indirect jump to return.

/divide two numbers and return the quotient

DIVIDE If, Load X

Subt Y

Skipcond 800  

Jump EndIf   

Store X

Load quo

Add one

Store quo

Jump If

EndIf, Load quo

JumpI DIVIDE / Indirect jump to return.

/constants values

one, DEC 1

num, DEC 0

rem, DEC 0

quo, DEC 0

A, DEC 97 /a

M, DEC 109 /m

S, DEC 115 /s

D, DEC 100 /d

Q, DEC 113 /q

这是一个可以加减乘除的计算器。一旦用户完成了一个操作数,它也应该直接转到下一个,但它给了我错误,我似乎无法修复它们。在我看来一切都很好,但它一直说“操作数未定义”。我确定这对其他人来说是一个明显的错误,但我似乎无法修复它。希望有人可以帮助我解决这个问题!谢谢!

4

0 回答 0