编写汇编语言程序,要求对键盘输入的大写字母用对应的小写字母显示出来,非大写字母不显示。

如题所述

DATA SEGMENT
MESSAGE1 DB 'PLEASE INPUT: ',13, 10, '$'
MESSAGE2 DB 13, 10, 'NON CHAR $'
DATA ENDS

CODE SEGMENT
ASSUME CS:CODE, DS:DATA
START:
MOV AX, DATA
MOV DS, AX
;--------------------------------
MOV DX, OFFSET MESSAGE1
MOV AH, 9 ;显示提示
INT 21H
;--------------------------------
MOV BX, 0
LP1:
MOV AH, 7 ;
INT 21H
CMP AL, 13
JZ LP2
MOV DL, AL
CMP DL, 'A'
JB LP1
CMP DL, 'Z'
JA LP1
MOV AH, 2
ADD DL, 32 ;变为小写
INT 21H ;显示
INC BX
JMP LP1 ;继续输入
LP2:
CMP BX, 0
JNZ EXIT

MOV DX, OFFSET MESSAGE2
MOV AH, 9 ;显示NON
INT 21H
;--------------------------------
EXIT:

MOV AH, 4CH ;结束程序
INT 21H

CODE ENDS
END START追问

13和10有什么特别的含义吗?还是只是字符串的长度呢?谢谢你

追答

13,回车;
10,换行。

这是 ASCII 码。

追问

好的。。。

我忽略了ODH,OAH了。

温馨提示:内容为网友见解,仅供参考
无其他回答

编写汇编语言程序,要求对键盘输入的大写字母用对应的小写字母显示出来...
MOV AH, 2 ADD DL, 32 ;变为小写 INT 21H ;显示 INC BX JMP LP1 ;继续输入 LP2:CMP BX, 0 JNZ EXIT MOV DX, OFFSET MESSAGE2 MOV AH, 9 ;显示NON INT 21H ;--- EXIT:MOV AH, 4CH ;结束程序 INT 21H CODE ENDS END START...

编写一个汇编程序,要求对键盘输入的大写字母用小
cseg segmentassume cs:csegstart:$0: mov ah,1 int 21h ;\/\/读取一个字符(al) cmp al,'z' ja $exit cmp al,'a' jb $exit sub al,20H mov ah,2 int 21h ; 用小写输出 jmp $0 ; 再读下一个字符 $exit: ;如果输入的不是大写字母,...

试编写一个汇编语言程序,要求对键盘输入的小写字母用大写字母显示出来...
data segment data_a db 'a'data_z db 'z'data_space db '---$'info db 'please input the right letter $'data ends stack segment stack ends code segment assume cs:code,ds:data,ss:stack start:mov ax,data mov ds,ax mov ax,00h mov ah,01h int 21h cmp al,data_a jb er...

试编写一个汇编语言程序,要求对键盘输入的小写字母用大写字母显示出来...
程序不是很难,建议你自己写,这题的关键就是一个大小写转换问题,大写字母从41h~5Ah,小写字母从61h~7Ah,规律就是小写字母比大写字母的ASCII码大20h,所以可以用减20h实现小写转换为大写,另外还有一个方法就是,如果注意观察可以发现小写字符ASCII码2进制表示时bit5为1,而大写字母bit5为0,所以可...

编写一个汇编程序,要求对键盘输入的大写字母用小写字母显示出来…
ax, 4c00h int 21h letterc:mov cl, byte ptr ds:[si]jcxz back cmp cl, 61h jna s ;用于判断是否在A~Z之间 cmp cl, 7ah jnb s or byte ptr ds:[si], 11111111b s:inc si jmp short letterc back:ret code ends end begin 抱歉没留意到你说要键盘输入。。。

编写子程序嵌套结构的程序,将键盘输入的字符串按数字,大写字母,小写字母...
下定vhbxdjvnx虚构的信号

求答案:试编写一个汇编语言程序,要求对键盘输入的小写字母用大写字母...
SS:SSEG START:MOV AX,DSEG MOV DS,AX MOV DX,OFFSET A\/\/\/提示输入 MOV AH,09H INT 21H MOV AH,01H INT 21H MOV BL,AL SUB BL,20H\/\/\/转换 MOV DX,OFFSET B MOV AH,09H INT 21H MOV DL,BL MOV AH,02 INT 21H\/\/输出 MOV AH,4CH INT 21H\/\/\/结束 CSEG ENDS END START ...

...大写字母,将其转换为小写字母在屏幕上显示出来,并且各个字母间用空...
楼主所选择的答案,其程序,并不能保证输入大写字母。输入小写的字母,以及其它符号,该程序都不提示输入错误。并且,输出的,并不仅针对大写,变成小写,其它的符号,输出时,也都变了。该程序,并不能满足题目要求。正确答案,可以参考下面的程序:;=== ASSUME CS:CODE, DS:DATA DATA SEGMENT M...

汇编语言程序题目: 将一个字符串中的大写字母转换成小写字母显示,小写...
找出大写和小写的关系,大写加上32H就是小写了

从键盘输入一个大写字母,要求改用小写字母输出。
代码如下:include<stdio.h>int main(){char a; printf("请输入一个大写英语字母:");scanf("%c",&a);printf("转换成小写字母为%c",a+32);} 运行结果如下:

相似回答