语法:

IF 逻辑表达式
指令序列1
ELSE
指令序列2
ENDIF

备注:
IF 也可以使用 [ 代替, ELSE 也可以使用 | 代替, ENDIF 也可以使用 ] 代替;
当 IF 后面的逻辑表达式为真,则执行指令序列1,否则执行 指令序列2;
ELSE 及 指令序列2 也可以没有,当 IF 后面的逻辑表达式为真,则执行 指令序列1 ,否则继续执行后面的 指令序列2 ;
IF 、ELSE 、ENDIF伪指令可以嵌套使用;

功能:

IF、ELSE、ENDIF伪指令能根据条件的成立与否决定是否执行某个指令序列。

例1:

GBLL SofTool             ;声明一个全局的逻辑变量,变量名为 SofTool, 默认值为 FALSE
IF SofTool = TRUE
指令序列1
ELSE
指令序列2
ENDIF

上面也可以写成:

GBLL SofTool             ;声明一个全局的逻辑变量,变量名为 SofTool, 默认值为 FALSE
[ SofTool = TRUE
指令序列1
|
指令序列2
]

例2:

此例主要想说明一下 {CONFIG} 是ADS内置变量。

注:
关于更多内置变量和常量,可参阅: https://www.softool.cn/blog-231.html

如果是 ADS1.2 ,则由以下选项控制:

IF ELSE ENDIF - 图1

如果是 ADS2 ,则由以下选项控制:

IF ELSE ENDIF - 图2

    GBLL    THUMBCODE
;//注: [ 前面必须有空格,否则ADS编译的时候会报错(Error  : All67E: Invalid line start)
   [ {CONFIG} = 16
THUMBCODE SETL  {TRUE}
     CODE32
   |
;注意此行必须顶格写,否则ADS1提示: A1163E:Unknown opcode ,ADS2提示:Unknown opcode THUMBCODE , expecting opcode or Macro
THUMBCODE SETL  {FALSE}
   ]