#include "MOperand.h" using namespace std; MOperand::MOperand(MOperandType mtype, int value) { MOperand::SetOperandType(mtype); MOperand::SetIntValue(value); MOperand::SetOffset(NO_OFFSET); } MOperand::MOperand(MOperandType mtype, float value) { MOperand::SetOperandType(mtype); MOperand::SetRealValue(value); MOperand::SetOffset(NO_OFFSET); } MOperand::MOperand(MOperandType mtype, MRegisterType value) { MOperand::SetOperandType(mtype); MOperand::SetRegisterType(value); MOperand::SetOffset(NO_OFFSET); } MOperand::MOperand(MOperandType mtype, string newLabel) { MOperand::SetOperandType(mtype); MOperand::SetOffset(NO_OFFSET); label = newLabel; } MOperand::MOperand(MOperandType mtype, MRegisterType reg, int offset) { MOperand::SetOperandType(mtype); MOperand::SetRegisterType(reg); MOperand::SetOffset(offset); } // Set operand type handling void MOperand::SetOperandType(MOperandType type) { mType = type; } MOperandType MOperand::GetOperandType() const { return (mType); } // constant value based int MOperand::GetIntValue() const { return (iValue); } void MOperand::SetIntValue(int value) { iValue = value; } float MOperand::GetRealValue() const { return (rValue); } void MOperand::SetRealValue(float value) { rValue = value; } // register entries void MOperand::SetRegisterNumber(int value) { registerNumber = value; } int MOperand::GetRegisterNumber() const { return registerNumber; } void MOperand::SetRegisterType(MRegisterType value) { registerNumber = (int) value; } MRegisterType MOperand::GetRegisterType() const { return ((MRegisterType) registerNumber); } void MOperand::SetOffset(int value) { offset = value; } int MOperand::GetOffset() const { return (offset); } void MOperand::SetAddress(int reg) { address = reg; } void MOperand::SetAddress(MRegisterType reg) { address = (int) reg; } int MOperand::GetAddress() const { return (address); } void MOperand::SetLabel(string newLabel) { label = newLabel; } string MOperand::GetLabel() const { return (label); } // Dump void MOperand::Dump(FILE *file) { }