У меня проблема с созданием моего калькулятора, который у меня есть ниже, go от одного ввода / di git до четырех вычислений ввода / di git. Я не совсем понимаю, из-за чего мой профессор получил десятки л oop или что-то в этом роде и такой язык невозможно найти ответы для онлайн.
.ORIG x3000
;initializes all registers to zero
AND R0, R0, #0
AND R1, R1, #0
AND R2, R2, #0
AND R3, R3, #0
AND R4, R4, #0
AND R5, R5, #0
AND R6, R6, #0
AND R7, R7, #0
;this block will ask for user input then display it to the monitor
LEA R0, PROMPT ;Save the location of the prompt
PUTS ;Print the prompt to the screen
GETC ;Store the character into R0
OUT
LD R6,MINUS30
ADD R1,R0,R6 ;R1 contains first operand
LEA R0, PROMPT
PUTS
GETC
OUT
ADD R2,R0,R6 ;R2 contains the second operand
OPERATOR
LEA R0, PROMPT2
PUTS
GETC
OUT
;Check for addition
LD R3,ADDING
ADD R3,R0,R3
BRz ADDITION
;Check for subtraction
LD R3, SUBTRACT
ADD R3,R0,R3
BRz SUBTRACTION
;Check for multiplication
LD R3,MULTI
ADD R3,R0,R3
BRz MULTIPLICATION
;Check for division
LD R3, DIVIDE
ADD R3,R0,R3
BRz DIVISION
;Invalid Operator
LEA R0,INVALIDOP
PUTS
BRz OPERATOR
;Here are the operations
;R1 and R2 are operands, R5 hold the answer
ADDITION ADD R5, R1, R2
BR DISPLAY
SUBTRACTION NOT R3, R2
ADD R3, R3, #1
ADD R5, R1, R3
BR DISPLAY
MULTIPLICATION
AND R3, R3, #0
MULTIPLY
ADD R3, R1, R3
ADD R2, R2, #-1
BRp MULTIPLY
ADD R5, R3, #0
BR DISPLAY
DIVISION
AND R5, R5, #0
NOT R3, R2
ADD R3,R3, #1
DIV
ADD R1, R1, R3
BRn DTWO
ADD R5,R5, #1
BR DIV
DTWO
BR DISPLAY
;R0 contains the character to display
DISPLAY
LEA R0, RESULT
PUTS
LD R4, PLUS30
ADD R0, R5, R4
OUT
DONE HALT
PLUS30 .FILL x30
MINUS30 .FILL x-30
MULTI .FILL x-2A
ADDING .FILL x-2B
SUBTRACT .FILL x-2D
DIVIDE .FILL x-2F
PROMPT .STRINGZ "\n Enter a number: "
PROMPT2 .STRINGZ "\n Enter the operator(+,-,*,/):"
INVALIDOP .STRINGZ "\n Invalid operation"
RESULT .STRINGZ "\n The result of the operation is: "
.END