单选题
下面一段程序要实现的功能是:在内存中从地址SOURCE开始有一个长度为50的字符串,测试该字符串中是否存在数字,如有则将DL的第三位置1,否则将该位置0。 BEGIN: MOV CX,50 MOV SI, 0 LP: MOV SOURCE[SI] CMP AL,30H JB GOON CMP AL,{{U}} ① {{/U}} JA GOON OR DL,20H JMP EXIT GOON: INC SI LOOP LP AND DL,{{U}} ② {{/U}} EXIT: 则①,②中应为:
【正确答案】
C
【答案解析】[解析] 这段程序注意有两个转移语句,JB是在低于,或不高于等于,或进位位为1时转移,JA是在高于或不低于不等于转移。数字的ASCII码值范围是30H~39H,语句CM PAL,30H是和0比较,如果小于0,则转移到 GOON,SI加1,继续和下一个比较,如果大于0,再判断是否小于9,即39H。所以第①处填 39H。如果大于39H,说明不是数字,则再转移到GOON,SI加1,继续和下一个比较。如果结果没有数字,则执行OR DL,20H指令,将DL的第三位置1,如果有数字,则执行AND DL, 0DFH,将DL的第三位置0。故第②处填 ODFH。