📄 macro8.asm
字号:
*****************************************************************************
* Copyright (c) Motorola 1998 *
* File Name: MACRO8.ASM *
* *
* Description: Macro Library for HC08 *
* *
* *
* Assembler: CASM08Z (P&E Microcomputer Systems Inc) *
* Version: 3.16 *
* *
* Current Revision: 1.0 *
* Current Revision Release Date: 1998.08.03 by Derek Lau *
* *
* Updated History *
* Rev YYYY.MM.DD Author Description of Change *
* --- ----------- ------ --------------------- *
* 0.0 1998.04.29 Tony Luk orginal release *
* 0.1 1998.08.03 Tony Luk general release *
*****************************************************************************
* This Program is a freeware to demonstrate the operation of Motorola *
* Microcontroller. Motorola reserves the right to make changes without *
* further notice to any product herein to improve reliability, function, or *
* design. Motorola does not assume any liability arising out of the *
* application or use of any product, circuit, or software described herein; *
* neither does it convey any license under its patent rights nor the rights *
* of others. Motorola products are not designed, intended, or authorized *
* for use as components in systems intended for surgical implant into the *
* body, or other applications intended to support life, or for any other *
* application in which the failure of the Motorola product could create a *
* situation where personal injury or death may occur. Should Buyer purchase *
* or use Motorola products for any such intended or unauthorized *
* application, Buyer shall indemnify and hold Motorola and its officers, *
* employees, subsidiaries, affiliates, and distributors harmless against *
* all claims, costs, damages, and expenses, and reasonable attorney fees *
* arising out of, directly or indirectly, any claim of personal injury or *
* death associated with such unintended or unauthorized use, even if such *
* claim alleges that Motorola was negligent regarding the design or *
* manufacture of the part. Motorola and the Motorola logo* are registered *
* trademarks of Motorola Inc *
*****************************************************************************
* ====== MACRO Defination ================================================
* TOGGLE <bit>,<port> toggle <bit> of <port>
* LMOV <source>,<dest.> copy <source> to <dest.>
* KMOV <ctst>,<dest.> copy #<ctst> to <dest.>
* KCMPEQ <ctst>,<addr> if (reg_A == #<ctst>), bra <addr>
* KCMPNE <ctst>,<addr> if (reg_A != #<ctst>), bra <addr>
* KCMPHI <ctst>,<addr> if (reg_A > #<ctst>), bra <addr>
* KCMPLO <ctst>,<addr> if (reg_A < #<ctst>), bra <addr>
* KCMPHS <ctst>,<addr> if (reg_A >= #<ctst>), bra <addr>
* KCMPLS <ctst>,<addr> if (reg_A <= #<ctst>), bra <addr>
* CMPEQ <var>,<addr> if (reg_A == <var>), bra <addr>
* CMPNE <var>,<addr> if (reg_A != <var>), bra <addr>
* CMPHI <var>,<addr> if (reg_A > <var>), bra <addr>
* CMPLO <var>,<addr> if (reg_A < <var>), bra <addr>
* CMPHS <var>,<addr> if (reg_A >= <var>), bra <addr>
* CMPLS <var>,<addr> if (reg_A <= <var>), bra <addr>
* KCPXNE <ctst>,<addr> if (reg_X != #<ctst>), bra <addr>
* KCPXEQ <ctst>,<addr> if (reg_X = #<ctst>), bra <addr>
* KCPXHI <ctst>,<addr> if (reg_X > #<ctst>), bra <addr>
* KCPXLO <ctst>,<addr> if (reg_X < #<ctst>), bra <addr>
* KCPXHS <ctst>,<addr> if (reg_X >= #<ctst>), bra <addr>
* KCPXLS <ctst>,<addr> if (reg_X <= #<ctst>), bra <addr>
* CPXHI <var>,<addr> if (reg_X > <var>), bra <addr>
* CPXLO <var>,<addr> if (reg_X < <var>), bra <addr>
* CPXEQ <var>,<addr> if (reg_X = <var>), bra <addr>
* CPXNE <var>,<addr> if (reg_X != <var>), bra <addr>
* CPXHS <var>,<addr> if (reg_X >= <var>), bra <addr>
* CPXLS <var>,<addr> if (reg_X <= <var>), bra <addr>
.PAGE
* ========================================================================
* MACRO - toggle bit %1 of Port %2
$MACRO TOGGLE
lda %2
eor #{1<%1}
sta %2
$MACROEND
* ========================================================================
* MACRO - copy %1 to %2
* where %1 or/and %2 are memory location outside page 0
$MACRO LMOV
lda %1
sta %2
$MACROEND
* MACRO - copy #%1 to %2
$MACRO KMOV
mov #%1,%2
$MACROEND
* ========================================================================
* MACRO - if (reg_A != #<ctst>), bra <addr>
$MACRO KCMPNE
cmp #%1
bne %2
$MACROEND
* MACRO - if (reg_A = #<ctst>), bra <addr>
$MACRO KCMPEQ
cmp #%1
beq %2
$MACROEND
* MACRO - if (reg_A > #<ctst>), bra <addr>
$MACRO KCMPHI
cmp #%1
bhi %2
$MACROEND
* MACRO - if (reg_A < #<ctst>), bra <addr>
$MACRO KCMPLO
cmp #%1
blo %2
$MACROEND
* MACRO - if (reg_A >= #<ctst>), bra <addr>
$MACRO KCMPHS
cmp #%1
bhs %2
$MACROEND
* MACRO - if (reg_A <= #<ctst>), bra <addr>
$MACRO KCMPLS
cmp #%1
bls %2
$MACROEND
* ========================================================================
* MACRO - if (reg_A != <var>), bra <addr>
$MACRO CMPNE
cmp %1
bne %2
$MACROEND
* MACRO - if (reg_A = <var>), bra <addr>
$MACRO CMPEQ
cmp %1
beq %2
$MACROEND
* MACRO - if (reg_A > <var>), bra <addr>
$MACRO CMPHI
cmp %1
bhi %2
$MACROEND
* MACRO - if (reg_A < <var>), bra <addr>
$MACRO CMPLO
cmp %1
blo %2
$MACROEND
* MACRO - if (reg_A >= <var>), bra <addr>
$MACRO CMPHS
cmp %1
bhs %2
$MACROEND
* MACRO - if (reg_A <= <var>), bra <addr>
$MACRO CMPLS
cmp %1
bls %2
$MACROEND
* ========================================================================
* MACRO - if (reg_X != #<ctst>), bra <addr>
$MACRO KCPXNE
cpx #%1
bne %2
$MACROEND
* MACRO - if (reg_X = #<ctst>), bra <addr>
$MACRO KCPXEQ
cpx #%1
beq %2
$MACROEND
* MACRO - if (reg_X > #<ctst>), bra <addr>
$MACRO KCPXHI
cpx #%1
bhi %2
$MACROEND
* MACRO - if (reg_X < #<ctst>), bra <addr>
$MACRO KCPXLO
cpx #%1
blo %2
$MACROEND
* MACRO - if (reg_X >= #<ctst>), bra <addr>
$MACRO KCPXHS
cpx #%1
bhs %2
$MACROEND
* MACRO - if (reg_X <= #<ctst>), bra <addr>
$MACRO KCPXLS
cpx #%1
bls %2
$MACROEND
* ========================================================================
* MACRO - if (reg_X != <var>), bra <addr>
$MACRO CPXNE
cpx %1
bne %2
$MACROEND
* MACRO - if (reg_X = <var>), bra <addr>
$MACRO CPXEQ
cpx %1
beq %2
$MACROEND
* MACRO - if (reg_X > <var>), bra <addr>
$MACRO CPXHI
cpx %1
bhi %2
$MACROEND
* MACRO - if (reg_X < <var>), bra <addr>
$MACRO CPXLO
cpx %1
blo %2
$MACROEND
* MACRO - if (reg_X >= <var>), bra <addr>
$MACRO CPXHS
cpx %1
bhs %2
$MACROEND
* MACRO - if (reg_X <= <var>), bra <addr>
$MACRO CPXLS
cpx %1
bls %2
$MACROEND
* ========================================================================
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -