例——在显示器上显示“HOWDOYOUDO!”.MODELSMALL ; ;数据段STRINGDB'HOWDOYOUDO!$'.STACK200 ;堆栈段, ;代码段START:MOVAX,***@DATA ;取数据段地址MOVDS,AXMOVDX,OFFSETSTRING ;取字符串首地址MOVAH,9 ;9号DOS功能调用,输出字符串INT21HMOVAH,4CH ;返回DOS INT21HENDSTART ;、验证、诊断、修改写字板、记事本标号:条件满足?处理NYIF…THEN结构程序结构:一个入口,一个出口 ……测试/比较指令(TEST/CMP)条件转移指令(Jx标号)处理体标号:其他指令 ……:TEST/CMP指令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)……标号n+1:(公共出口)条件2成立?条件n成立?…Pn+1标号2:标号n:标号n+1:P2PnNNYY[][例]从键盘输入一位数字,判断其奇偶性,并在屏幕输出一个标志,若为奇数,则输出1,否则输出0。画出流程图。偶数?AL<--30HAL<-31HYN输出AL一个入口一个出口NAMEP124TITLE判断从键盘输入一位数字的奇偶性,并在屏幕输出1(奇数)或0(偶数)标志。CODESEGMENT ;代码段ASSUMECS:CODE BEGIN: MOVAH,01H ;1号DOS中断调用 INT21H ;键入一位数字送AL且显示 TESTAL,01H ;测试最低位 JZEVN ;偶数,转 MOVAL,31H ;奇数,置“1” JMPDISPEVN: MOVAL,30H ;偶数,置“0”DISP: PUSHAX MOVAH,2 ;2号DOS中断调用 MOVDL,0AH ;输出换行 INT21H MOVDL,0DH ;输出回车 INT21H POPAX MOVAH,2 ;2号DOS中断调用 MOVDL,AL ;输出奇数/偶数标志 INT21H MOVAH,4CH ;返回DOS INT21HCODEENDSENDBEGIN ;汇编到此结束NAMEP124TITLE判断从键盘输入一位数字的奇偶性,并在屏幕输出1(奇数)或0(偶数)标志。CODESEGMENT ;代码段ASSUMECS:CODE BEGIN: MOVAH,01H ;1号DOS中断调用 INT21H ;键入一位数字送AL且显示 TESTAL,01H ;测试最低位 JZEVN ;偶数,转 MOVAL,31H ;奇数,置“1” JMPDISPEVN: MOVAL,30H ;偶数,置“0”DISP: PUSHAX MOVAH,2 ;2号DOS中断调用 MOVDL,0AH ;输出换行 INT21H MOVDL,0DH ;输出回车 INT21H POPAX MOVAH,2 ;2号DOS中断调用 MOVDL,AL ;输出奇数/偶数标志 INT21H MOVAH,4CH ;返回DOS INT21HCODEENDSENDBEGIN ;汇编到此结束CODESEGMENT ;代码段ASSUMECS:CODE BEGIN: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 ;输出换行 INT21H MOVDL,0DH ;输出回车 INT21H POPAX ;弹出AX中标志内容 MOVAH,2 ;2号DOS系统调用 MOVDL,AL ;输出奇数/偶数标志 INT21H MOVAH,4
选择与循环结构 来自淘豆网m.daumloan.com转载请标明出处.