📄 indexed12.s
字号:
;;;; This file verifies the 68HC12 indexed addressing modes;; with a 5, 9 and 16-bit offset.;; .sect .text .globl _main_main: nop;;; Global check (1st) ldab L1-_main,x ; Offset/const of these 2 insns must be ldaa #L1-_main ; identical (likewise for 2nd global check);;; Test gas relax with difference of symbols (same section) ldaa L2-L1,x ; -> ldaa 2,x (5-bit offset), text seg adda L1-L2,y ; -> adda -2,y (5-bit offset), text seg orab L7-L6,sp ; -> orab 8,sp (5-bit offset), text seg anda L8-L7,sp ; -> anda 15,sp (5-bit offset), text seg eora L7-L8,sp ; -> eora -15,sp (5-bit offset), text seg eorb L7-L9,sp ; -> eorb -16,sp (5-bit offset), text seg andb L9-L7,sp ; -> andb 16,sp (9-bit offset), text seg staa L7-L10,x ; -> staa -17,x (9-bit offset), text seg stab L11-L10,y ; -> stab 128,y (9-bit offset), text seg stab L10-L11,y ; -> stab -128,y (9-bit offset), text seg stab L11-L10+1,y ; -> stab 129,y (9-bit offset), text seg stab L10-L11-1,y ; -> stab -129,y (9-bit offset), text seg stab L11-1-L10,y ; -> stab 127,y (9-bit offset), text seg stab L10-1-L11,y ; -> stab -129,y (9-bit offset), text seg tst L12-L10,x ; -> tst 255,x (9-bit offset), text seg tst L10-L12,x ; -> tst -255,x (9-bit offset), text seg tst L12-L10+1,x ; -> tst 256,x (16-bit offset), text seg mina L13-L10,x ; -> mina 256,x (16-bit offset) mina L10-L13,x ; -> mina -256,x (9-bit offset) maxa L14-L10,x ; -> maxa 257,x (16-bit offset) maxa L10-L14,x ; -> maxa -257,x (16-bit offset);;; Test gas relax with difference of symbols (different section) ldaa D2-D1,x ; -> ldaa 2,x (5-bit offset), data seg adda D1-D2,y ; -> adda -2,y (5-bit offset), data seg orab D7-D6,sp ; -> orab 8,sp (5-bit offset), data seg anda D8-D7,sp ; -> anda 15,sp (5-bit offset), data seg eora D7-D8,sp ; -> eora -15,sp (5-bit offset), data seg eorb D7-D9,sp ; -> eorb -16,sp (5-bit offset), data seg andb D9-D7,sp ; -> andb 16,sp (9-bit offset), data seg staa D7-D10,x ; -> staa -17,x (9-bit offset), data seg stab D11-D10,y ; -> stab 128,y (9-bit offset), data seg stab D10-D11,y ; -> stab -128,y (9-bit offset), data seg stab D11-D10+1,y ; -> stab 129,y (9-bit offset), data seg stab D10-D11+1,y ; -> stab -127,y (9-bit offset), data seg stab D11-1-D10,y ; -> stab 127,y (9-bit offset), data seg stab D10-1-D11,y ; -> stab -129,y (9-bit offset), data seg tst D12-D10,x ; -> tst 255,x (9-bit offset), data seg tst D10-D12,x ; -> tst -255,x (9-bit offset), data seg tst D12-D10+1,x ; -> tst 256,x (16-bit offset), data seg mina D13-D10,x ; -> mina 256,x (16-bit offset) mina D10-D13,x ; -> mina -256,x (9-bit offset) maxa D14-D10,x ; -> maxa 257,x (16-bit offset) maxa D10-D14,x ; -> maxa -257,x (16-bit offset);;; Global check (2nd) ldab L1-_main,x ldaa #L1-_main;;; Indexed addressing with external symbol ldab _external+128,x bra L2L1: .dc.w 0xaabbL2:L6: .ds.b 8, 0xa7L7: .ds.b 15, 0xa7L8: nopL9: nopL10: .skip 128L11: .skip 127L12: nopL13: nopL14: rts .sect .dataD1: .dc.w 0xaabbD2:D6: .ds.b 8, 0xa7D7: .ds.b 15, 0xa7D8: nopD9: nopD10: .skip 128D11: .skip 127D12: nopD13: nopD14:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -