📄 dat4ary_h.h
字号:
//---------------------------------------------------------------------------
//-------- Dat4ary_H.h ------------------------------------------------------
//---------------------------------------------------------------------------
#ifndef Dat4ary_H.h // 防止被重复引用
#define Dat4ary_H.h
//---------------------------------------------------------------------------
#include "Jstring_H.h"
#include "Tokenfield_H.h"
#include "OBJModule_H.h"
#include "TriVal_H.h"
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
// 该结构用于Fixup Record。
//---------------------------------------------------------------------------
class OpndFixRec : public JObject
{ public:
int16u RefLoc; // 参考位置
int8u RefTyp; // 0 ~ 7 (RefTyp_LOW, RefTyp_BYTE, ... RefTyp_CONV)
int8u rel; // IDBLK_SEG_OPND, IDBLK_REL_OPND, IDBLK_EXT_OPND
int16u Offset; // Value (16-bit)
int16u RefID; // 参考ID
void Set(int16u loc, int8u typ, int8u r, int16u v, int16u id)
{ RefLoc = loc;
RefTyp = typ;
rel = r;
Offset = v;
RefID = id;
} // end Set
// ---------------------------------
void show()const;
}; // end OpndFixRec
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
// 该结构用于OBJcode。
//---------------------------------------------------------------------------
class Dat4ary
{ public:
union // (32-bit)
{ int8u dat[4]; // dat[0~2]存数据,dat[3]存长度。
int32u data; // 整体赋值用。
}; // end union
OpndFixRec* Fix; // 指向OpndFixRec的指针。(NULL)
// ------- constructor ---------
Dat4ary():data(0),Fix(NULL) {} // constructor
~Dat4ary() { delete Fix; } // destructor
// ------- public functions ---------
ERR ByteSettle(const TriVal& trv, int16u reflc)
{ dat[3] = 1; // len = 1, 因为是DB。
return BytePosSettle(trv, 0, reflc);
} // end ByteSettle
ERR WordSettle(const TriVal& trv, int16u reflc)
{ dat[3] = 2; // len = 2, 因为是DW。
return WordPosSettle(trv, 0, reflc);
} // end WordSettle
ERR BytePosSettle(const TriVal& trv, int8u pos, int16u reflc);
ERR WordPosSettle(const TriVal& trv, int8u pos, int16u reflc);
ERR H3L8Settle(const TriVal& trv, int16u reflc);
// ----------------------------
void show()const;
}; // Dat4ary
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
#endif
//---------------------------------------------------------------------------
// Written by JamesyFront. ZLGmcu Dev.Co.Ltd. 2002.
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -