用汇编语言编写一个程序。

2025-02-06 07:52:51
推荐回答(2个)
回答1:

;------------------------------------
PRINT MACRO PARA ; 定义一个显示字符串的宏
LEA DX, PARA
MOV AH, 9
INT 21H
ENDM
;------------------------------------
DSEG SEGMENT
MSG_LOWER DB ' lower', 0DH, 0AH, 24H
MSG_UPPER DB ' please enter a lowercase letter', 0DH, 0AH, 24H
MSG_ENTER DB 0DH, 0AH, 24H
MSG_NO DB ' no', 0DH, 0AH, 24H
MSG1 DB 'please press a key (press [esc] key to end program): $'
DSEG ENDS
;------------------------------------
CSEG SEGMENT
ASSUME CS:CSEG, DS:DSEG
START:
MOV AX, DSEG
MOV DS, AX
;------------------------
LB_1:
PRINT MSG1 ;显示提示信息
MOV AH, 1
INT 21H ;输入一个字符
CMP AL, 1BH ;是[esc]?
JZ EXIT
CMP AL, 'A' ;小于'A'?
JB LB_NO
CMP AL, 'z' ;大于'z'?
JA LB_NO
CMP AL, 'Z' ;小于等于'Z'?
JBE UUU
CMP AL, 'a' ;小于'a'?
JB LB_NO
;------------------
PRINT MSG_LOWER
JMP LB_1
UUU:
ADD AL,20h
mov dl,AL
mov ah,2
int 21h
PRINT MSG_ENTER
JMP LB_1
LB_NO:
PRINT MSG_NO
JMP LB_1
;------------------------
EXIT:
MOV AX, 4C00H
INT 21H
CSEG ENDS
END START

回答2:

1楼那个代码是可以,但是其实可以更简单,

小写字母内码范围是61h-7ah
大写字母内码范围是41h-5ah

那么只要比较输入的字符内码是否在61h-7ah之间
如果是,则将其减去20h,就是大写字母了