逆アセンブラ

8051の逆アセンブラできるd52とradare2に含まれるrasm2を試してみました。

```:d52
X0100:  mov     0c7h,#0aah      ; 0100   75 c7 aa   uG*
        mov     0c7h,#55h       ; 0103   75 c7 55   uGU
X0106:  mov     9dh,#0ffh       ; 0106   75 9d ff   u..
        mov     0c7h,#0aah      ; 0109   75 c7 aa   uG*
        mov     0c7h,#55h       ; 010c   75 c7 55   uGU
        mov     pwmp,#0ah       ; 010f   75 8f 0a   u..
X0112:  mov     0c7h,#0aah      ; 0112   75 c7 aa   uG*
        mov     0c7h,#55h       ; 0115   75 c7 55   uGU
        mov     0c2h,#0         ; 0118   75 c2 00   uB.
        mov     sp,#2fh         ; 011b   75 81 2f   u./
        mov     dptr,#X0fc0     ; 011e   90 0f c0   ..@
        inc     74h             ; 0121   05 74      .t
        add     a,#0f0h         ; 0123   24 f0      $p
        mov     a,#2ch          ; 0125   74 2c      t,
        movx    @dptr,a         ; 0127   f0         p
        mov     dptr,#X0fc0     ; 0128   90 0f c0   ..@
        dec     r0              ; 012b   18         .
        movx    a,@dptr         ; 012c   e0         `
        orl     a,#40h          ; 012d   44 40      D@
        movx    @dptr,a         ; 012f   f0         p
        mov     tm2con,#0fh     ; 0130   75 ea 0f   uj.
        mov     p2,#0fbh        ; 0133   75 a0 fb   u {
        mov     r0,#0b4h        ; 0136   78 b4      x4
        mov     a,#1            ; 0138   74 01      t.
        movx    @r0,a           ; 013a   f2         r
        mov     r0,#0b3h        ; 013b   78 b3      x3
        mov     a,#1            ; 013d   74 01      t.
        movx    @r0,a           ; 013f   f2         r
        mov     r0,#0bfh        ; 0140   78 bf      x?
```

```:rasm2
0x00000100   3                   75c7aa  mov 0xc7, #0xaa
0x00000103   3                   75c755  mov 0xc7, #0x55
0x00000106   3                   759dff  mov 0x9d, #0xff
0x00000109   3                   75c7aa  mov 0xc7, #0xaa
0x0000010c   3                   75c755  mov 0xc7, #0x55
0x0000010f   3                   758f0a  mov 0x8f, #0x0a
0x00000112   3                   75c7aa  mov 0xc7, #0xaa
0x00000115   3                   75c755  mov 0xc7, #0x55
0x00000118   3                   75c200  mov 0xc2, #0x00
0x0000011b   3                   75812f  mov 0x81, #0x2f
0x0000011e   3                   900fc0  mov dptr, #0x0fc0
0x00000121   2                     0574  inc 0x74
0x00000123   2                     24f0  add a, #0xf0
0x00000125   2                     742c  mov a, #0x2c
0x00000127   1                       f0  movx @dptr, a
0x00000128   3                   900fc0  mov dptr, #0x0fc0
0x0000012b   1                       18  dec r0
0x0000012c   1                       e0  movx a, @dptr
0x0000012d   2                     4440  orl a, #0x40
0x0000012f   1                       f0  movx @dptr, a
0x00000130   3                   75ea0f  mov 0xea, #0x0f
0x00000133   3                   75a0fb  mov 0xa0, #0xfb
0x00000136   2                     78b4  mov r0, #0xb4
0x00000138   2                     7401  mov a, #0x01
0x0000013a   1                       f2  movx @r0, a
0x0000013b   2                     78b3  mov r0, #0xb3
0x0000013d   2                     7401  mov a, #0x01
0x0000013f   1                       f2  movx @r0, a
0x00000140   2                     78bf  mov r0, #0xbf
```

mipsのバイナリを逆アセンブル

```:objdump
80000400:       00801a3c        lui     k0,0x8000
80000404:       84075a27        addiu   k0,k0,1924
80000408:       08004003        jr      k0
8000040c:       00000000        nop
80000410:       00b0083c        lui     t0,0xb000
80000414:       01000924        li      t1,1
80000418:       a22009a1        sb      t1,8354(t0)
8000041c:       a12009a1        sb      t1,8353(t0)
80000420:       10000924        li      t1,16
80000424:       384009a1        sb      t1,16440(t0)
80000428:       304009a1        sb      t1,16432(t0)
8000042c:       0f000924        li      t1,15
80000430:       600009a1        sb      t1,96(t0)
80000434:       8b00093c        lui     t1,0x8b
80000438:       45022935        ori     t1,t1,0x245
8000043c:       640009ad        sw      t1,100(t0)
80000440:       01000924        li      t1,1
80000444:       890009a1        sb      t1,137(t0)
80000448:       040000a1        sb      zero,4(t0)
8000044c:       081000ad        sw      zero,4104(t0)
80000450:       0c1000ad        sw      zero,4108(t0)
80000454:       ffff0924        li      t1,-1
80000458:       000009a1        sb      t1,0(t0)
8000045c:       001009a5        sh      t1,4096(t0)
80000460:       041009ad        sw      t1,4100(t0)
80000464:       01580924        li      t1,22529
80000468:       081009a5        sh      t1,4104(t0)
8000046c:       701000a1        sb      zero,4208(t0)
```

rasm2でmipsのバイナリを逆アセンブルすると途中でバウンダリがおかしくなって正常に出力されなくなりました。