⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 macro8.asm

📁 MC68HC608JB8的固件例程源程序.zip
💻 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 + -