BX_INSF_TYPE BX_CPP_AttrRegparmN(1) BX_CPU_C::SETZ_EbM(bxInstruction_c *i) { bx_address eaddr = BX_CPU_CALL_METHODR(i->ResolveModrm, (i)); Bit8u result_8 = getB_ZF(); write_virtual_byte(i->seg(), eaddr, result_8); BX_NEXT_INSTR(i); }
void bx_cpu_c::MOV_ObAL(BxInstruction_t *i) { Bit8u temp_8; Bit32u addr_32; addr_32 = i->Id; /* read from register */ temp_8 = AL; /* write to memory address */ if (!BX_NULL_SEG_REG(i->seg)) { write_virtual_byte(i->seg, addr_32, &temp_8); } else { write_virtual_byte(BX_SEG_REG_DS, addr_32, &temp_8); } }
void BX_CPU_C::MOV_EbIb(bxInstruction_c *i) { Bit8u op2 = i->Ib(); if (i->modC0()) { BX_WRITE_8BIT_REGx(i->rm(), i->extend8bitL(), op2); } else { write_virtual_byte(i->seg(), RMAddr(i), &op2); } }
void bx_cpu_c::MOV_EbIb(BxInstruction_t *i) { Bit8u op2; op2 = i->Ib; /* now write op2 back to destination */ if (i->mod == 0xc0) { BX_WRITE_8BIT_REG(i->rm, op2); } else { write_virtual_byte(i->seg, i->rm_addr, &op2); } }
void bx_cpu_c::MOV_EbGb(BxInstruction_t *i) { Bit8u op2; /* op2 is a register, op2_addr is an index of a register */ op2 = BX_READ_8BIT_REG(i->nnn); /* now write op2 to op1 */ if (i->mod == 0xc0) { BX_WRITE_8BIT_REG(i->rm, op2); } else { write_virtual_byte(i->seg, i->rm_addr, &op2); } }
void BX_CPU_C::SETNB_Eb(bxInstruction_c *i) { Bit8u result_8; if (get_CF()==0) result_8 = 1; else result_8 = 0; /* now write result back to destination */ if (i->modC0()) { BX_WRITE_8BIT_REGx(i->rm(), i->extend8bitL(), result_8); } else { write_virtual_byte(i->seg(), RMAddr(i), &result_8); } }
void bx_cpu_c::SETB_Eb(BxInstruction_t *i) { #if BX_CPU_LEVEL < 3 BX_PANIC(("SETB: not available on < 386")); #else Bit8u result_8; if (get_CF()) result_8 = 1; else result_8 = 0; /* now write result back to destination */ if (i->mod == 0xc0) { BX_WRITE_8BIT_REG(i->rm, result_8); } else { write_virtual_byte(i->seg, i->rm_addr, &result_8); } #endif }
void BX_CPU_C::MOV_OdAL(bxInstruction_c *i) { write_virtual_byte(i->seg(), i->Id(), &AL); }
void BX_CPU_C::MOV_EEbGb(bxInstruction_c *i) { write_virtual_byte(i->seg(), RMAddr(i), &BX_READ_8BIT_REGx(i->nnn(),i->extend8bitL())); }