예제 #1
0
파일: spec_mostek.py 프로젝트: xorpse/amoco
def mostek_ld(obj, d, n):
    base = obj.misc["pfx"]
    if base is None:
        raise InstructionError(obj)
    disp = env.cst(d, 8).signextend(16)
    obj.operands = [env.mem(base, 8, disp=disp.value), env.cst(n, 8)]
    obj.type = type_data_processing
예제 #2
0
def mostek_rotshift(obj,r,d):
    base = obj.misc['pfx']
    if base is None: raise InstructionError(obj)
    disp = env.cst(d,8).signextend(16)
    op1 = env.mem(base,8,disp=disp.value)
    obj.operands = [op1]
    if r!=0b110: obj.operands.append(getreg8(obj,r))
    obj.type = type_data_processing
예제 #3
0
def mostek_bitset(obj,d,b):
    op1 = env.cst(b,3)
    base = obj.misc['pfx']
    if base is None: raise InstructionError(obj)
    disp = env.cst(d,8).signextend(16)
    op2 = env.mem(base,8,disp=disp.value)
    obj.operands = [op1,op2]
    obj.type = type_data_processing
예제 #4
0
def mostek_rotshift(obj, r, d):
    base = obj.misc['pfx']
    if base is None: raise InstructionError(obj)
    disp = env.cst(d, 8).signextend(16)
    op1 = env.mem(base, 8, disp=disp.value)
    obj.operands = [op1]
    if r != 0b110: obj.operands.append(getreg8(obj, r))
    obj.type = type_data_processing
예제 #5
0
def mostek_bitset(obj, d, b):
    op1 = env.cst(b, 3)
    base = obj.misc['pfx']
    if base is None: raise InstructionError(obj)
    disp = env.cst(d, 8).signextend(16)
    op2 = env.mem(base, 8, disp=disp.value)
    obj.operands = [op1, op2]
    obj.type = type_data_processing
예제 #6
0
def mostek_arithmetic(obj,d):
    if obj.misc['pfx'] is None: raise InstructionError(obj)
    base = obj.misc['pfx']
    disp = env.cst(d,8).signextend(16)
    src = env.mem(base,8,disp=disp.value)
    obj.operands = [env.a,src]
    if obj.mnemonic in ('INC','DEC'): obj.operands.pop(0)
    obj.type = type_data_processing
예제 #7
0
def mostek_arithmetic(obj, d):
    if obj.misc['pfx'] is None: raise InstructionError(obj)
    base = obj.misc['pfx']
    disp = env.cst(d, 8).signextend(16)
    src = env.mem(base, 8, disp=disp.value)
    obj.operands = [env.a, src]
    if obj.mnemonic in ('INC', 'DEC'): obj.operands.pop(0)
    obj.type = type_data_processing
예제 #8
0
파일: spec_mostek.py 프로젝트: xorpse/amoco
def mostek_ld(obj, d, rs):
    x = obj.misc["pfx"]
    if rs == 0b110 or x is None:
        raise InstructionError(obj)
    src = env.reg8[rs]
    disp = env.cst(d, 8).signextend(16)
    dst = env.mem(x, 8, disp=disp.value)
    obj.operands = [dst, src]
    obj.type = type_data_processing
예제 #9
0
def mostek_ld(obj,d,rs):
    x = obj.misc['pfx']
    if rs==0b110 or x is None:
        raise InstructionError(obj)
    src = env.reg8[rs]
    disp = env.cst(d,8).signextend(16)
    dst = env.mem(x,8,disp=disp.value)
    obj.operands = [dst,src]
    obj.type = type_data_processing
예제 #10
0
파일: spec_mostek.py 프로젝트: xorpse/amoco
def getreg8(obj, x):
    r = env.reg8[x]
    p = obj.misc["pfx"]
    if p is not None:
        if x == 0b110:
            return env.mem(p, 8)
        elif r == env.l:
            if p == env.ix:
                return env.ixl
            else:
                return env.iyl
        elif r == env.h:
            if p == env.ix:
                return env.ixh
            else:
                return env.iyh
    return r
예제 #11
0
def getreg8(obj,x):
    r = env.reg8[x]
    p = obj.misc['pfx']
    if p is not None:
        if x == 0b110:
            return env.mem(p,8)
        elif r is env.l:
            if p is env.ix:
                return env.ixl
            else:
                return env.iyl
        elif r is env.h:
            if p is env.ix:
                return env.ixh
            else:
                return env.iyh
    return r
예제 #12
0
파일: spec_gb.py 프로젝트: zachriggle/amoco
def mostek_ld(obj):
    base = env.composer([env.c, env.cst(0xff,8)])
    obj.operands = [env.mem(base,8), env.a]
    obj.type = type_data_processing
예제 #13
0
파일: spec_mostek.py 프로젝트: xorpse/amoco
def mostek_ld(obj):
    src = getreg16(obj, 0b10)
    obj.operands = [env.mem(env.sp, 16), src]
    obj.type = type_data_processing
예제 #14
0
파일: spec_mostek.py 프로젝트: xorpse/amoco
def mostek_ld(obj, dd, rev, nn):
    obj.operands = [getreg16(obj, dd), env.mem(env.cst(nn, 16), 16)]
    if not rev:
        obj.operands.reverse()
    obj.type = type_data_processing
예제 #15
0
파일: spec_mostek.py 프로젝트: xorpse/amoco
def mostek_ld(obj, rev, nn):
    obj.operands = [env.mem(env.cst(nn, 16), 8), env.a]
    if rev:
        obj.operands.reverse()
    obj.type = type_data_processing
예제 #16
0
def mostek_ld(obj,d,n):
    base = obj.misc['pfx']
    if base is None: raise InstructionError(obj)
    disp = env.cst(d,8).signextend(16)
    obj.operands = [env.mem(base,8,disp=disp.value),env.cst(n,8)]
    obj.type = type_data_processing
예제 #17
0
파일: spec_gb.py 프로젝트: zachriggle/amoco
def mostek_ld(obj,b,rev):
    base = env.reg16[b]
    obj.operands = [env.mem(base,8), env.a]
    if rev: obj.operands.reverse()
    obj.type = type_data_processing
예제 #18
0
파일: spec_gb.py 프로젝트: zachriggle/amoco
def mostek_ld(obj,nn):
    obj.operands = [env.mem(env.cst(nn,16),16), env.sp]
    obj.type = type_data_processing
예제 #19
0
def mostek_ld(obj,rev,nn):
    obj.operands = [env.mem(env.cst(nn,16),8), env.a]
    if rev: obj.operands.reverse()
    obj.type = type_data_processing
예제 #20
0
def mostek_ld(obj,nn):
    obj.operands = [env.mem(env.cst(nn,16),16), env.sp]
    obj.type = type_data_processing
예제 #21
0
def mostek_ld(obj,n):
    base = env.cst(n,16)
    obj.operands = [env.mem(base,8), env.a]
    obj.type = type_data_processing
예제 #22
0
def mostek_ld(obj):
    base = env.composer([env.c, env.cst(0xff,8)])
    obj.operands = [env.mem(base,8), env.a]
    obj.type = type_data_processing
예제 #23
0
def mostek_ld(obj,dd,rev,nn):
    obj.operands = [getreg16(obj,dd),env.mem(env.cst(nn,16),16)]
    if not rev: obj.operands.reverse()
    obj.type = type_data_processing
예제 #24
0
def mostek_ld(obj):
    src = getreg16(obj,0b10)
    obj.operands = [env.mem(env.sp,16),src]
    obj.type = type_data_processing
예제 #25
0
def mostek_ld(obj,n):
    base = env.cst(0xff00,16)+n
    obj.operands = [env.a, env.mem(base,8)]
    obj.type = type_data_processing
예제 #26
0
파일: spec_gb.py 프로젝트: zachriggle/amoco
def mostek_ld(obj,n):
    base = env.cst(0xff00,16)+n
    obj.operands = [env.a, env.mem(base,8)]
    obj.type = type_data_processing
예제 #27
0
def mostek_ld(obj,rev,nn):
    dst = getreg16(obj,0b10)
    obj.operands = [dst,env.mem(env.cst(nn,16),16)]
    if not rev: obj.operands.reverse()
    obj.type = type_data_processing
예제 #28
0
파일: spec_gb.py 프로젝트: zachriggle/amoco
def mostek_ld(obj,n):
    base = env.cst(n,16)
    obj.operands = [env.mem(base,8), env.a]
    obj.type = type_data_processing
예제 #29
0
def mostek_ld(obj,b,rev):
    base = env.reg16[b]
    obj.operands = [env.mem(base,8), env.a]
    if rev: obj.operands.reverse()
    obj.type = type_data_processing
예제 #30
0
파일: spec_gb.py 프로젝트: zachriggle/amoco
def mostek_ld(obj,rev,nn):
    dst = getreg16(obj,0b10)
    obj.operands = [dst,env.mem(env.cst(nn,16),16)]
    if not rev: obj.operands.reverse()
    obj.type = type_data_processing