30 lines
630 B
Python
30 lines
630 B
Python
CMDs = ["eq", "halt"] # , 'en', 'gt', 'lt', 'ge', 'le']
|
|
|
|
|
|
def CheckArg(operand):
|
|
run = False
|
|
if operand[0].isRegister():
|
|
if operand[1].isRegister():
|
|
run = True
|
|
elif operand[0].isRegister():
|
|
if operand[1].isImmediate():
|
|
run = True
|
|
else:
|
|
raise BadOperand()
|
|
return run
|
|
|
|
|
|
def eq(self, operand):
|
|
if CheckArg(operand) and operand[2].isRegister():
|
|
# 是否等于
|
|
a = operand[0].get()
|
|
b = operand[1].get
|
|
if a == b:
|
|
operand[2].set(1)
|
|
else:
|
|
operand[2].set(0)
|
|
|
|
|
|
def halt(self, operand):
|
|
return False
|