#include #include #include #include #include "instructions.h" int GetInstruction(shcommand_t command){ //Data Transfer Instructions if(command.n1 == 0x6 && command.n4 == 0x3){ return MOV_R_R; } else if(command.n1 == 0xE){ return MOV_B_R; } else if(command.b1 == 0xC7){ return MOVA_PC_R0; } else if(command.n1 == 0x9){ return MOVW_PC_R; } else if(command.n1 == 0xD){ return MOVL_PC_R; } else if(command.n1 == 0x6 && command.n4 == 0x0){ return MOVB_aR_R; } else if(command.n1 == 0x6 && command.n4 == 0x1){ return MOVW_aR_R; } else if(command.n1 == 0x6 && command.n4 == 0x2){ return MOVL_aR_R; } else if(command.n1 == 0x2 && command.n4 == 0x0){ return MOVB_R_aR; } else if(command.n1 == 0x2 && command.n4 == 0x1){ return MOVW_R_aR; } else if(command.n1 == 0x2 && command.n4 == 0x2){ return MOVL_R_aR; } else if(command.n1 == 0x6 && command.n4 == 0x4){ return MOVB_aRp_R; } else if(command.n1 == 0x6 && command.n4 == 0x5){ return MOVW_aRp_R; } else if(command.n1 == 0x6 && command.n4 == 0x6){ return MOVL_aRp_R; } else if(command.n1 == 0x2 && command.n4 == 0x4){ return MOVB_R_amR; } else if(command.n1 == 0x2 && command.n4 == 0x5){ return MOVW_R_amR; } else if(command.n1 == 0x2 && command.n4 == 0x6){ return MOVL_R_amR; } else if(command.b1 == 0x84){ return MOVB_PCR_R0; } else if(command.b1 == 0x84){ return MOVW_PCR_R0; } else if(command.n1 == 0x5){ return MOVL_PCR_R; } else if(command.b1 == 0x81){ return MOVW_R0_PCR; } else if(command.n1 == 0x1){ return MOVL_R_PCR; } else if(command.n1 == 0x0 && command.n4 == 0xC){ return MOVB_R0R_R; } else if(command.n1 == 0x0 && command.n4 == 0xD){ return MOVW_R0R_R; } else if(command.n1 == 0x0 && command.n4 == 0xE){ return MOVL_R0R_R; } else if(command.n1 == 0x0 && command.n4 == 0x4){ return MOVB_R_R0R; } else if(command.n1 == 0x0 && command.n4 == 0x5){ return MOVW_R_R0R; } else if(command.n1 == 0x0 && command.n4 == 0x6){ return MOVL_R_R0R; } else if(command.b1 == 0xC4){ return MOVB_PCGBR_R0; } else if(command.b1 == 0xC5){ return MOVW_PCGBR_R0; } else if(command.b1 == 0xC6){ return MOVL_PCGBR_R0; } else if(command.b1 == 0xC0){ return MOVB_R0_PCGBR; } else if(command.b1 == 0xC1){ return MOVW_R0_PCGBR; } else if(command.b1 == 0xC2){ return MOVL_R0_PCGBR; } else if(command.n1 == 0x0 && command.b2 == 0x73){ return MOVCOL_R0_aR; } else if(command.n1 == 0x0 && command.b2 == 0x63){ return MOVLIL_aR_R0; } else if(command.n1 == 0x4 && command.b2 == 0xA9){ return MOVUAL_aR_R0; } else if(command.n1 == 0x4 && command.b2 == 0xE9){ return MOVUAL_aRp_R0; } else if(command.n1 == 0x0 && command.b2 == 0x29){ return MOVT_R; } else if(command.n1 == 0x6 && command.n4 == 0x8){ return SWAPB_R_R; } else if(command.n1 == 0x6 && command.n4 == 0x9){ return SWAPW_R_R; } else if(command.n1 == 0x2 && command.n4 == 0xD){ return XTRCT_R_R; } }