Subversion Repositories pentevo

Rev

Blame | Last modification | View Log | Download | RSS feed | ?url?

  1.                 cpu     hd6475348
  2.                 page    0
  3.                 maxmode on
  4.                 padding off
  5.  
  6.                 assume  br:0,dp:0
  7.  
  8.                 add.b   r5,sp
  9.                 add.w   r2,r4
  10.                 add.b   @r4,r2
  11.                 add.w   @r4,r2
  12.                 add.b   @(20,r4),r2
  13.                 add.w   @(20:8,r4),r2
  14.                 add.b   @(20:16,r4),r2
  15.                 add.w   @(2000,r4),r2
  16.                 add.b   @(2000:16,r4),r2
  17.                 add.w   @-r4,r2
  18.                 add.b   @r4+,r2
  19.                 add.w   @20,r2
  20.                 add.b   @20:16,r2
  21.                 add.w   @2000,r2
  22.                 add.b   #5,r2
  23.                 add.w   #100,r2
  24.                 add.b:g #1,r2           ; forced to add:g
  25.                 add.w:g #-1,r2          ; forced to add:g
  26.                 add.b   #1,r2           ; optimized to add:q
  27.                 add.w   #-1,r2          ; optimized to add:q
  28.  
  29.                 adds.w  #$10,r3
  30.  
  31.                 addx.b  @($20,r4),r0
  32.  
  33.                 and.b   @$f8:8,r1
  34.  
  35.                 andc.b  #$fe,ccr
  36.  
  37.                 ; :8 and :16 are synonyms for short and long branch
  38.  
  39.                 irp     instr,bra,bt,brn,bf,bhi,bls,bcc,bhs,bcs,blo,bne,beq,bvc,bvs,bpl,bmi,bge,blt,bgt,ble
  40.                 instr   *+20
  41.                 instr   *+2000
  42.                 instr.l *+20
  43.                 instr:16 *+20
  44.                 instr.s *+20
  45.                 instr:8 *+20
  46.                 endm
  47.  
  48.                 bclr.b  #7,@$ff00
  49.  
  50.                 bnot.w  r0,r1
  51.  
  52.                 bset.b  #0,@r1+
  53.  
  54.                 bsr     *+20
  55.                 bsr     *+2000
  56.  
  57.                 btst.b  r0,@$f0:8
  58.  
  59.                 btst    #15,r4
  60.                 btst.w  #15,r4
  61.                 expect  1320
  62.                 btst.b  #15,r4
  63.                 endexpect
  64.  
  65.                 clr.w   @($1000,r5)
  66.  
  67.                 cmp:g.b #$aa,@-r3
  68.                 cmp.b   #$aa,@-r3
  69.                 cmp:e.b #$00,r0
  70.                 cmp.b   #$00,r0
  71.                 cmp:i.w #$ffff,r1
  72.                 cmp.w   #$ffff,r1
  73.  
  74.                 dadd    r0,r1
  75.  
  76.                 divxu.w @r3,r0
  77.  
  78.                 dsub    r2,r3
  79.  
  80.                 exts    r0
  81.  
  82.                 extu    r1
  83.  
  84.                 jmp     @(#$10,r4)
  85.  
  86.                 jsr     @($fff,r3)
  87.  
  88.                 ldc.b   #$01,dp
  89.  
  90.                 ldm     @sp+,(r0,r2-r4)
  91.  
  92.                 link    fp,#-4
  93.  
  94.                 mov:g.b r2,r5
  95.                 mov.b   r2,r5
  96.                 mov:g.w r2,r5
  97.                 mov.w   r2,r5
  98.                 mov:g.w r0,@r1
  99.                 mov.w   r0,@r1
  100.                 mov:e.b #$55,r0
  101.                 mov.b   #$55,r0
  102.                 mov:f.b @(4,r6),r0
  103.                 mov.b   @(4,r6),r0
  104.                 mov:f.b r0,@(4,r6)
  105.                 mov.b   r0,@(4,r6)
  106.                 mov:i.w #$ff00,r5
  107.                 mov.w   #$ff00,r5
  108.                 mov:l.b @$a0,r0
  109.                 mov.b   @$a0,r0
  110.                 mov:s.w r0,@$a0:8
  111.                 mov.w   r0,@$a0:8
  112.  
  113.                 movfpe  @$f000,r0
  114.  
  115.                 movtpe  r0,@r1
  116.  
  117.                 mulxu.b r0,r1
  118.  
  119.                 neg.w   r0
  120.  
  121.                 nop
  122.  
  123.                 not.b   @($10,r2)
  124.  
  125.                 or.b    @$f0:8,r1
  126.  
  127.                 orc.w   #$0700,sr
  128.  
  129.                 pjmp    @r4
  130.  
  131.                 pjsr    @$010000
  132.  
  133.                 prtd    #8
  134.  
  135.                 prts
  136.  
  137.                 rotl.w  r0
  138.  
  139.                 rotr.b  @r1
  140.  
  141.                 rotxl.w @($02,r1)
  142.  
  143.                 rotxr.b @$fa:8
  144.  
  145.                 rtd     #400
  146.  
  147.                 rte
  148.  
  149.                 rts
  150.  
  151.                 scb/eq  r4,*-20
  152.  
  153.                 shal.b  @r2+
  154.  
  155.                 shar.w  @$ff00
  156.  
  157.                 shll.b  r1
  158.  
  159.                 shlr.w  @-r1
  160.  
  161.                 sleep
  162.  
  163.                 stc.b   br,@-sp
  164.  
  165.                 stm     (r0-r3),@-sp
  166.  
  167.                 sub.w   @r1,r0
  168.  
  169.                 sub.b:g #1,r2           ; forced to sub:g
  170.                 sub.w:g #-1,r2          ; forced to sub:g
  171.                 sub.b:q #1,r2           ; forced to sub:q, which becomes add:q #-1,...
  172.                 sub.w:q #-1,r2          ; forced to sub:q, which becomes add:q #1,...
  173.                 sub.b   #1,r2           ; assembled as sub:g, since there is officially no sub:q
  174.                 sub.w   #-1,r2          ; assembled as sub:g, since there is officially no sub:q
  175.  
  176.                 subs.w  #2,r2
  177.  
  178.                 subx.w  @r2+,r0
  179.  
  180.                 swap    r0
  181.  
  182.                 tas     @$f000
  183.  
  184.                 trapa   #4
  185.  
  186.                 trap/vs
  187.  
  188.                 tst     @($1000,r1)
  189.  
  190.                 unlk    fp
  191.  
  192.                 xch     r0,r1
  193.  
  194.                 xor.b   @$a0:8,r0
  195.  
  196.                 xorc.b  #$01,ccr
  197.  
  198.                 bra     *+126
  199.                 bra     *+127
  200.                 bra     *+128
  201.                 bra     *+129
  202.                 bra     *+130
  203.                 bra     *+131
  204.                 bra     *+132
  205.                 bra     *+133
  206.                 bra     *+134
  207.                 bra     *-123
  208.                 bra     *-124
  209.                 bra     *-125
  210.                 bra     *-126
  211.                 bra     *-127
  212.                 bra     *-128
  213.                 bra     *-129
  214.                 bra     *-130
  215.                 bra     *-131
  216.  
  217.                 ; register aliases
  218.  
  219. reg_r0          equ     r0
  220. reg_r1          equ     r1
  221. reg_r2          equ     r2
  222. reg_r3          equ     r3
  223. reg_r4          equ     r4
  224. reg_r5          equ     r5
  225. reg_r6          equ     r6
  226. reg_r7          equ     r7
  227. reg_sp          reg     sp
  228. reg_fp          reg     fp
  229.  
  230.                 mov.b   #$55,r0
  231.                 mov.b   #$55,reg_r0
  232.                 mov.b   #$55,r1
  233.                 mov.b   #$55,reg_r1
  234.                 mov.b   #$55,r2
  235.                 mov.b   #$55,reg_r2
  236.                 mov.b   #$55,r3
  237.                 mov.b   #$55,reg_r3
  238.                 mov.b   #$55,r4
  239.                 mov.b   #$55,reg_r4
  240.                 mov.b   #$55,r5
  241.                 mov.b   #$55,reg_r5
  242.                 mov.b   #$55,r6
  243.                 mov.b   #$55,reg_r6
  244.                 mov.b   #$55,r7
  245.                 mov.b   #$55,reg_r7
  246.                 mov.b   #$55,sp
  247.                 mov.b   #$55,reg_sp
  248.                 mov.b   #$55,fp
  249.                 mov.b   #$55,reg_fp
  250.                 subx.w  @r0+,r0
  251.                 subx.w  @reg_r0+,reg_r0
  252.                 mov.w   r0,@-r1
  253.                 mov.w   reg_r0,@-reg_r1
  254.                 rotxl.w @($02,r2)
  255.                 rotxl.w @($02,reg_r2)
  256.  
  257.                 ; specifying operand size late
  258.  
  259.                 mov.w   #$ff00,r5
  260.                 mov     #$ff00:16,r5
  261.  
  262.                 ; The very special hex syntax, which requires a quote qualify
  263.                 ; callback in the parser and which is only enabled on request.
  264.                 ; We optionally also allow a terminating ':
  265.  
  266.                 relaxed on
  267.  
  268.                 mov     #h'aa55:16 ,@h'ffe0  ; comment
  269.                 mov     #h'aa55:16 ,@h'ffe0' ; comment
  270.                 mov     #h'aa55':16,@h'ffe0  ; comment
  271.                 mov     #h'aa55':16,@h'ffe0' ; comment
  272.                 mov     #$aa55:16  ,@$ffe0   ; comment
  273.  
  274.                 ; For MOV (and not for CMP, though the coding suggests it),
  275.                 ; the immediate src's size
  276.                 ; may differ from the destination's size.  A sign
  277.                 ; extension is then executed and the object code is one
  278.                 ; byte shorter.  Earlier versions of AS always did
  279.                 ; this optimization, but there is code that explicitly
  280.                 ; requests it not being done, by adding a :16 attribute to
  281.                 ; the source operand:
  282.  
  283.                 mov.w   #H'fee0,@H'1000
  284.                 expect  1320
  285.                 mov.w   #H'fee0:8,@H'1000
  286.                 endexpect
  287.                 mov.w   #H'fee0:16,@H'1000
  288.  
  289.                 mov.w   #H'ffe0,@H'1000
  290.                 mov.w   #H'ffe0:8,@H'1000
  291.                 mov.w   #H'ffe0:16,@H'1000
  292.  
  293.                 mov.w   #H'0130,@H'1000
  294.                 expect  1320
  295.                 mov.w   #H'0130:8,@H'1000
  296.                 endexpect
  297.                 mov.w   #H'0130:16,@H'1000
  298.  
  299.                 mov.w   #H'0030,@H'1000
  300.                 mov.w   #H'0030:8,@H'1000
  301.                 mov.w   #H'0030:16,@H'1000
  302.  
  303.                 mov.w   #0:16,@r0+
  304.                 mov.w   #0:8,@r0+
  305.                 mov.w   #0,@r0+
  306.  
  307.                 cmp.w   #H'fee0,@H'1000
  308.                 expect  1131
  309.                 cmp.w   #H'fee0:8,@H'1000
  310.                 endexpect
  311.                 cmp.w   #H'fee0:16,@H'1000
  312.  
  313.                 cmp.w   #H'ffe0,@H'1000
  314.                 expect  1131
  315.                 cmp.w   #H'ffe0:8,@H'1000
  316.                 endexpect
  317.                 cmp.w   #H'ffe0:16,@H'1000
  318.  
  319.                 cmp.w   #H'0130,@H'1000
  320.                 expect  1131
  321.                 cmp.w   #H'0130:8,@H'1000
  322.                 endexpect
  323.                 cmp.w   #H'0130:16,@H'1000
  324.  
  325.                 cmp.w   #H'0030,@H'1000
  326.                 expect  1131
  327.                 cmp.w   #H'0030:8,@H'1000
  328.                 endexpect
  329.                 cmp.w   #H'0030:16,@H'1000
  330.  
  331.                 cmp.w   #0:16,@r0+
  332.                 expect  1131
  333.                 cmp.w   #0:8,@r0+
  334.                 endexpect
  335.                 cmp.w   #0,@r0+
  336.  
  337.                 ; used in more complex expressions
  338.  
  339. DID             equ     42
  340.  
  341.                 CMP.B   #H'00+DID,R0
  342.                 CMP.B   #H'01+DID,R0
  343.                 CMP.B   #H'02+DID,R0
  344.                 CMP.B   #H'03+DID,R0
  345.  
  346.                 ADD.W   #(H'80*H'20),R6
  347.                 CMP.W   #(H'80*H'20),R6
  348.                 CMP.W   #(H'7f80+(H'80*H'20)),R6
  349.                 SUB.W   #(H'7F*H'80),R6
  350.                 ADD.W   #(H'6F*H'80),R6
  351.  
  352.                 ; On H8/500, DATA is an alias for DC
  353.  
  354.                 dc.b    10,20,30
  355.                 data.b  10,20,30
  356.                 dc.w    10,20,30
  357.                 data.w  10,20,30
  358.                 dc.s    1.0
  359.                 data.s  1.0
  360.  
  361. bitstruct       struct
  362. word            ds.w    1
  363. byte1           ds.b    1
  364. byte2           ds.b    2
  365. msb16           bit.w   #15,word
  366. lsb8            bit     0,byte1
  367. msb8            bit     #7,byte2
  368.                 endstruct
  369.  
  370. mystruct        bitstruct
  371.                 btst    mystruct_msb16
  372.                 btst    mystruct_msb8
  373.                 btst    mystruct_lsb8
  374.