汇编语言编程键盘输入的小写字母换成大写

发布时间:2024-08-27

汇编语言编程键盘输入的小写字母换成大写

用汇编语言编程,要求键盘输入的小写字母换成大写

我这个程序如果输入小写,则转换成大写输出;如果输入大写,则转换成小写输出。
cseg segment
assume cs:cseg
begin:
mov ah,1
int 21h
xor al,20h
mov dl,al
mov ah,2
int 21h
mov ah,4ch
int 21h
cseg ends
end begin















……

BUF DB "please input:$"

……

start: mov ax,data

mov ds,ax

lea dx,BUF

mov ah,9

int 21h

lopa: mov ah,10 ;10号调用 输入字符串

int 21h

mov dl,al

cmp dl,'a'

jb L

cmp dl,'z'

ja L

sub dl,20h

L: mov ah,2

int 21h

EXIT: mov ah,4ch

int 21h

……























汇编程序:从键盘输入一串小写字母转换成大写
2007年12月04日 星期二 12:44
;从键盘输入一行字符把其中的小写字母转换成大写字符输出,其它字符原样输出

data segment
chars db 200 dup(?) ;开辟200字节的缓冲区
data ends
;---------------------------------
code segment
assume cs:code,ds:data

start :
push ds
mov ax,0
push ax
mov ax,data
mov ds,ax
lea bx ,chars
mov si,0
mov ch,0
;----------------------输入字符子程序
scanf:
mov ah,1
int 21h
cmp al,0dh
jz crt
cmp al,61h
jnb alsub ;al>='a'
mov [bx],al
inc bx
inc ch
jmp scanf
;--------------------------
;-----------------------输出字符
crt:
mov dl,chars[si]
mov ah,2
int 21h
inc si
dec ch
jz exit
jmp crt
;----------------------
exit:
mov ah,4ch
int 21h
;----------------------
alsub:
cmp al,7ah ;al<='z'
jbe alsub20h
mov [bx],al
inc bx
inc ch
jmp scanf
;---------------------
alsub20h:
sub al,20h
mov [bx],al
inc bx
inc ch
jmp scanf
;---------------------
code ends
end start














汇编语言编程问题:用键盘输入一个字符串,含有若干大小写字母,数字,要求统计出三种类型各有多少个,并显示
浏览次数:465次悬赏分:10 | 解决时间:2010-11-1 11:14 | 提问者:木易秋心
这是微机原理课程上的一道上机实验题,所知道的解题思路为:需要分析其输入与输出的内容,根据ASC码进行比较来确定各类型的数量,
最后显示出来使用的是2号功能调用。如果能使用汇编语言中别的一些指令,功能,调用等使该功能表达出来,依旧是很好的。最好是完善的程序,并运行一下。
谢谢!
最佳答案
;用键盘输入一个字符串(回车结束),含有若干大小写字母,数字,要求统计出三种类型各有多少个,并显示


data

汇编语言编程键盘输入的小写字母换成大写

segment
mess db 0dh,0ah,'Input String: $'

sz db 0 ;数字个数
dAx db 0 ;大写个数
xXx db 0 ;小写个数

SZ_C DB 100 DUP ('$')
DX_C DB 100 DUP ('$')
XX_C DB 100 DUP ('$')
CRLF DB 0DH,0AH,'$'


data ends
code segment
assume cs:code, ds:data
main proc far
start:
push ds
xor ax,ax
push ax
mov ax,data
mov ds,ax
;-------------------------
call crlf_p
mov ah,09
mov dx,offset mess
int 21h
next:
mov ah,01
int 21h
CMP AL,0DH
JNZ GOON
JMP DISP_1 ;显示结果
GOON:
cmp al,'0'
jl NEXT

cmp al,'9'
jg NO_0_9
inc SZ
MOV BX,OFFSET SZ_C
MOV CX,0
MOV CL,SZ
ADD BX,CX
DEC BX
MOV [BX],AL
JMP NEXT

NO_0_9:

cmp al,'A'
jl NEXT

cmp al,'Z'
jg NO_D_AZ
inc DAX
MOV BX,OFFSET DX_C
MOV CX,0
MOV CL,DAX
ADD BX,CX
DEC BX
MOV [BX],AL
JMP NEXT



NO_D_AZ:

cmp al,'a'
jl NEXT

cmp al,'z'
jg NO_X_AZ
inc XXX
MOV BX,OFFSET XX_C
MOV CX,0
MOV CL,XXX
ADD BX,CX
DEC BX
MOV [BX],AL
JMP NEXT

NO_X_AZ:
JMP NEXT

DISP_1:

CALL CRLF_P
CALL CRLF_P

mov al,SZ
CALL DISP_CZR
mov ah,09
lea dx,SZ_C
int 21h
;-----------------


CALL CRLF_P

mov al,DAX
CALL DISP_CZR
mov ah,09
lea dx,DX_C
int 21h
;-------------------

CALL CRLF_P

mov al,XXX
CALL DISP_CZR
mov ah,09
lea dx,XX_C
int 21h
;---------------------

CALL CRLF_P
;-------------------------
ENDD:
ret

main endp

;=========================================
DISP_CZR PROC NEAR ;显示10进制数字子程序
xor ah,ah
;mov al,num
mov bl,100d
div bl
push ax
add al,30h
mov dl,al
mov ah,2
int 21h
pop ax
mov al,ah
xor ah,ah
mov bl,10d
div bl
add ax,3030h
push ax
pop dx
mov ah,2
int 21h
mov dl,dh
int 21h
MOV DL,':'
INT 21H
mov dl,' '
int 21h
RET
DISP_CZR ENDP
;==========================================
CRLF_P PROC NEAR ;回车换行子程序
mov ah,09
LEA DX,CRLF
INT 21H
RET
CRLF_P ENDP
;=========================================
code ends
end start

用MASM5.0汇编,用LINK连接,以下是运行实例:



Input String: DHGFEUUYURYEDBJB834658634853NGFJ8HJHGjsfjdf8fhdjfh


014: 83465863485388
024: DHGFEUUYURYEDBJBNGFJHJHG
012: jsfjdffhdjfh
1

汇编语言编程键盘输入的小写字母换成大写.doc 将本文的Word文档下载到电脑

    精彩图片

    热门精选

    大家正在看

    × 游客快捷下载通道(下载后可以自由复制和排版)

    限时特价:7 元/份 原价:20元

    支付方式:

    开通VIP包月会员 特价:29元/月

    注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
    微信:fanwen365 QQ:370150219