| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 692 人关注过本帖
标题:请各位修改一个程序,谢谢
只看楼主 加入收藏
orange0813
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2006-7-2
收藏
 问题点数:0 回复次数:3 
请各位修改一个程序,谢谢

从键盘输入字符串,如是 小写字母,则转为大写字母输出。如是大写字母,原样输出。并约定,键入复位键[ESC]中止输入。例:输入: deddeDEDG 按复位键[ESC] 输出:deddededg

data segment
string db 10 dup(?)

str db 10 dup(?)
data ends

code segment
assume cs:code,ds:data
main proc far
mov ax,data
mov ds,ax
mov cx,10
lea di,str
lea si,string
get: mov ah,01h
int 21h
cmp al,1bh
jz done
mov byte ptr[si],al
inc si
loop get
done:lea si,string
again:mov al,[si]
cmp al,61h
jae next
mov byte ptr[di],al
jmp next1
next:
sub al,20h
mov byte ptr[di],al
next1:inc si
inc di
loop again
lea di,str
mov ah,02h
get1:mov dl,[di]

int 21h
inc di
loop get1
call nextline
ret
main endp

nextline proc near
mov dl ,0dh
mov ah,02h
int 21h
mov dl,0ah
mov ah,02h
int 21h
ret
nextline endp

code ends
end main

2006-07-03 22:02
zhangenter
Rank: 6Rank: 6
等 级:贵宾
威 望:25
帖 子:390
专家分:0
注 册:2006-6-5
收藏
得分:0 
粘贴不上来,不好意思
bW40VHoK.txt (925 Bytes)

[此贴子已经被作者于2006-7-4 17:30:41编辑过]


OldHandle = findobj( \'Name\', \'悲伤\' ) ;if ~isempty(OldHandle),delete(OldHandle) ;end for Time = \'现在\':\'每一天\':\'永远\',set( gco, \'心情\', \'快乐\');end % 这段代码为你天天快乐而存在
2006-07-04 17:30
lixiao
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2006-7-7
收藏
得分:0 
就我现在的水平.我觉得你这个程序没有错.所以不好意思找不到那里错了.
2006-07-07 18:52
chy227
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2006-7-7
收藏
得分:0 
回复:(orange0813)请各位修改一个程序,谢谢

我刚刚写的
 esc1 = 1bh
en = 0dh
dseg segment
source db 10 dup(?)
welcome db "Please input Character: $"
varw dw ?
flag db 2
count db 0
dseg ends
cseg segment
assume cs:cseg,ds:dseg
start: mov ax,dseg
mov ds,ax
lea dx,welcome
mov ah,9
int 21h
call newline
lea si,source
mov varw,si
mov cx,10
OK: mov ah,1
int 21h
cmp al,esc1
jz done1;取消
cmp al,en
jnz ttt
mov cx,1
ttt: call ischar
inc count;小于10进行统计
cmp flag, 1
jnz next
sub al,20h ;
next: mov [si],al
inc si
loop OK
done1: call newline
mov si,varw
mov cx,0
mov cl,count
done: mov dl,[si]
mov ah,2
int 21h
inc si
loop done
mov ah,4ch
int 21h
ischar proc
cmp al,'A'
jb next1
cmp al,'Z'
ja next2
mov flag,0;为小写字母
ret
next2: cmp al,'a'
jb next1
cmp al,'z'
ja next1
mov flag,1;AL为大写字母
ret
next1: mov flag,-1;AL不为字母
ret
ischar endp
newline proc
push dx
push ax
mov dl,0dh
mov ah,2
int 21h
mov dl,0ah
mov ah,2
int 21h
pop ax
pop dx
ret
newline endp
cseg ends
end start

2006-07-07 22:13
快速回复:请各位修改一个程序,谢谢
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.024938 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved