1 #pragma once 2 #include "Commands/CAssemblerCommand.h" 3 #include "Core/Expression.h" 4 5 class CDirectiveArea: public CAssemblerCommand 6 { 7 public: 8 CDirectiveArea(Expression& size); 9 virtual bool Validate(); 10 virtual void Encode() const; 11 virtual void writeTempData(TempData& tempData) const; 12 virtual void writeSymData(SymbolData& symData) const; 13 void setFillExpression(Expression& exp); setContent(std::unique_ptr<CAssemblerCommand> content)14 void setContent(std::unique_ptr<CAssemblerCommand> content) { this->content = std::move(content); } 15 private: 16 int64_t position; 17 Expression sizeExpression; 18 int64_t areaSize; 19 int64_t contentSize; 20 Expression fillExpression; 21 int8_t fillValue; 22 std::unique_ptr<CAssemblerCommand> content; 23 }; 24