欢迎来到天天文库
浏览记录
ID:50328704
大小:751.00 KB
页数:57页
时间:2020-03-08
《汇编语言程序设计教程 教学课件 作者 王庆生 6.ppt》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、第6章分支与循环程序设计程序设计的一般步骤:1.分析问题,确定算法和数据结构。2.根据算法绘制程序流程图。3.根据流程图编写程序。4.上机调试程序。程序有顺序,分支,循环,子程序4种结构。6.1分支程序设计6.1.1分支程序结构6.1.2单分支程序6.1.3复合分支程序6.1.4多分支程序6.1.1分支程序结构分支程序结构有二种形式:两个分支和多个分支。6.1.2单分支结构程序单分支结构程序(IF--THEN):是分支结构程序的最简单形式。例6.1双字长数存放在DX和AX寄存器中(高位在DX),求该数的绝对值(用16位指令)。算法分析:1.双字长数高字在DX中,低字在AX中;2.判该数的
2、正负,为正数(最高位为0),该数不处理;为负数,就对该数求补(即反码加1)。codesegmentassumecs:codestart:testdx,8000h;测试数的正负jzexit;不为负数就退出notaxnotdxaddax,1adcdx,0exit:movah,4chint21hcodeendsendstart6.1.3复合分支程序如果在分支结构中又出现分支,这就是复合分支结构。例6.2从键盘输入一位十六进制数,并将其转换为十进制数输出显示。算法分析:从键盘输入一个十六进制数,有以下四种情况:1.为数字0~9(ASCII码30~39H),无需处理,直接输出;2.为大写字母A~F
3、(ASCII码41~46H),先输出31H,再输出该数ASCII码-11H;3.为小写字母a~f(ASCII码61~66H),先输出31H,再输出该数ASCII码-31H;4.该数不为0~9、A~F、a~f,是非法字符,应退出程序或输出错误信息。codesegmentassumecs:codestart:movah,1;键盘输入int21hcmpal,30hjlexit;非法输入cmpal,39hjledig;输入是数字0~9cmpal,41hjlexit;非法输入cmpal,46hjleprint;输入是大写A~Fcmpal,61hjlexit;非法输入cmpal,66hjgexit;
4、非法输入subal,31hjmpout1;输入是小写a~fprint:subal,11hout1:movdl,31h;输出字符1movah,2pushax;暂存AXint21h;int指令改写了AXpopax;恢复AXdig:movdl,al;输出个位movah,2int21hexit:movah,4ch;程序终止并退出int21hcodeendsendstart6.1.4多分支程序如果在分支结构中有超过两个以上的多个可供选择的分支,这就是多分支结构。如果对多分支的条件逐个查询以确定是哪一个分支,只会增加代码和时间,为了尽快进入某个分支,可以采用分支向量表法。例6.3根据键盘输入的一位数
5、字(1~4),使程序转移到4个不同的分支中去,以显示键盘输入的数字。算法分析:从键盘输入一个数1~4,1.建立一个分支向量表branch,集中存放四个分支的偏移地址;2.每个偏移地址位16位,占用2个单元;3.四个分支的偏移地址在转移地址表的地址是:转移地址表首址+输入数字(0~3)×2;4.用间接寻址方式转向对应分支。codesegmentassumecs:code,ds:codestart:movax,code;ds=csmovds,axmovah,7;键盘输入无回显int21hcmpal,31hjlexit;非法输入cmpal,34hjgexit;非法输入movdl,al;放入dl
6、,待显示movbl,alsubbl,31h;转换ascii码为数值shlbl,1;(bl)×2,指向分支向量表中某地址movbh,0jmpbranch[bx];转向分支r1:movah,2int21h;显示键盘输入的数字jmpexitr2:movah,2int21hjmpexitr3:movah,2int21hjmpexitr4:movah,2int21hjmpexitexit:movah,4ch;程序终止并退出int21hbranchdwr1dwr2dwr3dwr4codeendsendstart6.2循环程序设计6.2.1循环程序结构6.2.2计数循环程序6.2.3条件循环程序6.2
7、.4条件计数循环程序6.2.5多重循环程序6.2.1循环程序结构循环程序有两种结构形式:DO---WHILE结构和DO---UNTIL结构。循环程序由三部分组成:循环初始状态、循环控制、循环体。循环控制条件有三类:计数循环、条件循环、条件计数循环。6.2.2计数循环程序计数循环:用循环计数器的值控制循环。例6.4例6.5例6.4把BX中的二进制数用十六进制显示.(设BX=123AH)算法分析1.屏幕显示字符用2号DOS功能调用,DL
此文档下载收益归作者所有