MAX-IDE入门
[09-12 17:53:01] 来源:http://www.88dzw.com 单片机学习 阅读:8337次
文章摘要: ONE equ 01 TWO equ 02 move Acc, #ONE move Acc, #(ONE+TWO) 等同也可以被后面的等同说明引用。 ONE equ 01 TWO equ ONE+ONE 定义 定义伪指令支持C风格的直接文本替换,不需要额外的处理,常用于包含文件中定义外设寄存器。替换文本被限制为单行;不支持接续符。不支持C风格的宏。
MAX-IDE入门,标签:单片机开发,单片机原理,单片机教程,http://www.88dzw.comONE equ 01
TWO equ 02
move Acc, #ONE
move Acc, #(ONE+TWO)
等同也可以被后面的等同说明引用。
ONE equ 01
TWO equ ONE+ONE
定义
定义伪指令支持C风格的直接文本替换,不需要额外的处理,常用于包含文件中定义外设寄存器。替换文本被限制为单行;不支持接续符。不支持C风格的宏。
#define PO[0] M0[0]
move Acc, PO[0] ; Parses as 'move Acc, M0[0]'
数据声明DB和DW伪指令用于在十六进制文件的当前位置插入原始数据字节(包括来自于字符串值的数据字节)或字。
db 055h, 0AAh, 055h, 0AAh ; byte values
dw 0AAAAh, 05555h ; word values
db "MAX-IDE Environment " ; byte value for each char (padded to even count)
条件汇编
只有符合某些布尔条件时,才对某块代码进行汇编。具有以下格式。
IF (<boolean statement>)
statements
...
ENDIF
布尔表达式可以由常数、等同或者以下布尔运算符组成:=, !=, <, <=, >, 和 >=。在条件汇编代码块中只能有代码和包含语句,而不能有宏或者等同说明。
DEBUG equ 0
DOINC equ 1
IF (DEBUG != 0)
call RoutineDbg
ENDIF
IF (DEBUG = 0)
call Routine
ENDIF
IF (DOINC = 1)
$include(defines.inc)
ENDIF
宏
一段代码所执行的功能可以用宏来表示,每当该功能被调用时,它被当地展开并汇编。它们具有以下格式。
<identifier> MACRO [[PARAM <parm1>] [whitespace AND/OR comma] [<parm2>] ...]
[LOCAL <local1> [whitespace AND/OR comma] [<local2>] ...]
<macro assembly statements, local labels>
...
ENDM
最简单的一类宏仅是在其被引用时,将其代码插入。所插入代码中的等同、定义和嵌套的宏调用等均按常规方式处理。
ThreeNops MACRO
nop
nop
nop
ENDM
ThreeNops --> nop
nop
nop
Inc MACRO PARAM Register
push Acc
move Acc, Register
add #1
move Register, Acc
pop Acc
ENDM
Inc LC[0] --> push Acc
move Acc, LC[0]
add #1
move LC[0], Acc
pop Acc
宏也可以含有局部标识符,代码展开后对其重新命名,这样每次引用宏时它们各不相同。
LoopN MACRO PARAM Count
LOCAL L1
move LC[0], Count
L1:
djnz LC[0], L1
ENDM
在引用这个宏时,插入其代码时标号'L1'将被更改为一个不同的临时标号。
《MAX-IDE入门》相关文章
- › MAX-IDE Simulator User's G
- › MAX-IDE入门
- › Automatically Initializing Data Segment Values in MAX-IDE
- 在百度中搜索相关文章:MAX-IDE入门
- 在谷歌中搜索相关文章:MAX-IDE入门
- 在soso中搜索相关文章:MAX-IDE入门
- 在搜狗中搜索相关文章:MAX-IDE入门