📄 asml_c.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 + -