def decode_movff(obj,fd,fs): if fs>>8==0xf: src = env.getreg(0,fs&0xff) else: src = env.mem(env.cst(fs,12),8) if fd>>8==0xf: dst = env.getreg(0,fd&0xff) else: dst = env.mem(env.cst(fd,12),8) if dst in (env.pcl, env.tosu, env.tosh, env.tosl): raise InstructionError(obj) obj.src = check_virtual(obj,src) obj.dst = check_virtual(obj,dst) obj.operands = [src,dst] obj.type = type_data_processing
def byte_oriented(obj, d, a, f): src = env.getreg(a, f) obj.d = d obj.a = a obj.src = check_virtual(obj, src) obj.dst = env.wreg if d == 0 else obj.src obj.operands = [src] obj.type = type_control_flow
def bit_oriented(obj, b, a, f): dst = env.getreg(a, f) obj.dst = check_virtual(obj, dst) obj.a = a obj.b = b obj.operands = [dst, b]