⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 asml_c.cpp

📁 MCS51单片机的宏汇编器源程序。有需要的朋友请下载!
💻 CPP
字号:
//---------------------------------------------------------------------------
//-------- AsmL_C.cpp -------------------------------------------------------
//---------------------------------------------------------------------------

#include "AsmL_H.h"
#include "OBJrecord_H.h"
#include "ASM_Segment_H.h"
//---------------------------------------------------------------------------

//----- 构造器 --------------------------------------------------------------
AsmLine::AsmLine():next(NULL), LineNo(0), NestNo(0),
                   lc(0), len(0), sgpt(NULL),
                   Lflag(0x01)
{ tail = head = new Tokenfield; // 建立头节点, 尾指针指向头节点
  head->Token = 0;              // 头节点的Token是0。
  head->next  = NULL;
} // end constructor
//---------------------------------------------------------------------------

//----- 销毁器 --------------------------------------------------------------
AsmLine::~AsmLine()
{ while(head)
   { register Tokenfield* p = head->next;
     delete head; head = p;
   } // end while
} // end destructor
//---------------------------------------------------------------------------

//---------------------------------------------------------------------------
// 往Token序列表添加结点.
// 输入:token, word, val.
// word 不受影响.
// 自动完成Token链表的组织构造。
//---------------------------------------------------------------------------
void AsmLine::AddTokenfield(int16u token, const Jstring& word, int32u val)
{ Tokenfield& newfield = *new Tokenfield;
  newfield.evaluate(token, val, word);
  tail->next  = &newfield;    // 连接到表尾。
  tail        = &newfield;    // 移动表尾指针。
} // end AddTokenfield
//---------------------------------------------------------------------------



//---------------------------------------------------------------------------
void AsmLine::show()const
{ printf("\n[%4.4d][%d]: Enable=%c, IsOK=%c, Seg=[%s], lc=%xH len=%d Unsm=%d hide=%d next=%p",
           LineNo,NestNo, Enable?'Y':'N', IsOK?'Y':'N',
           sgpt ? (const char*)sgpt->Name : "NULL", lc, len, Unsm, hideln, next);
  printf("\n[Line Header:]"); head->show();

  // if(Enable) { showTknList(); } // endif
  showTknList();
} // end show
//---------------------------------------------------------------------------


//---------------------------------------------------------------------------
// 从链头开始的Token节点直到链尾, 在屏幕上显示出来.
//---------------------------------------------------------------------------
void AsmLine::showTknList()const
{ //if(!Enable) { return; } // endif
  printf("\n------- Listhead: -----------");
  int16u count = 1;
  for(Tokenfield* pt = head->next; pt; pt = pt->next )
   { printf("\n[%u]:",count++);
     pt->show();
   } // end for
  printf("\n------- Listtail. -----------"); Debugkey;
} // end showTknList
//---------------------------------------------------------------------------

//---------------------------------------------------------------------------
// end AsmL_C.cpp
//---------------------------------------------------------------------------
//               Written by JamesyFront.    ZLGmcu Dev.Co.Ltd.  2002.
//---------------------------------------------------------------------------












⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -