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

📄 dat4ary_h.h

📁 MCS51单片机的宏汇编器源程序。有需要的朋友请下载!
💻 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 + -