--- /dev/null
+.sect .text
+.define _main
+.define _main2
+.define _xxx
+! integer arithmetic and logical instructions
+
+_main:
+.data2 0x0
+adawi r0, r1
+addb2 r0,r1
+addb3 r0,r2,r4
+addw2 r0,r1
+addw3 r0,r2,r4
+addl2 r0,r1
+addl3 r0,r2,r4
+adwc r0, r1
+ashl r0, r1, r2
+ashq r0, r1, r2
+bicb2 r0,r1
+bicb3 r0,r2,r4
+bicw2 r0,r1
+bicw3 r0,r2,r4
+bicl2 r0,r1
+bicl3 r0,r2,r4
+bisb2 r0,r1
+bisb3 r0,r2,r4
+bisw2 r0,r1
+bisw3 r0,r2,r4
+bisl2 r0,r1
+bisl3 r0,r2,r4
+bitb r0, r1
+bitw r0, r1
+bitl r0, r1
+clrb r0
+clrw r0
+clrl r0
+clrq r0
+clro r0
+cmpb r0, r1
+cmpw r0, r1
+cmpl r0, r1
+cvtbw r0, r1
+cvtbl r0, r1
+cvtwb r0, r1
+cvtwl r0, r1
+cvtlb r0, r1
+cvtlw r0, r1
+decb r0
+decw r0
+decl r0
+divb2 r0,r1
+divb3 r0,r2,r4
+divw2 r0,r1
+divw3 r0,r2,r4
+divl2 r0,r1
+divl3 r0,r2,r4
+ediv r0,r1,r2,r3
+emul r0,r1,r2,r3
+incb r0
+incw r0
+incl r0
+mcomb r0, r1
+mcomw r0, r1
+mcoml r0, r1
+mnegb r0, r1
+mnegw r0, r1
+mnegl r0, r1
+movb r0, r1
+movw r0, r1
+movl r0, r1
+movq r0, r1
+movo r0, r1
+movzbw r0, r1
+movzbl r0, r1
+movzwl r0, r1
+mulb2 r0,r1
+mulb3 r0,r2,r4
+mulw2 r0,r1
+mulw3 r0,r2,r4
+mull2 r0,r1
+mull3 r0,r2,r4
+pushl r0
+pushl $1
+rotl r0, r1, r2
+sbwc r0, r1
+subb2 r0,r1
+subb3 r0,r2,r4
+subw2 r0,r1
+subw3 r0,r2,r4
+subl2 r0,r1
+subl3 r0,r2,r4
+tstb r0
+tstw r0
+tstl r0
+xorb2 r0,r1
+xorb3 r0,r2,r4
+xorw2 r0,r1
+xorw3 r0,r2,r4
+xorl2 r0,r1
+xorl3 r0,r2,r4
+
+!* Address instructions */
+
+movab (sp),r0
+movaw (sp),r0
+moval (sp),r0
+movaf (sp),r0
+movaq (sp),r0
+movad (sp),r0
+movag (sp),r0
+movah (sp),r0
+movao (sp),r0
+pushab (sp)
+pushaw (sp)
+pushal (sp)
+pushaf (sp)
+pushaq (sp)
+pushad (sp)
+pushag (sp)
+pushah (sp)
+pushao (sp)
+
+!* Variable length bit-field instructions */
+
+cmpv r0,r1,r2,r3
+cmpzv r0,r1,r2,r3
+extv r0,r1,r2,r3
+extzv r0,r1,r2,r3
+ffc r0,r1,r2,r3
+ffs r0,r1,r2,r3
+insv r0,r1,r2,r3
+
+!* Control instructions */
+
+acbb r0,r1,r2,_main
+acbw r0,r1,r2,_main
+acbl r0,r1,r2,_main
+acbf r0,r1,r2,_main
+acbd r0,r1,r2,_main
+acbg r0,r1,r2,_main
+acbh r0,r1,r2,_main
+aobleq r0, r1, 1f
+1:
+aoblss r0, r1, 1f
+1:
+bgtr 1f
+1:
+bleq 1f
+1:
+bneq 1f
+1:
+bnequ 1f
+1:
+beql 1f
+1:
+beqlu 1f
+1:
+bgeq 1f
+1:
+blss 1f
+1:
+bgtru 1f
+1:
+blequ 1f
+1:
+bvc 1f
+1:
+bvs 1f
+1:
+bgequ 1f
+1:
+bcc 1f
+1:
+blssu 1f
+1:
+bcs 1f
+1:
+bbs r0, r1, 1f
+1:
+bbc r0, r1, 1f
+1:
+bbss r0, r1, 1f
+1:
+bbcs r0, r1, 1f
+1:
+bbsc r0, r1, 1f
+1:
+bbcc r0, r1, 1f
+1:
+bbssi r0, r1, 1f
+1:
+bbcci r0, r1, 1f
+1:
+blbs r0,1f
+blbc r0,1f
+1:
+jgtr _main
+jleq _main
+jneq _main
+jnequ _main
+jeql _main
+jeqlu _main
+jgeq _main
+jlss _main
+jgtru _main
+jlequ _main
+jvc _main
+jvs _main
+jgequ _main
+jcc _main
+jlssu _main
+jcs _main
+jlbs r0, _main
+jlbc r0, _main
+jbs r0, r1, _main
+jbc r0, r1, _main
+jbss r0, r1, _main
+jbcs r0, r1, _main
+jbsc r0, r1, _main
+jbcc r0, r1, _main
+jbssi r0, r1, _main
+jbcci r0, r1, _main
+br _main
+br _main2
+brb 1f
+1:
+brw 1f
+1:
+jbr _main
+jbr _main2
+bsb 1f
+1:
+caseb r0, r1, r2
+casew r0, r1, r2
+casel r0, r1, r2
+jmp _main
+jsb _main
+rsb
+sobgeq r0, 1f
+sobgtr r0, 1f
+1:
+
+!* Procedure call instructions */
+
+callg (sp),_main
+calls $2, _main
+ret
+
+!* Miscellaneous instructions */
+
+bicpsw r0
+bispsw r0
+bpt
+halt
+index r0,r1,r2,r3,r4,r5
+movpsl r0
+nop
+popr r0
+pushr r0
+xfc
+
+!* Queue instructions */
+
+insqhi (sp), _main
+insqti (sp), _main
+insque (sp), _main
+remqhi (sp), _main
+remqti (sp), _main
+remque (sp), _main
+
+!* Floating point instructions */
+
+addf2 r0,r1
+addf3 r0,r2,r4
+addd2 r0,r1
+addd3 r0,r2,r4
+addg2 r0,r1
+addg3 r0,r2,r4
+addh2 r0,r1
+addh3 r0,r2,r4
+clrf r0
+clrd r0
+clrg r0
+clrh r0
+cmpf r0,r2
+cmpd r0,r2
+cmpg r0,r2
+cmph r0,r2
+cvtbf r0,r2
+cvtbd r0,r2
+cvtbg r0,r2
+cvtbh r0,r2
+cvtwf r0,r2
+cvtwd r0,r2
+cvtwg r0,r2
+cvtwh r0,r2
+cvtlf r0,r2
+cvtld r0,r2
+cvtlg r0,r2
+cvtlh r0,r2
+cvtfb r0,r2
+cvtdb r0,r2
+cvtgb r0,r2
+cvthb r0,r2
+cvtfw r0,r2
+cvtdw r0,r2
+cvtgw r0,r2
+cvthw r0,r2
+cvtfl r0,r2
+cvtdl r0,r2
+cvtgl r0,r2
+cvthl r0,r2
+cvtrfl r0,r2
+cvtrdl r0,r2
+cvtrgl r0,r2
+cvtrhl r0,r2
+cvtfd r0,r2
+cvtfg r0,r2
+cvtfh r0,r2
+cvtdf r0,r2
+cvtdh r0,r2
+cvtgf r0,r2
+cvtgh r0,r2
+cvthf r0,r2
+cvthd r0,r2
+cvthg r0,r2
+divf2 r0,r1
+divf3 r0,r2,r4
+divd2 r0,r1
+divd3 r0,r2,r4
+divg2 r0,r1
+divg3 r0,r2,r4
+divh2 r0,r1
+divh3 r0,r2,r4
+emodf (r0),(r1),(r2),(r3),(r4)
+emodd (r0),(r1),(r2),(r3),(r4)
+emodg (r0),(r1),(r2),(r3),(r4)
+emodh (r0),(r1),(r2),(r3),(r4)
+mnegf r0,r2
+mnegd r0,r2
+mnegg r0,r2
+mnegh r0,r2
+movf r0,r2
+movd r0,r2
+movg r0,r2
+movh r0,r2
+mulf2 r0,r1
+mulf3 r0,r2,r4
+muld2 r0,r1
+muld3 r0,r2,r4
+mulg2 r0,r1
+mulg3 r0,r2,r4
+mulh2 r0,r1
+mulh3 r0,r2,r4
+polyf r0,r2,(sp)
+polyd r0,r2,(sp)
+polyg r0,r2,(sp)
+polyh r0,r2,(sp)
+subf2 r0,r1
+subf3 r0,r2,r4
+subd2 r0,r1
+subd3 r0,r2,r4
+subg2 r0,r1
+subg3 r0,r2,r4
+subh2 r0,r1
+subh3 r0,r2,r4
+tstf r0
+tstd r0
+tstg r0
+tsth r0
+
+!* Character string instructions */
+
+cmpc3 r0,(sp),(r1)
+cmpc5 (r0),(r1),(r2),(r3),(r4)
+locc (r0),(r1),(r2)
+matchc (r0),(r1),(r2),(r3)
+movc3 r0,(sp),(r1)
+movc5 (r0),(r1),(r2),(r3),(r4)
+movtc (r0),(r1),(r2),(r3),(r4),(r4)
+movtuc (r0),(r1),(r2),(r3),(r4),(r4)
+scanc (r0),(r1),(r2),(r3)
+skpc r0,(sp),(r1)
+spanc (r0),(r1),(r2),(r3)
+
+!* Cyclic redundancy check instructions */
+
+crc (r0),(r1),(r2),(r3)
+
+!* Decimal string instructions */
+
+addp4 (r0),(r1),(r2),(r3)
+addp6 (r0),(r1),(r2),(r3),(r4),(r4)
+ashp (r0),(r1),(r2),(r3),(r4),(r4)
+cmpp3 r0,(sp),(r1)
+cmpp4 (r0),(r1),(r2),(r3)
+cvtlp (r0),(r1),(r2)
+cvtpl (r0),(r1),(r2)
+cvtps (r0),(r1),(r2),(r3)
+cvtpt (r0),(r1),(r2),(r3),(r4)
+cvtsp (r0),(r1),(r2),(r3)
+cvttp (r0),(r1),(r2),(r3),(r4)
+divp (r0),(r1),(r2),(r3),(r4),(r4)
+movp (r0),(r1),(r2)
+mulp (r0),(r1),(r2),(r3),(r4),(r4)
+subp4 (r0),(r1),(r2),(r3)
+subp6 (r0),(r1),(r2),(r3),(r4),(r4)
+
+!* Edit instruction */
+
+editpc (r0),(r1),(r2),(r3)
+
+!* Other VAX-11 instructions */
+
+bugw _main
+bugl _main
+
+prober (r0),(r1),(r2)
+probew (r0),(r1),(r2)
+
+rei
+chmk r0
+chme r0
+chms r0
+chmu r0
+
+ldpctx
+svpctx
+mtpr r0,r1
+mfpr r0,r1
+
+! test some addressing modes
+_main2:
+.data2 0x0
+pushal _xxx
+pushal _main
+pushal _main2
+pushal *_xxx
+pushal *_main
+pushal *_main2
+movl $_xxx,-(sp)
+movl $_main2,-(sp)
+movl *$_main2,-(sp)
+movl (sp)+,r9
+movl *(sp)+,r9
+movl (r0),r9
+movl 12(r0),r9
+movl *12(r0),r9
+movl _xxx(r0),r9
+movl *_xxx(r0),r9
+movl *_xxx(r0)[r1],r9
+movb *_xxx(r0)[r1],r9
+movw *_xxx(r0)[r1],r9
+
+
+.sect .rom
+_xxx:
+ .data2 0