箩五章高级汇编语言程序设计 第五x 高级汇语言序设 ☆☆★☆☆☆★☆☆☆☆★☆☆☆★☆☆☆☆☆☆☆☆★☆☆☆ MMM器
第 五 章 高 级 汇 编 语 言 程 序 设 计 封面 1 ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
箩五章高级汇编语言程序设计 第五章高级汇编语言程序设计 5.1高级语言特性 5.2宏结构程序设计 5.3模块化程序设计 5.4输入输出程序设计 本章重点及习题分析 MMMb器器 2
第 五 章 高 级 汇 编 语 言 程 序 设 计 第五章高级汇编语言程序设计 2 第五章 高级汇编语言程序设计 5.1 高级语言特性 5.2 宏结构程序设计 5.3 模块化程序设计 5.4 输入输出程序设计 本章重点及习题分析
箩五章高级汇编语言程序设计 5.1高级语言特性 通过引入一些伪指令,使汇编语言程序设计具有高 级语言程序设计的特性,即可以采用类似高级语言的形 式设计分支、循环和子程序结构,大大减轻了使用汇编 语言编程的工作量 5.1.1条件控制伪指令 5.1.2循环控制伪指令 5.1.3过程声明和调用伪指令 返回第五章
第 五 章 高 级 汇 编 语 言 程 序 设 计 5.1 高级语言特性 3 5.1 高级语言特性 通过引入一些伪指令,使汇编语言程序设计具有高 级语言程序设计的特性,即可以采用类似高级语言的形 式设计分支、循环和子程序结构,大大减轻了使用汇编 语言编程的工作量。 5.1.1 条件控制伪指令 5.1.2 循环控制伪指令 5.1.3 过程声明和调用伪指令 返回第五章
箩五章高级汇编语言程序设计 51.1条件控制伪指令 IF/.ELSE|F/.ELSE/.ENDF:类似高级语言的 F/THN,ELSE和ENDF的相应功能。汇编时展开,自动 生成相应的比较和条件转移指令,实现分支结构。 F条件表达式 ;条件为真,执行分支体1 分支体1 [.ELSE|F条件表达式;前面F[及前面 ELSEIF为假, 分支体2] ;当前条件为真,执行分支体2 I ELSE 前面|F[及前面 ELSEIF为假, 分支体3] 执行分支体3 ENDF 分支结束
第 五 章 高 级 汇 编 语 言 程 序 设 计 5.1.1 条件控制伪指令 4 5.1.1 条件控制伪指令 .IF/.ELSEIF/.ELSE/.ENDIF:类似高级语言的 IF/THIN,ELSE和ENDIF的相应功能。汇编时展开,自动 生成相应的比较和条件转移指令,实现分支结构。 .IF 条件表达式 ;条件为真,执行分支体1 分支体1 [.ELSEIF 条件表达式 ;前面IF[及前面ELSEIF]为假, 分支体2 ] ;当前条件为真,执行分支体2 [.ELSE ;前面IF[及前面ELSEIF]为假, 分支体3 ] ;执行分支体3 .ENDIF ;分支结束
箩五章高级汇编语言程序设计 不考虑多层嵌套,有4种基本格式 1.).F条件表达式;条件表达式为真,执行 分支体 ;分支体,否则执行后面 ENDIF ;语句 F条件表达式 分支体1 ELSE 分支体2 ENDF ;分支体1、2必做其 5
第 五 章 高 级 汇 编 语 言 程 序 设 计 条件控制伪指令 5 不考虑多层嵌套,有4种基本格式 .IF 条件表达式 ;条件表达式为真,执行 分支体 ;分支体,否则执行后面 .ENDIF ;语句 .IF 条件表达式 分支体1 .ELSE 分支体2 .ENDIF ;分支体1、2必做其一 1. 2
第章高级江编语言程序设计 ③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)=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)=dx)