在STRING到STRING+99单元中存放着一个字符串,试编制一个程序,测试该字符串中是否存在数字,如有数字则把DL的第五位置

在STRING到STRING+99单元中存放着一个字符串,试编制一个程序,测试该字符串中是否存在数字,如有数字则把DL的第五位置1,否则将该位置0。(5分)
【正确答案】:0~9十个数字的ASCII码的范围是30H~39H,因此,可在循环体内采用分支结构。当有某一字符的ASCII码在30H与39H之间时,将DL的第五位置1,当所有字符的ASCII码都不在此范围内时,DL的第五位置0。将DL的第五位置1,可采用指令“ORDL,20H”;将DL的第五位置0,可采用指令“ANDDL,0DFH”。流程图:程序:DATASEGMENT;定义数据段STRINGDB100DUP(?);定义字符串DATAENDSCODESEGMENT;定义代码段ASSUMECS:CODEASSUMEDS:DATASTART:MOVAX,DATA;设置数据段MOVDS,AXBEGIN:MOVCX,100;设置循环次数MOVSI,0;设置指针初值LP1:MOVAL,STRING[SI];取SI所指的字符CMPAL,30H;若AL<30H转GOONJBGOONCMPAL,39H;若AL>39H转GOONJAGOONORDL,20H;若30H≤AL≤39H,则DL第5位置1JMPDONEGOON:INCSI;SI指向下一字符LOOPLP1;若没找完,继续循环ANDDL,0DFH;若没找到数字,DL第5位置0DONE:HLTCODE:ENDS;结束ENDSTART