题目

将内存数据段INSTR地址开始存放的一个由字母组成的字符串中的小写字母全部转换成大写字母(其余字符不变)后存至内存数据段OUTSTR地址处。
如原字符串是“welcome to MASM!”,那么转换完后应该是“WELCOME TO ASM!”。

程序

DATA   SEGMENT               
    INSTR    DB  'welcome to MASM!'
    STRLEN   EQU  $-INSTR      
    OUTSTR   DB   STRLEN DUP(?),13,10,’$’
DATA    ENDS
CODE    SEGMENT                 
        ASSUME CS:CODE,DS:DATA
START: 
            MOV  AX,DATA
            MOV  DS,AX
            LEA  SI,INSTR
            LEA  DI,OUTSTR
            MOV  CX,STRLEN
NEXTCHAR:
    MOV  AL,[SI]
    CMP  AL,'a' 
    JB  UNCHG   ;不是小写字母,则不转换
    CMP  AL,'z'
    JA  UNCHG   ;不是小写字母,则不转换
    SUB  AL,20H ;将小写字母转换为大写字母
UNCHG:  
    MOV [DI],AL
    INC  SI
    INC  DI
LOOP  NEXTCHAR
    MOV  AH,4CH
    INT  21H
CODE    ENDS
    END     START

0
Posted in 汇编语言

Leave a Comment:

电子邮件地址不会被公开。