微机原理第04章3顺序分支循环结构ppt课件_第1页
微机原理第04章3顺序分支循环结构ppt课件_第2页
微机原理第04章3顺序分支循环结构ppt课件_第3页
微机原理第04章3顺序分支循环结构ppt课件_第4页
微机原理第04章3顺序分支循环结构ppt课件_第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一个完好源程序构造例一个完好源程序构造例 CSE

2、G 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 41h,42h,43h,44h

4、,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;入口参数:;入口参数:DLALmov ah

5、,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分支构造有分支构造有u单分支构造单分支构造u双分支构

6、造双分支构造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,ax;条件;条件满足满足 ;不

7、恰当的分支;不恰当的分支 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标志标志jnc one;CF0,即最高位为,即最

9、高位为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,那么转那么转ZEROuJNSPLUS ;X为正数,那么为正数,那么转

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

12、ATA ENDSuSTACK SEGMENT PARA STACKuDW 10 DUP0uSTACK 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 21HuCOSEG ENDSuEND BEING跳转

13、表由转移指令组成跳转表由转移指令组成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: JMP SUB1u JMP SUB2uu JMP SU

14、BnuSUB1: 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和和JCXZ实现实现u初始化:将循环次数或最大循初始化:

17、将循环次数或最大循环次数置入环次数置入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减减1,假设,假设CX未减至未减至0,那

18、么循环,那么循环计数控制循环计数控制循环先循环后判别先循环后判别第第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

提交评论