微机原理第04章3顺序分支循环结构06ppt课件_第1页
微机原理第04章3顺序分支循环结构06ppt课件_第2页
微机原理第04章3顺序分支循环结构06ppt课件_第3页
微机原理第04章3顺序分支循环结构06ppt课件_第4页
微机原理第04章3顺序分支循环结构06ppt课件_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、计算机接口技术计算机接口技术(汇编与接口)(汇编与接口)第四章第四章 汇编语言程序设计汇编语言程序设计3主要内容:主要内容:u汇编语言源程序的结构汇编语言源程序的结构u汇编语言语句格式汇编语言语句格式u伪指令伪指令u功能调用功能调用u汇编语言程序设计汇编语言程序设计一个完整源程序结构例一个完整源程序结构例DSEG SEGMENT DATA1 DB 1,2, DATA2 DW 1234HDSEG ENDSESEG SEGMENT DB 20 DUP(?)(?)ESEG ENDSSSEG SEGMENT STACK STACK DB 200 DUP(?)(?)SSEG ENDS一个完整源程序结构例

2、一个完整源程序结构例 CSEG SEGMENT ASSUME CS:CSEG,DS:DSEG,ES:ESEG,SS:SSEG START:MOV AX,DSEG MOV DS,AX MOV AX,ESEG MOV ES,AX mov ah,4ch int 21hCSEG ENDS END START 汇编语言程序设计汇编语言程序设计设计步骤:设计步骤:根据实际问题抽象出数学模型根据实际问题抽象出数学模型确定算法确定算法画程序流程图画程序流程图 分配内存工作单元和寄存器分配内存工作单元和寄存器程序编码程序编码调试调试第第4 4章:章:4.3 4.3 顺序程序设计顺序程序设计u没有分支、循环等转移

3、指令的程序,会没有分支、循环等转移指令的程序,会按指令书写的前后顺利依次执行,这就按指令书写的前后顺利依次执行,这就是顺序程序是顺序程序u顺序结构是最基本的程序结构顺序结构是最基本的程序结构u完全采用顺序结构编写的程序并不多见完全采用顺序结构编写的程序并不多见例题例题4.4 顺序程序设计实例顺序程序设计实例采用查表法,实现一位采用查表法,实现一位16进制数进制数转换为转换为ASCII码显示码显示第第4 4章:例章:例4.4 4.4 数据段数据段;数据段数据段ASCIIdb 30h,31h,32h,33h,34h,35h,36h,37h,38h,39h;对应;对应0 9的的ASCII码码db 4

4、1h,42h,43h,44h,45h,46h;对应;对应A F的的ASCII码码hexdb 04h,0bh;假设两个数据;假设两个数据第第4 4章:例章:例4.4 4.4 代码段代码段 ;代码段代码段mov bx,offset ASCII ;BX指向指向ASCII码表码表mov al,hex ;AL取得一位取得一位16进制数进制数 ;恰好就是;恰好就是ASCII码表中的位移码表中的位移and al,0fh ;只有低;只有低4位是有效的,高位是有效的,高4位清位清0Xlat ;换码:;换码:ALDS:BXAL第第4 4章:例章:例4.4 4.4 代码段续)代码段续)mov dl,al;入口参数:

5、;入口参数:DLALmov ah,2;02号号DOS功能调用功能调用int 21h;显示一个;显示一个ASCII码字符码字符mov al,hex+1 ;转换并显示下一个数据;转换并显示下一个数据and al,0fhxlatmov dl,almov ah,2int 21h第第4 4章:章:4.4 4.4 分支程序设计分支程序设计u分支程序根据条件是真或假决定执行与否分支程序根据条件是真或假决定执行与否u判断的条件是各种指令,如判断的条件是各种指令,如CMP、TEST等执行后形成的状态标志等执行后形成的状态标志u转移指令转移指令Jcc和和JMP可以实现分支控制可以实现分支控制u分支结构有分支结构有

6、u单分支结构单分支结构u双分支结构双分支结构u多分支结构多分支结构第第4 4章:单分支结构章:单分支结构 u条件成立跳转,否条件成立跳转,否则顺序执行分支语则顺序执行分支语句体句体u注意选择正确的条注意选择正确的条件转移指令和转移件转移指令和转移目标地址目标地址第第4 4章:计算章:计算AXAX中有符号数的绝对值中有符号数的绝对值 cmp ax,0 cmp ax,0 jge nonneg jge nonneg;条件满足;条件满足AX0AX0),转移),转移 neg ax neg ax ;条件不满足,求补;条件不满足,求补nonneg:nonneg:mov result,axmov result

7、,ax;条件;条件满足满足 ;不恰当的分支;不恰当的分支 cmp ax,0 cmp ax,0 jl yesneg jl yesneg;条件满足;条件满足AXAX0 0),转移),转移 jmp nonneg jmp nonnegyesneg:yesneg: neg axneg ax;条件不满足,求补;条件不满足,求补nonneg:nonneg: mov result,axmov result,ax ;条件满足;条件满足第第4 4章:双分支结构章:双分支结构 条件成立跳转执条件成立跳转执行第行第2个分支语句体,个分支语句体,否则顺序执行第否则顺序执行第1个个分支语句体分支语句体 注意第注意第1个分

8、支个分支体后一定要有一个体后一定要有一个JMP指令跳到第指令跳到第2个个分支体后分支体后第第4 4章:显示章:显示BXBX的最高位的最高位( (双双) )shl bx,1;BX最高位移入最高位移入CF标志标志jc one;CF1,即最高位为,即最高位为1,转移转移mov dl,30h;CF0,即最高位为,即最高位为0:DL30H0jmp two;一定要跳过另一个分支体;一定要跳过另一个分支体one:mov dl,31h;DL 31H1two:mov ah,2int 21h;显示;显示4 4章:显示章:显示BXBX的最高位双)的最高位双)shl bx,1;BX最高位移入最高位移入CF标志标志jn

9、c one;CF0,即最高位为,即最高位为0,转移转移mov dl,31h;CF1,即最高位为,即最高位为1:DL31H1jmp two;一定要跳过另一个分支体;一定要跳过另一个分支体one:mov dl,30h;DL 30H0two:mov ah,2int 21h;显示;显示4 4章:显示章:显示BXBX的最高位单支)的最高位单支)mov dl,0 ;DL30H0shl bx,1;BX最高位移入最高位移入CF标志标志jnc two;CF0,即最高位为,即最高位为0,转移转移mov dl,1;CF1,即最高位为,即最高位为1:DL31H1two:mov ah,2int 21h;显示;显示 编写

10、分支程序,需留心分支的开始和结束编写分支程序,需留心分支的开始和结束4 4章:显示章:显示BXBX的最高位无分支)的最高位无分支)mov dl,0shl bx,1;BX最高位移入最高位移入CF标志标志adc dl,30h;CF0,DL030h030H0;CF1,DL030h131H1two:mov ah,2int 21h;显示;显示分支结构多分支分支结构多分支) )u试编写程序段,实现符号函数。试编写程序段,实现符号函数。u 1 X0uY= 0 X=0u -1 X0程序程序uSTART:MOVAX,BUFFER ;(;(BUFFER)=XuORAX,AXuJzZERO ;X0,则转则转ZERO

11、uJNSPLUS ;X为正数,则转为正数,则转PLUSuMOV BX,0FFFFH;X为负数,那么为负数,那么1送送BXuJMPCONT1uZERO:MOVBX,0uJMPCONT1uPLUS:MOV BX,1uCONT1:范例范例u现有若干个程序段,现有若干个程序段,每一程序段的入口地每一程序段的入口地址分别是址分别是SUB1,SUB2,SUBn。u试编制一程序,根据试编制一程序,根据指定的参数转入相应指定的参数转入相应的程序段。(入口地的程序段。(入口地址构造的跳转表)址构造的跳转表)SUB1SUB2SUB3SUB4.SUBn例子例子uDATA SEGMENTu TABLE DW SUB1

12、,SUB2,SUBnu PARAM DB 3uDATA ENDSuSTACK SEGMENT PARA STACKuDW 10 DUP0)uSTACK ENDSuCOSEG SEGMENT PARA STACKuASSUME CS:COSEG,DS:DATA,SS:STACKuBEING: MOV AX,DATAuMOV DS,AXuMOV AL,PARAMuMOV AH,0uDEC ALuSHL AL,1uMOV BX,OFFSET TABLEuADD BX,AXuJMP BXuSUB1: .u u JMP END0Mov bx,bxJmp bxuEND0: MOV AH,4CHuINT 2

13、1HuCOSEG ENDSuEND BEING跳转表由转移指令组成跳转表由转移指令组成uDATA SEGMENTuPARAM DB 3 uDATA ENDSuSTACK SEGMENT PARA STACKuDW 20H DUP0) uSTACK ENDSuCOSEG SEGMENTuASSUME CS:COSEG,DX:DATA,SS:STACKuBEING: MOV AX,DATA uMOV DS,AXuMOV BH,0uMOV BL,PARAMuDEC BL uMOV AL,BLuSHL BL,1uADD BL,ALuADD BX,OFFSET TABLEuJMP BXuTABLE: J

14、MP SUB1u JMP SUB2uu JMP SUBnuSUB1: uuJMP END0uSUB2: uuJMP END0uSUBn: uuEND0: MOV AH,4CHuINT 21HuCOSEG ENDSuEND BEING第第4 4章:章:4.5 4.5 循环程序设计循环程序设计u循环程序结构是满足一定条件的情况下循环程序结构是满足一定条件的情况下,重复执行某段程序,重复执行某段程序u循环结构的程序通常有循环结构的程序通常有3个部分:个部分:u 循环初始部分循环初始部分为开始循环准备必要为开始循环准备必要的条件,如循环次数、循环体需要的数的条件,如循环次数、循环体需要的数值等值等u

15、循环体部分循环体部分指重复执行的程序部分指重复执行的程序部分,其中包括对循环条件等的修改程序段,其中包括对循环条件等的修改程序段u循环控制部分循环控制部分判断循环条件是否成判断循环条件是否成立,决定是否继续循环立,决定是否继续循环第第4 4章:循环控制章:循环控制u循环结构程序的设计关键是循环控制部循环结构程序的设计关键是循环控制部分分u循环控制可以在进入循环之前进行,也循环控制可以在进入循环之前进行,也可以在循环体后进行,于是形成两种结可以在循环体后进行,于是形成两种结构:构:u“先判断、后循环先判断、后循环构造构造u“先循环、后判断先循环、后判断构造构造u循环结束的控制可以用循环次数,还可

16、循环结束的控制可以用循环次数,还可以用特定条件等,于是又有:以用特定条件等,于是又有:u计数控制循环计数控制循环u条件控制循环条件控制循环第第4 4章:先循环后判断的循环结构章:先循环后判断的循环结构 终了终了 初始化初始化 循环的初始状态循环的初始状态 循环体循环体 循环的工作部分循环的工作部分及修改部分及修改部分 计数控制循环计数控制循环条件控制循环条件控制循环修改部分修改部分控制条件控制条件Y YN N第第4 4章:章:4.5.1 4.5.1 计数控制循环计数控制循环 u计数控制循环利用循环次数作计数控制循环利用循环次数作为控制条件为控制条件u易于采用循环指令易于采用循环指令LOOP和和

17、JCXZ实现实现u初始化:将循环次数或最大循初始化:将循环次数或最大循环次数置入环次数置入CXu循环体循环体u循环控制:用循环控制:用LOOP指令对指令对CX减减1、并判断是否为、并判断是否为0第第4 4章:用二进制显示章:用二进制显示BLBL内容内容mov cx,8 ;CX8循环次数)循环次数)again:shl bl,1;左移进;左移进CF,从高位开始显示从高位开始显示mov dl,0 ;MOV指令不改变指令不改变CFadc dl,30h;DL030HCF;CF若是若是0,则,则DL 0 ;CF若是若是1,则,则DL 1 mov ah,2int 21h;显示;显示loop again;CX

18、减减1,如果,如果CX未减至未减至0,则循环,则循环计数控制循环计数控制循环先循环后判断先循环后判断第第4 4章:章:4.5.2 4.5.2 条件控制循环条件控制循环u条件控制循环需要利用特定条件条件控制循环需要利用特定条件判断循环是否结束判断循环是否结束u条件控制循环用条件转移指令判条件控制循环用条件转移指令判断循环条件断循环条件u转移指令可以指定目的标号来改转移指令可以指定目的标号来改变程序的运行顺序,如果目的标变程序的运行顺序,如果目的标号指向一个重复执行的语句体的号指向一个重复执行的语句体的开始或结束,便构成了循环控制开始或结束,便构成了循环控制结构结构第第4 4章:显示以章:显示以0 0结尾的字符串结尾的字符串;数据段;数据段string db Let us have a try !,0;代码段;代码段mov bx,offset stringagain: mov dl,bxcmp dl,0jz done;为;为0结束结束mov ah,2;不为;不为0,显示,显示int 21hinc bx;指向下一个字符;指向下一个字符jmp againdone:条件控制循环条件控制循环先判断后循环先判断后循环第第4 4章:章: 记

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论