资源描述:
《《选择与循环结构》PPT课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第四章汇编语言的程序设计4.6.2基本程序结构的设计顺序结构,分支结构,循环结构是用汇编语言进行程序设计的基本程序结构。下面主要学习形成这些结构的程序控制方法和指令用法。例——在显示器上显示“HOWDOYOUDO!”.MODELSMALL;小模式.DATA;数据段STRINGDB'HOWDOYOUDO!$'.STACK200;堆栈段,预留200字节.CODE;代码段START:MOVAX,@DATA;取数据段地址MOVDS,AXMOVDX,OFFSETSTRING;取字符串首地址MOVAH,9;9号DOS功能调用,输出字符串INT2
2、1HMOVAH,4CH;返回DOSINT21HENDSTART;汇编结束简化段的定义汇编语言程序调试过程编辑建立汇编语言源程序源文件.ASM汇编目标文件.OBJ列表文件.LST交叉引用文件.CRF链接可执行文件.EXE连接映象文件.MAP调试最终程序EDITMASMLINKDEBUG试运行、验证、诊断、修改写字板、记事本标号:条件满足?处理NYIF…THEN结构程序结构:一个入口,一个出口……测试/比较指令(TEST/CMP)条件转移指令(Jx标号)处理体标号:其他指令……4.6.2分支结构程序的设计P.135程序结构:TEST/C
3、MP指令Jx标号1处理体P1……JMP标号2标号1:处理体P2……标号2:其他指令……条件满足?处理P1处理P2标号1:标号2:NYIF…THEN…ELSE结构标号1:条件1成立?P1NYCASE结构程序结构:…TEST/CMP指令(测试条件1)Jx标号1;不满足转标号1处理体P1…JMP标号n+1标号1:TEST/CMP指令(测试条件2)Jx标号2;不满足转标号2处理体P2…JMP标号n+1标号2:TEST/CMP指令(测试条件3)Jx标号3;不满足转标号3处理体P3…JMP标号n+1标号3:TEST/CMP指令(测试条件4)……
4、标号n+1:(公共出口)条件2成立?条件n成立?…Pn+1标号2:标号n:标号n+1:P2PnNNYY[4.6.2]1.二路分支结构程序设计P.135[例]从键盘输入一位数字,判断其奇偶性,并在屏幕输出一个标志,若为奇数,则输出1,否则输出0。画出流程图。偶数?AL<--30HAL<-31HYN输出AL一个入口一个出口NAMEP124TITLE判断从键盘输入一位数字的奇偶性,并在屏幕输出1(奇数)或0(偶数)标志。CODESEGMENT;代码段ASSUMECS:CODEBEGIN:MOVAH,01H;1号DOS中断调用INT21H;
5、键入一位数字送AL且显示TESTAL,01H;测试最低位JZEVN;偶数,转MOVAL,31H;奇数,置“1”JMPDISPEVN:MOVAL,30H;偶数,置“0”DISP:PUSHAXMOVAH,2;2号DOS中断调用MOVDL,0AH;输出换行INT21HMOVDL,0DH;输出回车INT21HPOPAXMOVAH,2;2号DOS中断调用MOVDL,AL;输出奇数/偶数标志INT21HMOVAH,4CH;返回DOSINT21HCODEENDSENDBEGIN;汇编到此结束NAMEP124TITLE判断从键盘输入一位数字的奇偶性
6、,并在屏幕输出1(奇数)或0(偶数)标志。CODESEGMENT;代码段ASSUMECS:CODEBEGIN:MOVAH,01H;1号DOS中断调用INT21H;键入一位数字送AL且显示TESTAL,01H;测试最低位JZEVN;偶数,转MOVAL,31H;奇数,置“1”JMPDISPEVN:MOVAL,30H;偶数,置“0”DISP:PUSHAXMOVAH,2;2号DOS中断调用MOVDL,0AH;输出换行INT21HMOVDL,0DH;输出回车INT21HPOPAXMOVAH,2;2号DOS中断调用MOVDL,AL;输出奇数/偶
7、数标志INT21HMOVAH,4CH;返回DOSINT21HCODEENDSENDBEGIN;汇编到此结束CODESEGMENT;代码段ASSUMECS:CODEBEGIN:MOVAH,01H;1号DOS系统调用INT21H;键入一位数字送AL且显示TESTAL,01H;测试最低位JZEVN;偶数,转MOVAL,31H;奇数,置“1”标志JMPDISPEVN:MOVAL,30H;偶数,置“0”标志DISP:MOVAH,2;2号DOS系统调用PUSHAX;保存AX中标志内容(因为2号INT21H会将DL→AL)MOVDL,0AH;输出
8、换行INT21HMOVDL,0DH;输出回车INT21HPOPAX;弹出AX中标志内容MOVAH,2;2号DOS系统调用MOVDL,AL;输出奇数/偶数标志INT21HMOVAH,4CH;返回DOSINT21HCODEENDSENDB