第章高级江编语言程序设计 ③3).F条件表达式 分支体1 ELSE|F条件表达式 分支体2 ;分支体1和分支体2可能 ENDIF ;都不做 4.).F条件表达式;条件为真,执行分支体1 分支体1 且SE务件表达式:前面F[及前面SE,; ELSE;前面IF[及前面 ELSEIF]为假, 分支体3 ;执行分支体3 ENDF ;分支结束 6
第 五 章 高 级 汇 编 语 言 程 序 设 计 条件控制伪指令 6 .IF 条件表达式 分支体1 .ELSEIF 条件表达式 分支体2 ;分支体1和分支体2可能 .ENDIF ;都不做 .IF 条件表达式 ;条件为真,执行分支体1 分支体1 .ELSEIF 条件表达式;前面IF[及前面ELSEIF], 分支体2 ;为假当前条件为真,执行分支体2 .ELSE ;前面IF[及前面ELSEIF]为假, 分支体3 ;执行分支体3 .ENDIF ;分支结束 3. 4
箩五章高级汇编语言程序设计 三个问题: 1.关于条件表达式中的操作符 2.条件表达式举例 3.条件表达式中的有符号数和无符号数的规定
第 五 章 高 级 汇 编 语 言 程 序 设 计 条件表达式的三个问题 7 三个问题: 1.关于条件表达式中的操作符 2.条件表达式举例 3.条件表达式中的有符号数和无符号数的规定
第五章高级汇编语言程席设计 1.关于条件表达式中的操作符 ++ 1)表5.1列出的操作符用于伪指令的条件表达式, 第三章介绍的操作符用于数值表达式和地址表达式 (构成指令的操作数),两类操作符不可混淆。例如 表示相等,条件表达式用“=”,数值表达式用“EQ” 表示逻辑与,条件表达式用“&&”,数值表达式用AND。 2)操作符可分为:比较、逻辑运算和测试三类, 其中测试又可分为:标志测试、位测试、寄存器测试、 存储单元测试( reg\mem)。 3)操作符中,单目操作符为!、标志测试、寄存器 测试和存储单元测试,其他都是双目操作符 4)操作符的优先级可用圆括号规定。 8
第 五 章 高 级 汇 编 语 言 程 序 设 计 1.关于条件表达式中的操作符 8 1.关于条件表达式中的操作符 1)表5.1列出的操作符用于伪指令的条件表达式, 第三章介绍的操作符用于数值表达式和地址表达式 (构成指令的操作数),两类操作符不可混淆。例如 表示相等,条件表达式用“==”,数值表达式用“EQ”; 表示逻辑与,条件表达式用“&&” ,数值表达式用AND。 2)操作符可分为:比较、逻辑运算和测试三类, 其中测试又可分为:标志测试、位测试、寄存器测试、 存储单元测试(reg\mem)。 3)操作符中,单目操作符为!、标志测试、寄存器 测试和存储单元测试,其他都是双目操作符。 4)操作符的优先级可用圆括号规定
箩五章高级汇编语言程序设计 2.条件表达式举例 reg;寄存器不为0,条件为真;为0,条件为假 if al dec al end if mem;存储器不为0,条件为真;为0,条件为假 if byte ptr [bx] dec al endif carry? / overflow? 位测试操作符使用格式 一数值表达式&位数 如“AL&5”,测试A寄存器的D5。 9
第 五 章 高 级 汇 编 语 言 程 序 设 计 2.条件表达式举例/1 9 2.条件表达式举例 ◼ reg ;寄存器不为0,条件为真;为0,条件为假 .if al dec al .endif ◼ mem ;存储器不为0,条件为真;为0,条件为假 .if byte ptr[bx] dec al .endif ◼ carry? / overflow? … ◼ 位测试操作符使用格式: 数值表达式 & 位数 如 “AL & 5” ,测试AL寄存器的 D5
箩五章高级汇编语言程序设计 I reg OP reg;OP为表5.1中任意双目操作符 ax==bx aI>=bl/al&& bl reg OP mem reg OP立即数 ■ mem OP立即数 ■单目操作符’:可以放在前述任意表达式前面,测 试相反条件 !reg;寄存器不为0,条件为假;为0,条件为真 注释:1)条件控制伪指令不支持数值表达式,如 if(x+1)<=5,“+”并不是有效的操作符。 2)前述基本表达式可用“88”、“”连接构成复 表达式,如(ax=bx)&&(ox>=dx)。 10
第 五 章 高 级 汇 编 语 言 程 序 设 计 /2 10 ◼ reg OP reg ;OP为表5.1中任意双目操作符 ax==bx / al>=bl / al && bl ◼ reg OP mem ◼ reg OP 立即数 ◼ mem OP 立即数 ◼ 单目操作符‘!’:可以放在前述任意表达式前面,测 试相反条件 !reg ;寄存器不为0,条件为假;为0,条件为真 注释:1)条件控制伪指令不支持数值表达式,如 .if (x+1)<=5, “+”并不是有效的操作符。 2)前述基本表达式可用“&&” 、 “||”连接构成复杂 表达式,如 (ax==bx)&&(cx>=dx)