1 #objdump: -S 2 #as: -m68hc12 -gdwarf2 3 #name: 68HC12 indexed addressing mode with 5, 9 and 16-bit offsets (indexed12) 4 #source: indexed12.s 5 6 .*: +file format elf32\-m68hc12 7 8 Disassembly of section .text: 9 10 0+ <_main>: 11 ;; with a 5, 9 and 16-bit offset. 12 ;; 13 .sect .text 14 .globl _main 15 _main: 16 nop 17 0: a7 nop 18 ;;; Global check \(1st\) 19 ldab L1\-_main,x ; Offset/const of these 2 insns must be 20 1: e6 e0 93 ldab 0x93,X 21 ldaa #L1\-_main ; identical \(likewise for 2nd global check\) 22 4: 86 93 ldaa #0x93 23 ;;; Test gas relax with difference of symbols \(same section\) 24 ldaa L2\-L1,x ; \-> ldaa 2,x \(5\-bit offset\), text seg 25 6: a6 02 ldaa 0x2,X 26 adda L1\-L2,y ; \-> adda \-2,y \(5\-bit offset\), text seg 27 8: ab 5e adda 0xfffe,Y 28 29 orab L7\-L6,sp ; \-> orab 8,sp \(5\-bit offset\), text seg 30 a: ea 88 orab 0x8,SP 31 anda L8\-L7,sp ; \-> anda 15,sp \(5\-bit offset\), text seg 32 c: a4 8f anda 0xf,SP 33 eora L7\-L8,sp ; \-> eora \-15,sp \(5\-bit offset\), text seg 34 e: a8 91 eora 0xfff1,SP 35 eorb L7\-L9,sp ; \-> eorb \-16,sp \(5\-bit offset\), text seg 36 10: e8 90 eorb 0xfff0,SP 37 38 andb L9\-L7,sp ; \-> andb 16,sp \(9\-bit offset\), text seg 39 12: e4 f0 10 andb 0x10,SP 40 staa L7\-L10,x ; \-> staa \-17,x \(9\-bit offset\), text seg 41 15: 6a e1 ef staa 0xffef,X 42 stab L11\-L10,y ; \-> stab 128,y \(9\-bit offset\), text seg 43 18: 6b e8 80 stab 0x80,Y 44 stab L10\-L11,y ; \-> stab \-128,y \(9\-bit offset\), text seg 45 1b: 6b e9 80 stab 0xff80,Y 46 stab L11\-L10\+1,y ; \-> stab 129,y \(9\-bit offset\), text seg 47 1e: 6b e8 81 stab 0x81,Y 48 stab L10\-L11\-1,y ; \-> stab \-129,y \(9\-bit offset\), text seg 49 21: 6b e9 7f stab 0xff7f,Y 50 stab L11\-1\-L10,y ; \-> stab 127,y \(9\-bit offset\), text seg 51 24: 6b e8 7f stab 0x7f,Y 52 stab L10\-1\-L11,y ; \-> stab \-129,y \(9\-bit offset\), text seg 53 27: 6b e9 7f stab 0xff7f,Y 54 55 tst L12\-L10,x ; \-> tst 255,x \(9\-bit offset\), text seg 56 2a: e7 e0 ff tst 0xff,X 57 tst L10\-L12,x ; \-> tst \-255,x \(9\-bit offset\), text seg 58 2d: e7 e1 01 tst 0xff01,X 59 tst L12\-L10\+1,x ; \-> tst 256,x \(16\-bit offset\), text seg 60 30: e7 e2 01 00 tst 0x100,X 61 mina L13\-L10,x ; \-> mina 256,x \(16\-bit offset\) 62 34: 18 19 e2 01 mina 0x100,X 63 38: 00 64 mina L10\-L13,x ; \-> mina \-256,x \(9\-bit offset\) 65 39: 18 19 e1 00 mina 0xff00,X 66 67 maxa L14\-L10,x ; \-> maxa 257,x \(16\-bit offset\) 68 3d: 18 18 e2 01 maxa 0x101,X 69 41: 01 70 maxa L10\-L14,x ; \-> maxa \-257,x \(16\-bit offset\) 71 42: 18 18 e2 fe maxa 0xfeff,X 72 46: ff 73 74 ;;; Test gas relax with difference of symbols \(different section\) 75 ldaa D2\-D1,x ; \-> ldaa 2,x \(5\-bit offset\), data seg 76 47: a6 02 ldaa 0x2,X 77 adda D1\-D2,y ; \-> adda \-2,y \(5\-bit offset\), data seg 78 49: ab 5e adda 0xfffe,Y 79 80 orab D7\-D6,sp ; \-> orab 8,sp \(5\-bit offset\), data seg 81 4b: ea 88 orab 0x8,SP 82 anda D8\-D7,sp ; \-> anda 15,sp \(5\-bit offset\), data seg 83 4d: a4 8f anda 0xf,SP 84 eora D7\-D8,sp ; \-> eora \-15,sp \(5\-bit offset\), data seg 85 4f: a8 91 eora 0xfff1,SP 86 eorb D7\-D9,sp ; \-> eorb \-16,sp \(5\-bit offset\), data seg 87 51: e8 90 eorb 0xfff0,SP 88 89 andb D9\-D7,sp ; \-> andb 16,sp \(9\-bit offset\), data seg 90 53: e4 f0 10 andb 0x10,SP 91 staa D7\-D10,x ; \-> staa \-17,x \(9\-bit offset\), data seg 92 56: 6a e1 ef staa 0xffef,X 93 stab D11\-D10,y ; \-> stab 128,y \(9\-bit offset\), data seg 94 59: 6b e8 80 stab 0x80,Y 95 stab D10\-D11,y ; \-> stab \-128,y \(9\-bit offset\), data seg 96 5c: 6b e9 80 stab 0xff80,Y 97 stab D11\-D10\+1,y ; \-> stab 129,y \(9\-bit offset\), data seg 98 5f: 6b e8 81 stab 0x81,Y 99 stab D10\-D11\+1,y ; \-> stab \-127,y \(9\-bit offset\), data seg 100 62: 6b e9 81 stab 0xff81,Y 101 stab D11\-1\-D10,y ; \-> stab 127,y \(9\-bit offset\), data seg 102 65: 6b e8 7f stab 0x7f,Y 103 stab D10\-1\-D11,y ; \-> stab \-129,y \(9\-bit offset\), data seg 104 68: 6b e9 7f stab 0xff7f,Y 105 106 tst D12\-D10,x ; \-> tst 255,x \(9\-bit offset\), data seg 107 6b: e7 e0 ff tst 0xff,X 108 tst D10\-D12,x ; \-> tst \-255,x \(9\-bit offset\), data seg 109 6e: e7 e1 01 tst 0xff01,X 110 tst D12\-D10\+1,x ; \-> tst 256,x \(16\-bit offset\), data seg 111 71: e7 e2 01 00 tst 0x100,X 112 mina D13\-D10,x ; \-> mina 256,x \(16\-bit offset\) 113 75: 18 19 e2 01 mina 0x100,X 114 79: 00 115 mina D10\-D13,x ; \-> mina \-256,x \(9\-bit offset\) 116 7a: 18 19 e1 00 mina 0xff00,X 117 118 maxa D14\-D10,x ; \-> maxa 257,x \(16\-bit offset\) 119 7e: 18 18 e2 01 maxa 0x101,X 120 82: 01 121 maxa D10\-D14,x ; \-> maxa \-257,x \(16\-bit offset\) 122 83: 18 18 e2 fe maxa 0xfeff,X 123 87: ff 124 125 ;;; Global check \(2nd\) 126 ldab L1\-_main,x 127 88: e6 e0 93 ldab 0x93,X 128 ldaa #L1\-_main 129 8b: 86 93 ldaa #0x93 130 131 ;;; Indexed addressing with external symbol 132 ldab _external\+128,x 133 8d: e6 e2 00 80 ldab 0x80,X 134 bra L2 135 91: 20 02 bra 0x95 <L2> 136 137 0+93 <L1>: 138 93: aa bb oraa 5,SP\- 139 140 0+95 <L2>: 141 95: a7 nop 142 96: a7 nop 143 97: a7 nop 144 98: a7 nop 145 99: a7 nop 146 9a: a7 nop 147 9b: a7 nop 148 9c: a7 nop 149 150 0+9d <L7>: 151 9d: a7 nop 152 9e: a7 nop 153 9f: a7 nop 154 a0: a7 nop 155 a1: a7 nop 156 a2: a7 nop 157 a3: a7 nop 158 a4: a7 nop 159 a5: a7 nop 160 a6: a7 nop 161 a7: a7 nop 162 a8: a7 nop 163 a9: a7 nop 164 aa: a7 nop 165 ab: a7 nop 166 167 0+ac <L8>: 168 L6: 169 .ds.b 8, 0xa7 170 L7: 171 .ds.b 15, 0xa7 172 L8: 173 nop 174 ac: a7 nop 175 176 0+ad <L9>: 177 L9: 178 nop 179 ad: a7 nop 180 181 0+ae <L10>: 182 ... 183 184 0+12e <L11>: 185 ... 186 187 0+1ad <L12>: 188 L10: 189 .skip 128 190 L11: 191 .skip 127 192 L12: 193 nop 194 1ad: a7 nop 195 196 0+1ae <L13>: 197 L13: 198 nop 199 1ae: a7 nop 200 201 0+1af <L14>: 202 L14: 203 rts 204 1af: 3d rts 205