问答题 试编写一个将寄存器AR中的小写字母(ASCII)转换成大写字母(ASCII)的子程序,并编写一个主程序,通过调用这个子程序将下面字符串中的小写字母转换成大写字母(其中,0为字符串的结束标记)。
   STR:DB  'How do you do!',0
【正确答案】;数据定义
   BOT    EQU 0FEH    ;栈底地址
          ORG    10H
   STR:DB    'How do you do!',0  ;字符串
   ;小写字母转换成大写字母子程序
            ORG    28H
   TOUgPER:CMP    AR,#'z'+1
            JNC PASS    ;若AR>'z',非小写字母转PASS
            CMP    AR,#'a'
            JC PASS    ;若AR<'a',非小写字母转PASS
            ADC    AR,#-20H    ;AR←AR-20H
   PASS:PET
   ;主程序
          ORG 40H
   START:LD    SP,#BOT    ;SP指向栈底
          LD    IX,#0
   LOOP:LD    AR,STR[IX]    ;取一字符
         CMP    AR,#0
         JZ    OVER    ;若字符=0,则转OVER结束
         CALL TOUPPER    ;转换成大写字母
         ST    AR,STR[IX]    ;将转换结果存回原处
         INC    IX    ;调整下标偏移
         JMP LOOP    ;继续处理
   OVER:JMP    S    ;停止往下执行
         END    START
【答案解析】