基本汇编语言程席设计 第四章 基本江编语言程序设计 大大大大大大大大大大大大大大大大大
第 四 章 基 本 汇 编 语 言 程 序 设 计 1 封面 * * * * * * * * * * * * * * * * *
基本汇编语言程序设计 第四章基本汇编语言程序设计 4.1顺序程序设计 4.2分支程序设计 4.3循环程序设让 4.4子程序设让 4.4.1过程定义伪指令 4.4.2子程序的参数传递 4.4.3子程序的嵌套、递归与重入 4.4.4子程序的应用 本章要点及习题分析
第 四 章 基 本 汇 编 语 言 程 序 设 计 2 第四章基本汇编语言程序设计 第四章 基本汇编语言程序设计 4.1 顺序程序设计 4.2 分支程序设计 4.3 循环程序设计 4.4 子程序设计 4.4.1 过程定义伪指令 4.4.2 子程序的参数传递 4.4.3 子程序的嵌套、递归与重入 4.4.4 子程序的应用 本章要点及习题分析
基本汇编语言程席设计 4.1顺序程序设计 指令按程序中的书写顺序逐条执行,称为顺序程序。 除非编程解决非常简单的问题,顺序程序并不多见, 但是顺序程序往往是复杂程序结构的一部分,如分支 结构的一个分支,循环结构的循环体等。 回芧四拿
第 四 章 基 本 汇 编 语 言 程 序 设 计 3 4.1顺序程序设计(e) 4.1 顺序程序设计 指令按程序中的书写顺序逐条执行,称为顺序程序。 除非编程解决非常简单的问题,顺序程序并不多见, 但是顺序程序往往是复杂程序结构的一部分,如分支 结构的一个分支,循环结构的循环体等。 返回第四章
基本汇编语言程序设计 例4.1:设有3个字变量x,y和z,求出三者之和,结果 存入字变量w。 mode smal I star tup stack mov ax X data add ax, y dw 5 add ax. z XYz dw 6 mov w ax dw 7 exit o w dw end code 盒
第 四 章 基 本 汇 编 语 言 程 序 设 计 4 例4.1 例4.1:设有3个字变量x,y和z,求出三者之和,结果 存入字变量w。 .model small .startup .stack mov ax,x .data add ax,y X dw 5 add ax,z Y dw 6 mov w,ax Z dw 7 .exit 0 W dw ? end .code
基本汇编语言程序设计 例4.2设有一个64位数据,将它整个左移8位。 2qa(7 4 qvar[6] 56 gvar[5 78 qvar[4] 87 qvar3 65 qvar [2] 43 qvar/1 1 qvar[O]
第 四 章 基 本 汇 编 语 言 程 序 设 计 5 例4.2/1 例4.2 设有一个64位数据,将它整个左移8位。 12 34 56 78 87 65 43 21 00 qvar[0] qvar[1] qvar[2] qvar[3] qvar[4] qvar[5] qvar[6] qvar[7]
基本汇编语言程序设计 mode small stack data var dq1234567887654321h code mov al, byte ptr gvar [6] mov byte ptr gvar[7], al mov al, byte ptr avar[5] mov byte ptr gvar[6, al mov al, byte ptr gvar[4] mov byte ptr gvar[5], al mov al, byte ptr gvar3] mov byte ptr gvar[41, al
第 四 章 基 本 汇 编 语 言 程 序 设 计 6 例4.2/2 .model small .stack .data Qvar dq 1234567887654321h .code mov al,byte ptr qvar[6] mov byte ptr qvar[7],al mov al,byte ptr qvar[5] mov byte ptr qvar[6],al mov al,byte ptr qvar[4] mov byte ptr qvar[5],al mov al,byte ptr qvar[3] mov byte ptr qvar[4],al
基本汇编语言程席设计 mov al, byte ptr gvar [2] mov byte ptr gvar[3], al mov al, byte ptr gvar[l] mov byte ptr gvar[2], al mov al, byte ptr gvar[O] mov byte ptr gvar[], al mov byte ptr gvar[o], 0 1234567887654321h(移位前) (移位后)3456788765432100h 還国第四章
第 四 章 基 本 汇 编 语 言 程 序 设 计 7 例4.2/3 mov al,byte ptr qvar[2] mov byte ptr qvar[3],al mov al,byte ptr qvar[1] mov byte ptr qvar[2],al mov al,byte ptr qvar[0] mov byte ptr qvar[1],al mov byte ptr qvar[0],0 12 34 56 78 87 65 43 21h 34 56 78 87 65 43 21 00h (移位前) (移位后) 返回第四章
基本汇编语言程序设计 4.2分支程序设计 条件转移指令J和无条件转移指令JMP用于实现程序 的分支结构,JP不测试条件,Jcc可根据条件是否成立 决定转移到指定位置或不转移而顺序执行后续指令。由 于Jc不支持条件表达式,而是以当前标志位的状态为 条件,故Jc之前一定要安排设置标志位的指令,如加 减法、比较、测试等指令。基本分支类型分为单分支和 双分支
第 四 章 基 本 汇 编 语 言 程 序 设 计 8 4.2分支程序设计 4.2 分支程序设计 条件转移指令Jcc和无条件转移指令JMP用于实现程序 的分支结构,JMP不测试条件,Jcc可根据条件是否成立 决定转移到指定位置或不转移而顺序执行后续指令。由 于Jcc不支持条件表达式,而是以当前标志位的状态为 条件,故Jcc之前一定要安排设置标志位的指令,如加 减法、比较、测试等指令。基本分支类型分为单分支和 双分支
基本汇编语言程席设计 1.单分支类型 Jec条件满足? 分支语句体 〔a)单分支结构 对同一个问题,根据选择的条件不同,单分支结 构的流程图有两种画法,对应的程序也有两种编法。 如计算AX中的有符号数的绝对值
第 四 章 基 本 汇 编 语 言 程 序 设 计 9 单分支 1. 单分支类型 对同一个问题,根据选择的条件不同,单分支结 构的流程图有两种画法,对应的程序也有两种编法。 如计算AX中的有符号数的绝对值
基本汇编语言程席设计 AX≥0? AX<0? 求补指令 求补指令 保存结果 JMP 保存结果 cmp ax, 0 cmp ax, 0 (教材有误) Jnge yeshe ige honed jmp done neg ax yesneg: neg ax Noneg: mov result, ax Done: mov result, ax 10
第 四 章 基 本 汇 编 语 言 程 序 设 计 10 单分支 cmp ax,0 jge noneg neg ax Noneg: mov result,ax cmp ax,0 (教材有误) jnge yesneg jmp done yesneg: neg ax Done: mov result,ax AX≥0 ? 求补指令 Y N 保存结果 AX<0? 求补指令 Y N JMP 保存结果