如下功能:将从键盘上接受的小写字母用大写字母显示出来,其他字符不变。按回车键结束程序。

assume cs:code
code segment
start:
s: mov ah,8 ;不带回显键盘输入
int 21h ;AL=输入字符
cmp al,0dh ;如果是回车,结束程序。
jz done
cmp al,'A' ;小于a
jb ok
cmp al,'Z' ;大于z
ja ok
add al,20h ;小写转换成大写
ok: mov dl,al ;显示字符
mov ah,2
int 21h
jmp s
done:
mov ah,4ch
int 21h
code ends
end start

一句一句详细解释

assume cs:code ;设定代码段为code段
code segment ;code段的定义
start: ;程序开始,由end进行指定
s: mov ah,8 ;不带回显键盘输入 ,为21h中断处理的参数,更多的参考8086手册
int 21h ;AL=输入字符 ,调用21h中断输入字符
cmp al,0dh ;如果是回车,结束程序。
jz done ;回车的ascii码是0dh,判断是否为回车键,如果是就跳done标签地址处执行
;下面一起理解,就是过滤在A~Z范围之外的字符,实现:只要是输入大写字母就转换成小写,然后输出,如果是其他字符(包括小写)就直接输出字符,你在题目说的功能是说错的,是大写转换成小写
cmp al,'A' ;小于a
jb ok ;是否满足<A
cmp al,'Z' ;大于z
ja ok ;是否满足>Z
;都不满足的话,就进行如下处理,大小写转换
add al,20h ;大写转换成小写 ,因为大小写字母的ascii码相差20h,因此通过+20h进行转换
ok: mov dl,al ;参数1
mov ah,2 ;参数2,显示字符的功能号
int 21h ;显示字符
jmp s ;使用JMP来构造一个循环输入
done: ;结束循环时运行这里
mov ah,4ch ;返回dos的功能号,int 21h的参数
int 21h ;返回dos
code ends ;代码段结束
end start ;程序执行结束
温馨提示:内容为网友见解,仅供参考
无其他回答

...字母用大写字母显示出来,其他字符不变。按回车键结束程序。_百度知 ...
add al,20h ;大写转换成小写 ,因为大小写字母的ascii码相差20h,因此通过+20h进行转换 ok: mov dl,al ;参数1 mov ah,2 ;参数2,显示字符的功能号 int 21h ;显示字符 jmp s ;使用JMP来构造一个循环输入 done: ;结束循环时运行这里 mov ah,4ch ;返回dos的功能号...

...键盘接收字符串中的小写字母用大写字母显示出来,其它字符原样显示...
void main(){char s[100],cr;int i;gets(s);for(i=0;i<strlen(s);i++)if(s[i]>'a'&&s[i]<'z')s[i]+='A'-'a';puts(s);cr=getch();while(cr!='\\r')cr=getch();}

...键盘接收字符串中的小写字母用大写字母显示出来,其它字符原样显示...
在键盘按下事件中,判断ASCII,如果是97(a的ASCII)到122(z的ASCII),则将ASCII减去32(A的ASCII是65)

接收键盘字符,(以回车键结束),并将其中的小写字母转变为大写字母,然 ...
接收键盘字符,(以回车键结束),并将其中的小写字母转变为大写字母,然后显示在屏幕上,请用汇编实现。试试下面的:DATA SEGMENT MSG1 DB 13, 10, 'Please input a STR : $'MSG2 DB 13, 10, 'The STR in Upper is: $'I1_L DB 100 I1_N DB ?I1_B DB 100 D...

...功能:将字符串中的小写字母转换为对应的大写字母,其他字符不变
main(){ char *s;printf("Input a string please!\\n");gets(s);printf("The result:\\n%s\\n",toDaXie(s));getch();} char *toDaXie(char *s)\/*函数--变大写的具体内容*\/ { int i;for(i=0;i96&&s[i]<123)\/*如果这个字是小写字母*\/ s[i]-=32;\/*那就把它变成大写*\/ } ...

...将用键盘输入的小写字母转换成大写字母并显示出来
1、打开软件Visual C++6.0,新建一个C源程序,书写C语言程序。2、首先定义两个字符型变量,代码:char c1,c2;从键盘中输入一个大写字母,代码:c1=getchar();。3、大写字母与小写字母的ASCII值相差32。代码:c2=c1+32;。将大写字母转化成小写字母。4、输出小写字母。使用putchar()函数,可以输出...

...将其中的小写字母改为大写字母,其他字符不变,并输出这个字符串_百 ...
{ int i=0;char a[100],c;printf("请输入字符串的内容:\\t");do{ scanf("%c",&a[i]);c=a[i];i++;}while(c!='\\n');a[i]='\\0';i=0;printf("输入字符串的内容为:\\t");while(a[i]!='\\0'){ printf("%c",a[i]);i++;} printf("转换后字符串的内容为:\\t");i...

从终端输入的一行所有小写字母转换成大写字母,其他字符不变。
include <stdio.h> int main(){ int d = 'a' - 'A';char str[100];scanf( "%s", str );int i;for ( i = 0; str[i]; i++ )if ( str[i] >= 'a' && str[i] <= 'z' )str[i] -= d;printf( "\\n%s", str );} 结果:asdfSDDFaf ASDFSDDFAF请按任意键继续. ...

C语言编程题:从键盘输入一个小写字母,在屏幕上显示其对应的大写字母
【C语言输入小写字母,输出显示为大写字母主要用到字符】例子如下:直接编译,程序输出结果中输入任意小写字母,按回车,得到结果如下图所示:

...将一串字符中的小写字母转换成大写,其他字符不变。请将下划_百度...
第一个划线处:str[i]!='\\0'第二个划线处:str[i]-=32;

相似回答