标题:为什么不显示 小写 出来呢
只看楼主
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



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-293941-1-1.html




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

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