298 lines
3.7 KiB
Text
298 lines
3.7 KiB
Text
# cmd tests for MIL-STD-1750A via rizin: each instruction format
|
|
# verified through pi, including sequential multi-instruction disassembly
|
|
|
|
NAME=milstd1750: disasm all instruction formats
|
|
FILE=malloc://1024
|
|
CMDS=<<EOF
|
|
e asm.arch=milstd1750
|
|
e asm.bits=8
|
|
wx FF00
|
|
pi 1
|
|
wx FFFF
|
|
pi 1
|
|
wx A112 8135 B112 A912
|
|
pi 4
|
|
wx 8222 820F A234
|
|
pi 3
|
|
wx 7410 7501 7620 7A30 7B60
|
|
pi 5
|
|
wx A0301234 80501234 90301234
|
|
pi 3
|
|
wx A0321234
|
|
pi 1
|
|
wx 0005 0105 0805
|
|
pi 3
|
|
wx 4005 4025 4035
|
|
pi 3
|
|
wx 4A51ABCD 4A321234 4A07ABCD
|
|
pi 3
|
|
wx 48302000
|
|
pi 1
|
|
wx 48320102
|
|
pi 1
|
|
wx 705F1234
|
|
pi 1
|
|
wx 6043 6121 6232 6522
|
|
pi 4
|
|
wx A8301234 B8205678 C810ABCD D8400100
|
|
pi 4
|
|
wx AA301234 AB12 EA34 EB12
|
|
pi 4
|
|
wx FF00 A112 A0301234 7410 FFFF
|
|
pi 5
|
|
s 0x100
|
|
wx 7410
|
|
ao~type,size,jump
|
|
s 0x100
|
|
wx 74F8
|
|
ao~type,size,jump
|
|
s 0x100
|
|
wx 7505 7610 7820 7930 7A40 7B50
|
|
ao 6~type,size,jump,fail
|
|
s 0x100
|
|
wx 705F0800
|
|
ao~type,size,jump,fail
|
|
s 0x100
|
|
wx 72002000
|
|
ao~type,size,jump
|
|
s 0x100
|
|
wx 7E000800
|
|
ao~type,size,jump
|
|
s 0x100
|
|
wx 73001500
|
|
ao~type,size,jump,fail
|
|
s 0x100
|
|
wx 7F00
|
|
ao~type,size
|
|
s 0x100
|
|
wx FFFF FF00
|
|
ao 2~type,size
|
|
s 0x100
|
|
wx A112 B112 C512 D112
|
|
ao 4~type,size
|
|
s 0x100
|
|
wx E312 E134 E556 E712
|
|
ao 4~type,size
|
|
s 0x100
|
|
wx 6043 6121 6232
|
|
ao 3~type,size
|
|
s 0x100
|
|
wx 80501234 90301234 0005 0805
|
|
ao 4~type,size
|
|
s 0x100
|
|
wx 8F35 9F35
|
|
ao 2~type,size
|
|
s 0x100
|
|
wx 48302000 49101234
|
|
ao 2~type,size
|
|
s 0x100
|
|
wx 9312
|
|
ao~type,size
|
|
s 0x100
|
|
wx F0501234 F912
|
|
ao 2~type,size
|
|
s 0x100
|
|
wx 4A00
|
|
ao~type,size
|
|
s 0x100
|
|
wx 70000800 70700800 70500800
|
|
ao 3~type,size,jump,fail
|
|
s 0x100
|
|
wx 71000800 71F00800 71200800
|
|
ao 3~type,size,fail
|
|
s 0x100
|
|
wx 7D001234 7C001234
|
|
ao 2~type,size,family
|
|
s 0x100
|
|
wx 7705
|
|
ao~type,size
|
|
s 0x100
|
|
wx 72002000 7E002000
|
|
ao 2~type,size,jump,fail
|
|
s 0x100
|
|
wx 48302000 49101234
|
|
ao 2~family
|
|
EOF
|
|
EXPECT=<<EOF
|
|
NOP()
|
|
BPT()
|
|
AR(r1, r2)
|
|
LR(r3, r5)
|
|
SR(r1, r2)
|
|
FAR(r1, r2)
|
|
LISP(r2, 3)
|
|
LISP(r0, 16)
|
|
AISP(r3, 5)
|
|
BR(0x0010)
|
|
BEZ(0x0001)
|
|
BLT(0x0020)
|
|
BNZ(0x0030)
|
|
BGE(0x0060)
|
|
A(r3, 0x1234)
|
|
L(r5, 0x1234)
|
|
ST(r3, 0x1234)
|
|
A(r3, 0x1234, r2)
|
|
LB(r12, 5)
|
|
LB(r13, 5)
|
|
STB(r12, 5)
|
|
LBX(r12, r5)
|
|
STBX(r12, r5)
|
|
DSTX(r12, r5)
|
|
AIM(r5, 0xabcd)
|
|
SIM(r3, 0x1234)
|
|
ANDM(r0, 0xabcd)
|
|
XIO(r3, SMK)
|
|
XIO(r3, r2, PO { 1, 2 })
|
|
JC(0x5, 0x1234, r15)
|
|
SLL(r3, 5)
|
|
SRL(r1, 3)
|
|
SRA(r2, 4)
|
|
DSLL(r2, 3)
|
|
FA(r3, 0x1234)
|
|
FS(r2, 0x5678)
|
|
FM(r1, 0xabcd)
|
|
FD(r4, 0x0100)
|
|
EFA(r3, 0x1234)
|
|
EFAR(r1, r2)
|
|
EFIX(r3, r4)
|
|
EFLT(r1, r2)
|
|
NOP()
|
|
AR(r1, r2)
|
|
A(r3, 0x1234)
|
|
BR(0x0010)
|
|
BPT()
|
|
size: 2
|
|
type: jmp
|
|
jump: 0x00000120
|
|
size: 2
|
|
type: jmp
|
|
jump: 0x000000f0
|
|
size: 2
|
|
type: cjmp
|
|
jump: 0x0000010a
|
|
fail: 0x00000102
|
|
size: 2
|
|
type: cjmp
|
|
jump: 0x00000122
|
|
fail: 0x00000104
|
|
size: 2
|
|
type: cjmp
|
|
jump: 0x00000144
|
|
fail: 0x00000106
|
|
size: 2
|
|
type: cjmp
|
|
jump: 0x00000166
|
|
fail: 0x00000108
|
|
size: 2
|
|
type: cjmp
|
|
jump: 0x00000188
|
|
fail: 0x0000010a
|
|
size: 2
|
|
type: cjmp
|
|
jump: 0x000001aa
|
|
fail: 0x0000010c
|
|
size: 4
|
|
type: cjmp
|
|
jump: 0x00001000
|
|
fail: 0x00000104
|
|
size: 4
|
|
type: call
|
|
jump: 0x00004000
|
|
size: 4
|
|
type: call
|
|
jump: 0x00001000
|
|
size: 4
|
|
type: cjmp
|
|
jump: 0x00002a00
|
|
fail: 0x00000104
|
|
size: 2
|
|
type: ret
|
|
size: 2
|
|
type: trap
|
|
size: 2
|
|
type: nop
|
|
size: 2
|
|
type: add
|
|
size: 2
|
|
type: sub
|
|
size: 2
|
|
type: mul
|
|
size: 2
|
|
type: div
|
|
size: 2
|
|
type: and
|
|
size: 2
|
|
type: or
|
|
size: 2
|
|
type: xor
|
|
size: 2
|
|
type: not
|
|
size: 2
|
|
type: shl
|
|
size: 2
|
|
type: shr
|
|
size: 2
|
|
type: shr
|
|
size: 4
|
|
type: load
|
|
size: 4
|
|
type: store
|
|
size: 2
|
|
type: load
|
|
size: 2
|
|
type: store
|
|
size: 2
|
|
type: pop
|
|
size: 2
|
|
type: push
|
|
size: 4
|
|
type: io
|
|
size: 4
|
|
type: io
|
|
size: 2
|
|
type: mov
|
|
size: 4
|
|
type: cmp
|
|
size: 2
|
|
type: cmp
|
|
size: 2
|
|
type: ill
|
|
size: 4
|
|
type: nop
|
|
size: 4
|
|
type: jmp
|
|
jump: 0x00001000
|
|
size: 4
|
|
type: cjmp
|
|
jump: 0x00001000
|
|
fail: 0x0000010c
|
|
size: 4
|
|
type: nop
|
|
size: 4
|
|
type: mjmp
|
|
size: 4
|
|
type: cjmp
|
|
fail: 0x0000010c
|
|
size: 4
|
|
type: mjmp
|
|
family: priv
|
|
size: 4
|
|
type: mjmp
|
|
family: priv
|
|
size: 2
|
|
type: ucall
|
|
size: 4
|
|
type: call
|
|
jump: 0x00004000
|
|
fail: 0x00000104
|
|
size: 4
|
|
type: call
|
|
jump: 0x00004000
|
|
fail: 0x00000108
|
|
family: io
|
|
family: io
|
|
EOF
|
|
RUN
|
|
|
|
|
|
|