| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1071 人关注过本帖
标题:为什么不显示 小写 出来呢
只看楼主 加入收藏
az9841682
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:5
帖 子:312
专家分:596
注 册:2009-9-11
结帖率:80%
收藏
已结贴  问题点数:20 回复次数:8 
为什么不显示 小写 出来呢
data segment
 a db 'enter the string $'
buf db 100
len db ?
str db 100 dup(?)
zs db 0dh,0ah
we db 100 dup(?)
data ends

code segment
main proc far
assume cs:code,ds:data

start:mov ax,data
      mov ds,ax

lea dx,a
mov ah,9h
int 21h

lea dx,buf
mov ah,0ah
int 21h

mov cl,len
mov ch,0h

lea bx,str
lea si,we

s:mov al,0
mov al,[bx]
cmp al,'a'
jb x1
cmp al,'z'
ja x1
sub al,20h
mov [si],al
jmp x2

x1:mov [si],al
jmp x2

x2:inc bx
inc si
loop s
mov dx,0

mov al,al
mov ah,09h
int 21h
 
lea dx,zs
mov ah,09h
int 21h
ret

main endp
code ends
end start

代码已经贴了
百思不得其解
为什么不显示小写出来呢
那位好心的人指点一下
搜索更多相关主题的帖子: 小写 
2009-12-20 17:01
DK320
Rank: 1
等 级:新手上路
帖 子:14
专家分:3
注 册:2009-11-2
收藏
得分:0 
将start放到前面,即
code segment
start:
   main proc far
     assume cs:code,ds:data

       mov ax,data
       mov ds,ax
       .....
如果还不能显示,再将str db 100 dup(?)这句中的str换成其它自字符即可!
2009-12-20 20:06
az9841682
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:5
帖 子:312
专家分:596
注 册:2009-9-11
收藏
得分:0 
将str db 100 dup(?)这句中的str换成其它自字符即可我是小白
这句话不理解
你说的那个 把START 往前移动的方法不行 囧

[ 本帖最后由 az9841682 于 2009-12-21 00:01 编辑 ]
2009-12-21 00:00
philipyou
Rank: 2
等 级:论坛游民
帖 子:14
专家分:55
注 册:2009-9-26
收藏
得分:0 
你这一段用来干什么的?
mov dx,0

mov al,al
mov ah,09h
int 21h
2009-12-21 13:43
az9841682
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:5
帖 子:312
专家分:596
注 册:2009-9-11
收藏
得分:0 
我想把 AL的内容输出来
呵呵呵
2009-12-21 15:51
philipyou
Rank: 2
等 级:论坛游民
帖 子:14
专家分:55
注 册:2009-9-26
收藏
得分:0 
如果只是把AL的内容输出来的话
不是用INT 21H 的02H功能更好吗?

INT 21H 的09H是输出字符串的吧

你的用法确认没问题吗?
2009-12-21 19:54
philipyou
Rank: 2
等 级:论坛游民
帖 子:14
专家分:55
注 册:2009-9-26
收藏
得分:20 
这是我在你的程序上修改后所写的程序 你看一下行不


data segment
a db 'enter the string $'
buf db 100
len db ?
str db 100 dup(?)
zs db 0dh,0ah,'$'
we db 100 dup(?)
data ends

code segment
main proc far
assume cs:code,ds:data

start:mov ax,data
      mov ds,ax

;===================输出提示信息
lea dx,a
mov ah,9h
int 21h


;====================输入字符串
lea dx,buf
mov ah,0ah
int 21h


;====================转换成小写
mov cl,len
mov ch,0h

lea bx,str
lea si,we

s:mov al,0
mov al,[bx]
cmp al,'a'
jae x1

add al,20h
mov [si],al
jmp x2

x1:mov [si],al
jmp x2

x2:inc bx
inc si
loop s

;==================输出回车换行
lea dx,zs
mov ah,09h
int 21h

;===================输出转换好的字符
lea dx,we
mov bl,len
mov si,bl
mov byte ptr we[si+1],'$'
mov ah,09h
int 21h


;=======================输出回车换行
lea dx,zs
mov ah,09h
int 21h

;========================输入停顿
mov ah,1
int 21h
ret

main endp
code ends
end start
2009-12-21 20:00
az9841682
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:5
帖 子:312
专家分:596
注 册:2009-9-11
收藏
得分:0 
lea dx,we
mov bl,len
mov si,bl
mov byte ptr we[si+1],'$'
mov ah,09h
int 21h
这段 我修改了下
lea dx,we
mov bl,len
mov bh,0
mov si,bx
mov byte ptr we[si+1],'$'
mov ah,09h
int 21h
免除了 类型不匹配的问题
2009-12-22 19:38
philipyou
Rank: 2
等 级:论坛游民
帖 子:14
专家分:55
注 册:2009-9-26
收藏
得分:0 
恩,学习了
汗!原来类型不匹配是那里出问题了
2009-12-22 19:55
快速回复:为什么不显示 小写 出来呢
数据加载中...
 
   



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

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