Ejemplo n.º 1
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
Ejemplo n.º 2
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
Ejemplo n.º 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
Ejemplo n.º 4
0
def mostek_bitset(obj,b,r):
    if obj.misc['pfx'] is not None:
        raise InstructionError(obj)
    op1 = env.cst(b,3)
    op2 = getreg8(obj,r)
    obj.operands = [op1,op2]
    obj.type = type_data_processing
Ejemplo n.º 5
0
def mostek_jump(obj, e):
    # DD/FD prefix are ignored
    disp = env.cst(e, 8)
    obj.operands = [disp]
    if hasattr(obj, "cond"):
        obj.operands.insert(0, obj.cond[0])
    obj.type = type_control_flow
Ejemplo n.º 6
0
def mostek_jump(obj,e):
    # DD/FD prefix are ignored
    disp = env.cst(e,8)
    obj.operands = [disp]
    if hasattr(obj,'cond'):
        obj.operands.insert(0,obj.cond[0])
    obj.type = type_control_flow
Ejemplo n.º 7
0
def mostek_bitset(obj,b,r):
    if obj.misc['pfx'] is not None:
        raise InstructionError(obj)
    op1 = env.cst(b,3)
    op2 = getreg8(obj,r)
    obj.operands = [op1,op2]
    obj.type = type_data_processing
Ejemplo n.º 8
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
Ejemplo n.º 9
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
Ejemplo n.º 10
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
Ejemplo n.º 11
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
Ejemplo n.º 12
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
Ejemplo n.º 13
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
Ejemplo n.º 14
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
Ejemplo n.º 15
0
def mostek_rst(obj, t):
    # DD/FD prefix are ignored
    p = (0x00, 0x08, 0x10, 0x18, 0x20, 0x28, 0x30, 0x38)[t]
    obj.operands = [env.cst(p, 8)]
    obj.type = type_control_flow
Ejemplo n.º 16
0
def mostek_call(obj, nn):
    # DD/FD prefix are ignored
    obj.operands = [env.cst(nn, 16)]
    obj.type = type_control_flow
Ejemplo n.º 17
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
Ejemplo n.º 18
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
Ejemplo n.º 19
0
def mostek_ld(obj,n):
    disp = env.cst(n,8).signextend(16)
    obj.operands = [env.sp, disp]
    obj.type = type_data_processing
Ejemplo n.º 20
0
def mostek_ld(obj,dd,nn):
    dst = getreg16(obj,dd)
    obj.operands = [dst,env.cst(nn,16)]
    obj.type = type_data_processing
Ejemplo n.º 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
Ejemplo n.º 22
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
Ejemplo n.º 23
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
Ejemplo n.º 24
0
def mostek_io(obj,n):
    # DD/FD prefix are ignored
    obj.operands = [env.a, env.cst(n,8)]
    if obj.mnemonic=='OUT': obj.operands.reverse()
    obj.type = type_other
Ejemplo n.º 25
0
def mostek_rst(obj,t):
    # DD/FD prefix are ignored
    p = (0x00, 0x08, 0x10, 0x18, 0x20, 0x28, 0x30, 0x38)[t]
    obj.operands = [env.cst(p,8)]
    obj.type = type_control_flow
Ejemplo n.º 26
0
def mostek_ld(obj,dd,nn):
    dst = getreg16(obj,dd)
    obj.operands = [dst,env.cst(nn,16)]
    obj.type = type_data_processing
Ejemplo n.º 27
0
def mostek_ld(obj,nn):
    obj.operands = [env.mem(env.cst(nn,16),16), env.sp]
    obj.type = type_data_processing
Ejemplo n.º 28
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
Ejemplo n.º 29
0
def mostek_call(obj,cc,nn):
    # DD/FD prefix are ignored
    obj.cond = env.CONDITION[cc]
    obj.operands = [obj.cond[0],env.cst(nn,16)]
    obj.type = type_control_flow
Ejemplo n.º 30
0
def mostek_ld(obj,nn):
    obj.operands = [env.mem(env.cst(nn,16),16), env.sp]
    obj.type = type_data_processing
Ejemplo n.º 31
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
Ejemplo n.º 32
0
def mostek_arithmetic(obj,n):
    obj.operands = [env.a,env.cst(n,8)]
    obj.type = type_data_processing
Ejemplo n.º 33
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
Ejemplo n.º 34
0
def mostek_ld(obj,n):
    disp = env.cst(n,8).signextend(16)
    obj.operands = [env.sp, disp]
    obj.type = type_data_processing
Ejemplo n.º 35
0
def mostek_call(obj, cc, nn):
    # DD/FD prefix are ignored
    obj.cond = env.CONDITION[cc]
    obj.operands = [obj.cond[0], env.cst(nn, 16)]
    obj.type = type_control_flow
Ejemplo n.º 36
0
def mostek_arithmetic(obj,n):
    # DD/FD prefix are ignored
    obj.operands = [env.a,env.cst(n,8)]
    obj.type = type_data_processing
Ejemplo n.º 37
0
def mostek_io(obj, n):
    # DD/FD prefix are ignored
    obj.operands = [env.a, env.cst(n, 8)]
    if obj.mnemonic == "OUT":
        obj.operands.reverse()
    obj.type = type_other
Ejemplo n.º 38
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
Ejemplo n.º 39
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
Ejemplo n.º 40
0
def mostek_call(obj,nn):
    obj.operands = [env.cst(nn,16)]
    obj.type = type_control_flow
Ejemplo n.º 41
0
def mostek_ld(obj,n):
    base = env.cst(n,16)
    obj.operands = [env.mem(base,8), env.a]
    obj.type = type_data_processing
Ejemplo n.º 42
0
def mostek_rst(obj,t):
    p = (0x00, 0x08, 0x10, 0x18, 0x20, 0x28, 0x30, 0x38)[t]
    obj.operands = [env.cst(p,8)]
    obj.type = type_control_flow
Ejemplo n.º 43
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
Ejemplo n.º 44
0
def mostek_rst(obj,t):
    p = (0x00, 0x08, 0x10, 0x18, 0x20, 0x28, 0x30, 0x38)[t]
    obj.operands = [env.cst(p,8)]
    obj.type = type_control_flow
Ejemplo n.º 45
0
def mostek_arithmetic(obj,n):
    obj.operands = [env.a,env.cst(n,8)]
    obj.type = type_data_processing
Ejemplo n.º 46
0
def mostek_ld(obj,r,n):
    dst = getreg8(obj,r)
    if r==0b110 and obj.misc['pfx'] is not None:
        raise InstructionError(obj)
    obj.operands = [dst,env.cst(n,8)]
    obj.type = type_data_processing
Ejemplo n.º 47
0
def mostek_arithmetic(obj,n):
    # DD/FD prefix are ignored
    obj.operands = [env.a,env.cst(n,8)]
    obj.type = type_data_processing
Ejemplo n.º 48
0
def mostek_call(obj,nn):
    # DD/FD prefix are ignored
    obj.operands = [env.cst(nn,16)]
    obj.type = type_control_flow
Ejemplo n.º 49
0
def mostek_jump(obj,e):
    disp = env.cst(e,8).signextend(16)
    obj.operands = [disp]
    if hasattr(obj,'cond'):
        obj.operands.insert(0,obj.cond[0])
    obj.type = type_control_flow
Ejemplo n.º 50
0
def mostek_jump(obj,e):
    disp = env.cst(e,8).signextend(16)
    obj.operands = [disp]
    if hasattr(obj,'cond'):
        obj.operands.insert(0,obj.cond[0])
    obj.type = type_control_flow
Ejemplo n.º 51
0
def mostek_call(obj,cc,nn):
    if cc>=0b100: raise InstructionError(obj)
    obj.cond = env.CONDITION[cc]
    obj.operands = [obj.cond[0],env.cst(nn,16)]
    obj.type = type_control_flow
Ejemplo n.º 52
0
def mostek_call(obj,nn):
    obj.operands = [env.cst(nn,16)]
    obj.type = type_control_flow
Ejemplo n.º 53
0
def mostek_ld(obj,r,n):
    dst = getreg8(obj,r)
    if r==0b110 and obj.misc['pfx'] is not None:
        raise InstructionError(obj)
    obj.operands = [dst,env.cst(n,8)]
    obj.type = type_data_processing
Ejemplo n.º 54
0
def mostek_call(obj,cc,nn):
    if cc>=0b100: raise InstructionError(obj)
    obj.cond = env.CONDITION[cc]
    obj.operands = [obj.cond[0],env.cst(nn,16)]
    obj.type = type_control_flow