rizin/test/db/analysis/x86_16

509 lines
20 KiB
Text

NAME=arj x86 16 bits
FILE=malloc://0x100
CMDS=<<EOF
e asm.arch=x86
e analysis.arch=x86
e asm.bits=16
arj
EOF
EXPECT=<<EOF
{"ip":0,"ax":0,"bx":0,"cx":0,"dx":0,"sp":0,"bp":0,"si":0,"di":0,"flags":0}
EOF
RUN
NAME=lcall offset (#12284)
FILE==
CMDS=<<EOF
e asm.arch=x86
e asm.bits=16
wx 9a34002001
%v $j
EOF
EXPECT=<<EOF
0x1234
EOF
RUN
NAME=ljmp offset (#12284)
FILE==
CMDS=<<EOF
e asm.arch=x86
e asm.bits=16
wx ea34002001
%v $j
EOF
EXPECT=<<EOF
0x1234
EOF1
RUN
NAME=aoj pushf
FILE==
CMDS=<<EOF
e asm.arch=x86
e asm.bits=16
wx 9c
aoj~{}
EOF
EXPECT=<<EOF
[
{
"opcode": "pushf",
"disasm": "pushf",
"pseudo": "pushf ",
"description": "push flags register onto the stack",
"mnemonic": "pushf",
"mask": "ff",
"esil": "2,sp,-=,eflags,sp,=[2]",
"rzil": {
"opcode": "seq",
"x": {
"opcode": "set",
"dst": "final",
"src": {
"opcode": "-",
"x": {
"opcode": "var",
"value": "sp"
},
"y": {
"opcode": "bitv",
"bits": "0x2",
"len": 16
}
}
},
"y": {
"opcode": "seq",
"x": {
"opcode": "storew",
"mem": 0,
"key": {
"opcode": "var",
"value": "final"
},
"value": {
"opcode": "cast",
"value": {
"opcode": "|",
"x": {
"opcode": "<<",
"x": {
"opcode": "|",
"x": {
"opcode": "<<",
"x": {
"opcode": "|",
"x": {
"opcode": "<<",
"x": {
"opcode": "|",
"x": {
"opcode": "<<",
"x": {
"opcode": "|",
"x": {
"opcode": "<<",
"x": {
"opcode": "|",
"x": {
"opcode": "<<",
"x": {
"opcode": "|",
"x": {
"opcode": "<<",
"x": {
"opcode": "|",
"x": {
"opcode": "<<",
"x": {
"opcode": "|",
"x": {
"opcode": "<<",
"x": {
"opcode": "|",
"x": {
"opcode": "<<",
"x": {
"opcode": "|",
"x": {
"opcode": "<<",
"x": {
"opcode": "|",
"x": {
"opcode": "<<",
"x": {
"opcode": "ite",
"condition": {
"opcode": "bool",
"value": false
},
"x": {
"opcode": "bitv",
"bits": "0x1",
"len": 16
},
"y": {
"opcode": "bitv",
"bits": "0x0",
"len": 16
}
},
"y": {
"opcode": "bitv",
"bits": "0x1",
"len": 16
},
"fill_bit": {
"opcode": "bool",
"value": false
}
},
"y": {
"opcode": "ite",
"condition": {
"opcode": "var",
"value": "nt"
},
"x": {
"opcode": "bitv",
"bits": "0x1",
"len": 16
},
"y": {
"opcode": "bitv",
"bits": "0x0",
"len": 16
}
}
},
"y": {
"opcode": "bitv",
"bits": "0x2",
"len": 16
},
"fill_bit": {
"opcode": "bool",
"value": false
}
},
"y": {
"opcode": "bitv",
"bits": "0x3",
"len": 16
}
},
"y": {
"opcode": "bitv",
"bits": "0x1",
"len": 16
},
"fill_bit": {
"opcode": "bool",
"value": false
}
},
"y": {
"opcode": "ite",
"condition": {
"opcode": "var",
"value": "of"
},
"x": {
"opcode": "bitv",
"bits": "0x1",
"len": 16
},
"y": {
"opcode": "bitv",
"bits": "0x0",
"len": 16
}
}
},
"y": {
"opcode": "bitv",
"bits": "0x1",
"len": 16
},
"fill_bit": {
"opcode": "bool",
"value": false
}
},
"y": {
"opcode": "ite",
"condition": {
"opcode": "var",
"value": "df"
},
"x": {
"opcode": "bitv",
"bits": "0x1",
"len": 16
},
"y": {
"opcode": "bitv",
"bits": "0x0",
"len": 16
}
}
},
"y": {
"opcode": "bitv",
"bits": "0x1",
"len": 16
},
"fill_bit": {
"opcode": "bool",
"value": false
}
},
"y": {
"opcode": "ite",
"condition": {
"opcode": "var",
"value": "if"
},
"x": {
"opcode": "bitv",
"bits": "0x1",
"len": 16
},
"y": {
"opcode": "bitv",
"bits": "0x0",
"len": 16
}
}
},
"y": {
"opcode": "bitv",
"bits": "0x1",
"len": 16
},
"fill_bit": {
"opcode": "bool",
"value": false
}
},
"y": {
"opcode": "ite",
"condition": {
"opcode": "var",
"value": "tf"
},
"x": {
"opcode": "bitv",
"bits": "0x1",
"len": 16
},
"y": {
"opcode": "bitv",
"bits": "0x0",
"len": 16
}
}
},
"y": {
"opcode": "bitv",
"bits": "0x1",
"len": 16
},
"fill_bit": {
"opcode": "bool",
"value": false
}
},
"y": {
"opcode": "ite",
"condition": {
"opcode": "var",
"value": "zf"
},
"x": {
"opcode": "bitv",
"bits": "0x1",
"len": 16
},
"y": {
"opcode": "bitv",
"bits": "0x0",
"len": 16
}
}
},
"y": {
"opcode": "bitv",
"bits": "0x1",
"len": 16
},
"fill_bit": {
"opcode": "bool",
"value": false
}
},
"y": {
"opcode": "ite",
"condition": {
"opcode": "var",
"value": "zf"
},
"x": {
"opcode": "bitv",
"bits": "0x1",
"len": 16
},
"y": {
"opcode": "bitv",
"bits": "0x0",
"len": 16
}
}
},
"y": {
"opcode": "bitv",
"bits": "0x2",
"len": 16
},
"fill_bit": {
"opcode": "bool",
"value": false
}
},
"y": {
"opcode": "ite",
"condition": {
"opcode": "var",
"value": "af"
},
"x": {
"opcode": "bitv",
"bits": "0x1",
"len": 16
},
"y": {
"opcode": "bitv",
"bits": "0x0",
"len": 16
}
}
},
"y": {
"opcode": "bitv",
"bits": "0x2",
"len": 16
},
"fill_bit": {
"opcode": "bool",
"value": false
}
},
"y": {
"opcode": "ite",
"condition": {
"opcode": "var",
"value": "pf"
},
"x": {
"opcode": "bitv",
"bits": "0x1",
"len": 16
},
"y": {
"opcode": "bitv",
"bits": "0x0",
"len": 16
}
}
},
"y": {
"opcode": "bitv",
"bits": "0x1",
"len": 16
},
"fill_bit": {
"opcode": "bool",
"value": false
}
},
"y": {
"opcode": "bitv",
"bits": "0x1",
"len": 16
}
},
"y": {
"opcode": "bitv",
"bits": "0x1",
"len": 16
},
"fill_bit": {
"opcode": "bool",
"value": false
}
},
"y": {
"opcode": "ite",
"condition": {
"opcode": "var",
"value": "cf"
},
"x": {
"opcode": "bitv",
"bits": "0x1",
"len": 16
},
"y": {
"opcode": "bitv",
"bits": "0x0",
"len": 16
}
}
},
"length": 16,
"fill": {
"opcode": "bool",
"value": false
}
}
},
"y": {
"opcode": "set",
"dst": "sp",
"src": {
"opcode": "var",
"value": "final"
}
}
}
},
"sign": false,
"prefix": 0,
"id": 668,
"opex": {
"operands": [
{
"type": "reg",
"value": "eflags",
"read": true,
"nbits": 16
}
]
},
"addr": 0,
"bytes": "9c",
"size": 1,
"type": "rpush",
"scale": 0,
"refptr": 0,
"cycles": 1,
"failcycles": 0,
"delay": 0,
"stack": "inc",
"stackptr": 2,
"family": "cpu"
}
]
EOF
RUN