下面一段程序要实现的功能是:在内存中从地址SOURCE开始有一个长度为50的字符串,测试该字符串中是否存在数字,如有则将DL的第三位置1,否则将该位置0。    BEGIN:     MOV    CX,50                MOV    S

admin2013-01-19  43

问题 下面一段程序要实现的功能是:在内存中从地址SOURCE开始有一个长度为50的字符串,测试该字符串中是否存在数字,如有则将DL的第三位置1,否则将该位置0。    BEGIN:     MOV    CX,50                MOV    SI,  0    LP:        MOV    SOURCE[SI]                CMP    AL,30H                JB      GOON                CMP    AL,  ①                  JA      GOON                OR     DL,20H                JMP  EXIT    GOON:      INC  SI                LOOP        LP                AND    DL,  ②      EXIT:    则①,②中应为:

选项 A、35H,0DFH
B、35H,0FFH
C、39H,0DFH
D、39H,OFFH

答案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。
转载请注明原文地址:https://kaotiyun.com/show/ZXMZ777K
0

最新回复(0)