📄 adj-jump.s
字号:
;;; Test 68HC11 linker relaxation and fixup of bcc/bra branches;;; .sect .text .globl _start_start: ;; Next 'bra' is assembled as a 'jmp'. It is relaxed to 'bra L3' ;; during a second pass of relax. bra L3 .skip 20 ;; Next 'jmp' must be relaxed to a 'bra' during the first pass. ;; The branch offset must then be adjusted by consecutive relax. jmp L3L1: addd 0,x bne L1 ; Branch not adjusted addd _toto beq L1 ; Backward branch, adjust -1 addd _toto+1 jbne L1 ; Backward branch, adjust -2 bgt L1 ; All possible backward branchs, adjust -2 bge L1 beq L1 ble L1 blt L1 bhi L1 bhs L1 beq L1 bls L1 blo L1 bcs L1 bmi L1 bvs L1 bcc L1 bpl L1 bvc L1 bne L1 brn L1 bra L1 ;; Relax several insn to reduce block by 15 addd _toto addd _toto addd _toto addd _toto addd _toto addd _toto addd _toto addd _toto addd _toto addd _toto addd _toto addd _toto addd _toto addd _toto addd _totoL2: jmp _start ; -> relax to bra _start bne L2 ; Backward branch, adjust -1 beq L3 ; Forward branch, adjust -2 addd _toto beq L3 ; Forward branch, adjust -1 addd _totoL3: addd _toto rts .sect .page0_bar: .long 0_toto: .long 0 .skip 32stack: .skip 10_table:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -