欢迎来到天天文库
浏览记录
ID:57138431
大小:179.50 KB
页数:71页
时间:2020-08-01
《汇编语言程序设计教案课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、汇编语言程序设计第七讲课题二基本程序结构程序流程图顺序程序设计分支程序设计循环程序设计子程序设计汇编程序设计的一般步骤分析问题,建立数学模型确定算法编制程序流程图合理分配存储空间和寄存器编制程序调试程序一、程序流程图(a)处理框(b)判断框(c)起止框(d)连接框(e)流向线AX=0?YN开始结束AA流程图的组成流程图主要由以下几种框图符号组成:一、程序流程图例:判断两无符号数大小的流程图开始AX无符号数1BX无符号数2AX–BX=0?显示AX=BXAX–BX>0?显示AX>BX显示AX2、基本的程序结构;无任何分支,从流程图上看,只有起止框和处理框,无判断框;二、顺序程序设计例:将AL中的两位十进制数分别转换为它们相应的ASCII码,分别存放在BH和BL中。解:CODESEGMENTASSUMECS:CODESTART:MOVBL,ALMOVBH,ALANDBL,0FHORBL,30HMOVCL,4SHRBH,CLORBH,30HMOVAH,4CHINT21HCODEENDSENDSTART附:汇编程序上机运行过程第一步:编辑源文件(生成.ASM文件)EDITXXX.ASM说明:在EDIT环境中,按Alt+F调出菜单后可选择存盘退出3、。第二步:汇编源文件(生成.OBJ文件)MASMXXX说明:1、文件名XXX后面可不带扩展名,缺省为.asm2、运行masm后,可连续按提示进行下一步操作,选择默认值可直接回车。如有错误需回到第一步修改。附:汇编程序上机运行过程第三步:连接目标文件(生成.EXE文件)LINKXXX说明:1、汇编通过后,连接一般都可通过并获得EXE文件。2、此命令中文件名XXX不需带扩展名。缺省为.obj第四步:运行可执行文件XXX(在DOS下直接运行)或DEBUGXXX.EXE(在DEBUG中运行)三、分支结构程序设计分支结构也叫选择结构;在程序运行中,执行哪条指4、令是由CS和IP决定的,在程序运行的过程中改变CS和IP,就是改变了程序的流向,从而得到分支、循环、子程序等程序结构;分支结构的实现须借助于程序转移指令的控制;附:转移指令转移指令分为两种:无条件转移指令条件转移指令1、无条件转移指令格式:JMP目标说明:目标通常用标号来表达,根据转移的远/近、直接/间接不同,可有以下几种格式:JMP标号;段内直接转移JMPCX;段内间接转移JMPWORDPTR[BX];段内间接转移JMP FARPTR标号;段间直接转移JMPDWORDPTR[BX][SI];段间间接转移2、条件转移指令基本格式:JXX目标说明:字5、母“J”后面的“XX”是指“条件”,如果条件成立,则转移至“目标”处执行,否则顺序执行。条件转移指令共18条,它们均以F寄存器中状态标志位作为判断条件,但执行后均不影响各标志位。此类指令都只能在以当前IP内容为中心的-128至+127字节范围内转移(短转移)。超过要修改程序。2、条件转移指令这18条指令又可分为三大类:简单条件转移指令无符号数条件转移指令带符号数条件转移指令表一简单条件转移指令标志位指令转移条件含意JCJNCCF=1CF=0有进/借位无进/借位CFZFSFOFPFJE/JZJNE/JNZZF=1ZF=0相等/等于0不相等/不等于0J6、SJNSSF=1SF=0是负数是正数JOJNOSF=1SF=0有溢出无溢出JP/JPEJNP/JPOSPF=1SF=0有偶数个‘1’有奇数个‘1’表二无符号数条件转移指令指令转移条件含意JA/JNBECF=0且ZF=0JAE/JNBABAB表三有符号数条件转移指令指令转移条件含意JG/JNLESF=OF且ZF=0JGE/JNLABAB三、分支结7、构程序设计例:判断两无符号数的大小解:DATASEGMENTDA1DB?DA2DB?A_MESSAGEDB‘A>B’,'$'B_MESSAGEDB‘BA’,'$'DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVAL,DA1MOVBL,DA2CMPAL,BLJAABIGMOVDX,OFFSETB_MESSAGEMOVAH,9INT21HFINISH:MOVAH,4CHINT21HABIG:MOVDX,OFFSETA_MESSAGEMOVAH,9INT21HJMPF8、INISHCODEENDSENDSTART练习已知AL中存放某ASCII码,试编制程序,判断该ASCII码代表的是数字,小
2、基本的程序结构;无任何分支,从流程图上看,只有起止框和处理框,无判断框;二、顺序程序设计例:将AL中的两位十进制数分别转换为它们相应的ASCII码,分别存放在BH和BL中。解:CODESEGMENTASSUMECS:CODESTART:MOVBL,ALMOVBH,ALANDBL,0FHORBL,30HMOVCL,4SHRBH,CLORBH,30HMOVAH,4CHINT21HCODEENDSENDSTART附:汇编程序上机运行过程第一步:编辑源文件(生成.ASM文件)EDITXXX.ASM说明:在EDIT环境中,按Alt+F调出菜单后可选择存盘退出
3、。第二步:汇编源文件(生成.OBJ文件)MASMXXX说明:1、文件名XXX后面可不带扩展名,缺省为.asm2、运行masm后,可连续按提示进行下一步操作,选择默认值可直接回车。如有错误需回到第一步修改。附:汇编程序上机运行过程第三步:连接目标文件(生成.EXE文件)LINKXXX说明:1、汇编通过后,连接一般都可通过并获得EXE文件。2、此命令中文件名XXX不需带扩展名。缺省为.obj第四步:运行可执行文件XXX(在DOS下直接运行)或DEBUGXXX.EXE(在DEBUG中运行)三、分支结构程序设计分支结构也叫选择结构;在程序运行中,执行哪条指
4、令是由CS和IP决定的,在程序运行的过程中改变CS和IP,就是改变了程序的流向,从而得到分支、循环、子程序等程序结构;分支结构的实现须借助于程序转移指令的控制;附:转移指令转移指令分为两种:无条件转移指令条件转移指令1、无条件转移指令格式:JMP目标说明:目标通常用标号来表达,根据转移的远/近、直接/间接不同,可有以下几种格式:JMP标号;段内直接转移JMPCX;段内间接转移JMPWORDPTR[BX];段内间接转移JMP FARPTR标号;段间直接转移JMPDWORDPTR[BX][SI];段间间接转移2、条件转移指令基本格式:JXX目标说明:字
5、母“J”后面的“XX”是指“条件”,如果条件成立,则转移至“目标”处执行,否则顺序执行。条件转移指令共18条,它们均以F寄存器中状态标志位作为判断条件,但执行后均不影响各标志位。此类指令都只能在以当前IP内容为中心的-128至+127字节范围内转移(短转移)。超过要修改程序。2、条件转移指令这18条指令又可分为三大类:简单条件转移指令无符号数条件转移指令带符号数条件转移指令表一简单条件转移指令标志位指令转移条件含意JCJNCCF=1CF=0有进/借位无进/借位CFZFSFOFPFJE/JZJNE/JNZZF=1ZF=0相等/等于0不相等/不等于0J
6、SJNSSF=1SF=0是负数是正数JOJNOSF=1SF=0有溢出无溢出JP/JPEJNP/JPOSPF=1SF=0有偶数个‘1’有奇数个‘1’表二无符号数条件转移指令指令转移条件含意JA/JNBECF=0且ZF=0JAE/JNBABAB表三有符号数条件转移指令指令转移条件含意JG/JNLESF=OF且ZF=0JGE/JNLABAB三、分支结
7、构程序设计例:判断两无符号数的大小解:DATASEGMENTDA1DB?DA2DB?A_MESSAGEDB‘A>B’,'$'B_MESSAGEDB‘BA’,'$'DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVAL,DA1MOVBL,DA2CMPAL,BLJAABIGMOVDX,OFFSETB_MESSAGEMOVAH,9INT21HFINISH:MOVAH,4CHINT21HABIG:MOVDX,OFFSETA_MESSAGEMOVAH,9INT21HJMPF
8、INISHCODEENDSENDSTART练习已知AL中存放某ASCII码,试编制程序,判断该ASCII码代表的是数字,小
此文档下载收益归作者所有