汇编语言程序设计题目,在线等答案!!!急!
5.从键盘输入一个字母字符,将其统一为大写字母输出好的程序要简单,运行速度快,你们的都太复杂...
5. 从键盘输入一个字母字符,将其统一为大写字母输出
好的程序要简单,运行速度快,你们的都太复杂 展开
好的程序要简单,运行速度快,你们的都太复杂 展开
5个回答
展开全部
;用我的吧 编译正确通过
;-------------------------------------------
;********************************数据段
data segment
array db 0,0,0,0 ;数组开辟空间
string1 db "Please input the lower case: $" ;字符串以$结束
string2 db " Ok,the upper case is: $"
string3 db "What you inputed is not a lower case !Try again: $"
crlf db 13,10,13,10,"$" ;13回车,10换行
data ends
;**********************************
;**********************************代码段
code segment
assume ds:data,cs:code ;段对应关系的说明
main proc far ;far子程序调用时的参数
start:
push ds
sub ax,ax ;清零
push ax ;压栈
mov ax,data ;将数据传送如数据段
mov ds,ax
;---------------------------------------
;主程序开始
;---------------------------------------------------------
;显示"Please input the lower case:$"的内容
mov ah,09h
lea dx,string1
int 21h
;----------------------------------------------------------
;键盘输入字母
mov bx,offset array ;设定基址
input:
mov ah,01h
int 21h
cmp al,20h ;比对空格
je input
cmp al,61h ;al和'a'相比
jb next ;al值小于'a',显示提示继续输入
cmp al,7ah ;al值和'z'比较
jnb next ;大于'z', 显示提示继续输入
sub al,20h ;减去32即为对应的大写字母
mov bl,al ;用bl将值取走
;----------------------------------------------------------------
;换行
mov ah,09h
lea dx,crlf
int 21h
;---------------------------------------------------------
;显示"The upper case is:$"的内容
mov ah,09h
lea dx,string2
int 21h
;-----------------------------------------------------
;大写字母输出
mov dl,bl
mov ah,02h
int 21h
ret ;返回(return)
;----------------------------------------------------------------
;换行
next:
mov ah,09h
lea dx,crlf
int 21h
;---------------------------------------------------------
;显示"what you inputed is not a lower case !Try again:$"的内容
mov ah,09h
lea dx,string3
int 21h
jmp input
;-------------------------------------------------------------
main endp ;主函数结束
;********************************************
code ends ;代码段定义结束
end start ;这个程序段全部结束,程序段不但有代码段还有其他段
;-------------------------------------------
;********************************数据段
data segment
array db 0,0,0,0 ;数组开辟空间
string1 db "Please input the lower case: $" ;字符串以$结束
string2 db " Ok,the upper case is: $"
string3 db "What you inputed is not a lower case !Try again: $"
crlf db 13,10,13,10,"$" ;13回车,10换行
data ends
;**********************************
;**********************************代码段
code segment
assume ds:data,cs:code ;段对应关系的说明
main proc far ;far子程序调用时的参数
start:
push ds
sub ax,ax ;清零
push ax ;压栈
mov ax,data ;将数据传送如数据段
mov ds,ax
;---------------------------------------
;主程序开始
;---------------------------------------------------------
;显示"Please input the lower case:$"的内容
mov ah,09h
lea dx,string1
int 21h
;----------------------------------------------------------
;键盘输入字母
mov bx,offset array ;设定基址
input:
mov ah,01h
int 21h
cmp al,20h ;比对空格
je input
cmp al,61h ;al和'a'相比
jb next ;al值小于'a',显示提示继续输入
cmp al,7ah ;al值和'z'比较
jnb next ;大于'z', 显示提示继续输入
sub al,20h ;减去32即为对应的大写字母
mov bl,al ;用bl将值取走
;----------------------------------------------------------------
;换行
mov ah,09h
lea dx,crlf
int 21h
;---------------------------------------------------------
;显示"The upper case is:$"的内容
mov ah,09h
lea dx,string2
int 21h
;-----------------------------------------------------
;大写字母输出
mov dl,bl
mov ah,02h
int 21h
ret ;返回(return)
;----------------------------------------------------------------
;换行
next:
mov ah,09h
lea dx,crlf
int 21h
;---------------------------------------------------------
;显示"what you inputed is not a lower case !Try again:$"的内容
mov ah,09h
lea dx,string3
int 21h
jmp input
;-------------------------------------------------------------
main endp ;主函数结束
;********************************************
code ends ;代码段定义结束
end start ;这个程序段全部结束,程序段不但有代码段还有其他段
展开全部
从键盘输入一串任意字符,将其中的字母统一为大写输出。
程序如下:
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 DUP (?)
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DATA
START:
MOV AX, DATA
MOV DS, AX
LEA DX, MSG1
MOV AH, 9
INT 21H
LEA DX, I1_L
MOV AH, 10
INT 21H
LEA BX, I1_B
MOV CL, I1_N
MOV CH, 0
LOP:
MOV AL, [BX]
CMP AL, 13
JE DISP
CMP AL, 'a'
JB NEXT
CMP AL, 'z'
JA NEXT
TO_UPPER:
AND AL, 11011111B
MOV [BX], AL
NEXT:
INC BX
LOOP LOP
JMP NEXT
DISP:
MOV BYTE PTR [BX], '$'
LEA DX, MSG2
MOV AH, 9
INT 21H
LEA DX, I1_B
MOV AH, 9
INT 21H
MOV AH, 4CH
INT 21H
CODE ENDS
END START
程序运行后,将以下列形式显示:
C:\MASM>z
Please input a STR : dkfmdoiw9092132KMSADLFdsdl;sd
The STR in Upper is: DKFMDOIW9092132KMSADLFDSDL;SD
程序如下:
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 DUP (?)
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DATA
START:
MOV AX, DATA
MOV DS, AX
LEA DX, MSG1
MOV AH, 9
INT 21H
LEA DX, I1_L
MOV AH, 10
INT 21H
LEA BX, I1_B
MOV CL, I1_N
MOV CH, 0
LOP:
MOV AL, [BX]
CMP AL, 13
JE DISP
CMP AL, 'a'
JB NEXT
CMP AL, 'z'
JA NEXT
TO_UPPER:
AND AL, 11011111B
MOV [BX], AL
NEXT:
INC BX
LOOP LOP
JMP NEXT
DISP:
MOV BYTE PTR [BX], '$'
LEA DX, MSG2
MOV AH, 9
INT 21H
LEA DX, I1_B
MOV AH, 9
INT 21H
MOV AH, 4CH
INT 21H
CODE ENDS
END START
程序运行后,将以下列形式显示:
C:\MASM>z
Please input a STR : dkfmdoiw9092132KMSADLFdsdl;sd
The STR in Upper is: DKFMDOIW9092132KMSADLFDSDL;SD
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
MOV AH,1
INT 21H
CMP AL,'a'
JB L1
CMP al,'z'+1
JNB L1
AND AL,5FH
L1:
MOV DL,AL
MOV AH,2
INT 21H
INT 21H
CMP AL,'a'
JB L1
CMP al,'z'+1
JNB L1
AND AL,5FH
L1:
MOV DL,AL
MOV AH,2
INT 21H
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<stdio.h>
main()
{
char a[100];
char *p=a;
scanf("%s",a);
while(*p!='\0')
{
if(*p>='a' && *p<='z') *p=*p-32;
printf("%c",*p);
p++;
main()
{
char a[100];
char *p=a;
scanf("%s",a);
while(*p!='\0')
{
if(*p>='a' && *p<='z') *p=*p-32;
printf("%c",*p);
p++;
更多追问追答
追问
你这是c语言写的 我要求的是汇编语言写
追答
DATA SEGMENT
string DB 'ddfs#@%#@%gfdggAFSADFsgdgsddsgdfg!$'
count DW $-string
diff DB 'a'-'A'
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
MOV AX,DATA
MOV DS,AX
MOV ES,AX
MOV CX,count
LEA SI,string
LEA DI,string
NEXTC:
MOV AL,[SI]
CMP al,'a'
jnae SKIP
CMP al,'z'
ja SKIP
sub al,'a'-'A'
SKIP:
stosb
INC SI
LOOP NEXTC
MOV AH,09H
MOV DX,OFFSET string
INT 21H
MOV AH,0
INT 16H
MOV AX,4C00H
INT 21H
CODE ENDS
END START
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
编制程序完成 12h,45h,0F3h,6Ah,20h,0FEh,90h,0C8h,57h 和34h等10DATAS SEGMENT bdata db 01h,02h,03h,04h,05h,06h,07h,08h,09h,
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询