📄 common_iacxl10_2004_3_16.h
字号:
#ifndef COMMON_H#define COMMON_H#define PC 15#define LR 14#define fiq 0#define svc 1#define abt 2#define irq 3#define und 4typedef unsigned long UNL;typedef unsigned char UCR;typedef unsigned long long UNLL;struct bit_stru{ unsigned b : 1; operator unsigned (); void operator =(int);};struct bit32_stru{ bit_stru bits[32]; bit_stru& operator [] (int index); void operator = (long t); operator long (); void rotate(int); int operator + (bit32_stru a );};struct CPSR_stru{ unsigned M :5; unsigned T :1; unsigned F :1; unsigned I :1; unsigned DNM :19; unsigned Q :1; unsigned V :1; unsigned C :1; unsigned Z :1; unsigned N :1; void operator = ( UNL ); operator UNL ();};struct common_dec_stru{ unsigned mcoder:3; unsigned flags :4; void operator = (UNL instruct);};struct miscell_stru{ unsigned SBZ1 : 4; unsigned b7 : 4; unsigned SBZ2 : 4; unsigned Rd1 : 4; unsigned SBO1 : 4; unsigned b21 : 1; unsigned R : 1; unsigned Rm : 4; unsigned SBO2 : 4; unsigned mask : 4; unsigned SBO3 : 4; unsigned Rn1 : 4; unsigned op : 2; unsigned imm1 : 4; unsigned imm2 : 12; unsigned Rs : 4; unsigned Rn2 : 4; unsigned Rd2 : 4; void operator = (UNL);};struct mul_ext_stru{ unsigned Rm : 4; unsigned b7 : 4; unsigned Rs : 4; unsigned Rn1 : 4; unsigned Rd1 : 4; unsigned S1 : 1; unsigned A : 1; unsigned b23 : 1; unsigned b24 : 1; unsigned Rdlo : 4; unsigned Rdhi : 4; unsigned U1 : 1; unsigned SBZ : 4; unsigned Rd2 : 4; unsigned Rn2 : 4; unsigned B : 1; unsigned L : 1; unsigned W : 1; unsigned b22 : 1; unsigned U2 : 1; unsigned P : 1; unsigned Loffset : 4; unsigned Hioffset : 4; unsigned S2 : 1; unsigned H : 1; void operator = (UNL);};struct ARM_type0_stru{ unsigned Rm : 4; unsigned b4 : 1; unsigned shift : 2; unsigned shiftm : 5; unsigned Rd : 4; unsigned Rn : 4; unsigned S : 1; unsigned opcode : 4; unsigned b7 : 1; unsigned Rs : 4; miscell_stru mis; mul_ext_stru mul_ext; void operator = (UNL);};struct ARM_type1_stru{ unsigned imm : 8; unsigned rotate : 4; unsigned Rd : 4; unsigned Rn : 4; unsigned S : 1; unsigned opcode : 4; unsigned SBO : 4; unsigned mask : 4; unsigned b21 : 2; unsigned R : 1; unsigned b24 : 2; void operator =(UNL );};struct ARM_type2_stru{ unsigned imm : 12; unsigned Rd : 4; unsigned Rn : 4; unsigned L : 1; unsigned W : 1; unsigned B : 1; unsigned U : 1; unsigned P : 1; void operator = (UNL instr);};struct ARM_type3_stru{ unsigned Rm : 4; unsigned b4 : 1; unsigned shift : 2; unsigned shiftm : 5; unsigned Rd : 4; unsigned Rn : 4; unsigned L : 1; unsigned W : 1; unsigned B : 1; unsigned U : 1; unsigned P : 1; void operator = (UNL); operator UNL();};struct ARM_type4_stru{ unsigned reg_list : 16; unsigned Rn : 4; unsigned L : 1; unsigned W : 1; unsigned S : 1; unsigned U : 1; unsigned P : 1; void operator = (UNL);};struct ARM_type5_stru{ unsigned offset : 24; unsigned L : 1; unsigned H : 1; void operator = (UNL instr);};struct ARM_type6_stru{ unsigned offset : 8; unsigned cp_num : 4; unsigned cRd : 4; unsigned Rn : 4; unsigned L : 1; unsigned W : 1; unsigned N : 1; unsigned U : 1; unsigned P : 1; void operator = (UNL);};struct ARM_type7_stru{ unsigned CRm : 4; unsigned b4 : 1; unsigned opcode2 : 4; unsigned cp_num : 4; unsigned cRd : 4; unsigned cRn : 4; unsigned opcode11 : 4; unsigned Rd : 4; unsigned L : 1; unsigned opcode12 : 3; unsigned swinum : 24; unsigned b24 : 1; void operator =(UNL instr);};struct shifter_stru{ long operand ; unsigned carry_out:1;}; struct result_stru{ int index; long address; void reset();};struct str_stru{ char* data; str_stru(char*); operator char* (); void operator = ( char* ); void operator + (char*);};struct addr_stru{ UNL start; UNL end;};struct instruct_reg_stru{ long instruct; bool valid; void operator =(UNL); void operator =(bool); operator UNL ();};struct oper_info_stru{ long data; bool type; bool valid; operator long (); void operator = (long data_);};struct shifter_oper_info_stru{ long data; bool type;//0-register number; 1-immediate or else; bool valid; int mode; int mount; operator long (); void operator = (long data_);};//实际中没有用到;struct Thu_common_stru{ unsigned mcoder : 3; void operator = (UNL); operator UNL ();};struct Thu_type1_stru{ UNL Rd : 3; UNL Rm1 : 3; UNL imm1 : 5; UNL opcode : 2; UNL Rn : 3; UNL Rm2 : 3; UNL opc : 1; UNL b10 : 1; UNL imm2 : 3; void operator = (UNL);};struct Thu_type2_stru{ UNL imm : 8; UNL Rd_Rn : 3; UNL opcode : 2; void operator = (UNL);};struct Thu_type3_stru{ UNL Rd_Rn : 3; UNL Rm_Rs : 3; UNL opcode1 : 4; UNL b3 : 3; UNL Rm1 : 3; UNL H2 : 1; UNL H1 : 1; UNL opcode2 : 2; UNL SBZ : 3; UNL L : 1; UNL PC_R_OFF : 8; UNL Rd1 : 3; UNL Rd2 : 3; UNL Rn : 3; UNL Rm2 : 3; UNL opcode3 : 3; void operator = (UNL);};struct Thu_type4_stru{ UNL Rd : 3; UNL Rn : 3; UNL offset : 5; UNL L : 1; UNL B : 1; void operator = (UNL);};struct Thu_type5_stru{ UNL Rd1 : 3; UNL Rn : 3; UNL offset : 5; UNL L : 1; UNL b12 : 1; UNL SP_R_OFF : 8; UNL Rd2 : 3; void operator = (UNL);};struct Thu_oth_stru{ UNL imm1 : 7; UNL opc : 1; UNL b4 : 4; UNL reg_list : 8; UNL R : 1; UNL L : 1; UNL imm2 : 8; void operator = (UNL);}; struct Thu_type6_stru{ UNL imm : 8; UNL Rd : 3; UNL SP : 1; UNL b12 : 1; Thu_oth_stru oth; void operator = (UNL);};struct Thu_type7_stru{ UNL reg_list : 8; UNL Rn : 3; UNL L : 1; UNL b12 : 1; UNL offset : 8; UNL cond : 4; UNL undef : 8; UNL oth : 4; UNL imm : 8; void operator = (UNL);};struct Thu_type8_stru{ UNL offset1 : 11; UNL bh : 2; UNL b0 : 1; UNL offset2 : 10; void operator = (UNL);};int count1(long t);//计算变量t中有多少个1; #endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -