汇编语言中实现连续几个小写字母到大写字母的转换如“hello”到“HELLO”

如题所述

不对字符串中的其他类型字符如数字或大写字母操作,只对小写字母转换

=============================================================

;Filename: charup.asm

;To compile, use: ml -c charup.asm

;To link, use: link16 charup.obj

;Author: HHHso 2013-05-13 12:15


DSEG SEGMENT

MSG DB '123helo, ASM do with do!',0AH,0DH,'$'

DSEG ENDS


CSEG SEGMENT

ASSUME CS:CSEG,DS:DSEG,ES:DSEG

START:

    MOV AX,DSEG

    MOV DS,AX

    MOV ES,AX

    LEA SI,MSG

    MOV DX,SI

    MOV AH,09H

    INT 21H

C1:

    MOV AL,[SI]

    CMP AL,'$'

    JZ SHOWUP

    CMP AL,'a'

    JB CONTINUE

    CMP AL,'z'

    JA CONTINUE

    SUB byte ptr[SI],20H

CONTINUE:

    INC SI

    JMP C1

SHOWUP:

    LEA DX,MSG

    MOV AH,09H

    INT 21H

    MOV AX,4C00H

    INT 21H

CSEG ENDS

END START

=====================================编译,链接、运行后显示结果

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-05-13
将小写字母内码都减去20h即可
相似回答