| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 724 人关注过本帖
标题:字符串的处理问题
只看楼主 加入收藏
msshadow
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2007-5-30
收藏
 问题点数:0 回复次数:6 
字符串的处理问题
我是汇编的初学者,向各位大侠求教:
信息检索:已知有10组等长字符串,编程实现当用户输入0—9之间的任一数字时,输出对应的字符串。
搜索更多相关主题的帖子: 字符 信息检索 数字 
2007-05-30 13:18
爱以走远
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:52
帖 子:7542
专家分:21
注 册:2007-3-16
收藏
得分:0 
就是一个一个比较 在用jmp
你自己去实现

   好好活着,因为我们会死很久!!!
2007-05-30 13:32
msshadow
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2007-5-30
收藏
得分:0 
能不能再指点得清楚点呢,最好写点代码。。。
谢谢。。
2007-05-30 17:16
菜鸟上路
Rank: 4
等 级:贵宾
威 望:14
帖 子:1120
专家分:0
注 册:2006-3-21
收藏
得分:0 
跟下面程序功能类似,把func1,func2,func3改成对应的字符串定义
[CODE]

.386
.model small
option casemap:none

data segment
msg db 'Please input your choice(1-3):$'
table dw func1,func2,func3,default,exit
data ends

code segment use16
assume cs:code ,ds:data
start:
;初始化数据段寄存器
mov ax,data
mov ds,ax

;输出提示信息
;调用DOS中断的9号功能
mov dx,offset msg
mov ah,9h
int 21H

call newLine

;;读入数据,这里假定用户会根据提示输入正确数据,
;;因此不做纠错工作
mov ah,1
int 21h

;;将读入的ASCII码处理成序数
sub al,'1'
shl al,1
xor bx,bx
mov bl,al
cmp bl,4 ;;关闭这两句会出现一些不直观的问题.
ja default
jmp table[bx]
func1:
;;执行等于1时的功能
mov dl,'O'
mov ah,2
int 21h
;退出分支语句
jmp exit
func2:
;;执行等于2时的功能
mov dl,'B'
mov ah,2
int 21h
;退出分支语句
jmp exit
func3:
;;执行等于3时的功能
mov dl,'T'
mov ah,2
int 21h
;退出分支语句
jmp exit
default:
;;执行默认功能
mov dl,'N'
mov ah,2
int 21h
exit:
;;退出语句
;DOS的结束语句
mov ax,4c00h
int 21h


newLine proc
mov al,0AH
mov ah,0Eh
int 10H
mov al,0DH
mov ah,0Eh
int 10H
ret
newLine endp
code ends
end start

[/CODE]

2007-05-30 17:54
msshadow
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2007-5-30
收藏
得分:0 

嗯,我马上试试,谢谢了...

2007-05-30 18:10
msshadow
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2007-5-30
收藏
得分:0 

data segment
msg db 'Please input your choice(1-9):$'
table dw func1,func2,func3,func4,func5,func6,func7,func8,func9,default,exit
data ends

code segment
assume cs:code ,ds:data
start: ;初始化数据段寄存器
mov ax,data
mov ds,ax ;输出提示信息
;调用DOS中断的9号功能
mov dx,offset msg
mov ah,9h
int 21H

call newLine

;;读入数据,这里假定用户会根据提示输入正确数据,
;;因此不做纠错工作
mov ah,1
int 21h

;;将读入的ASCII码处理成序数
sub al,'1000'
shl al,1
xor bx,bx
mov bl,al
cmp bl,4 ;;关闭这两句会出现一些不直观的问题.
ja default
jmp table[bx]
func1:
;;执行等于1时的功能
mov dl,'O100'
mov ah,9
int 21h
;退出分支语句
jmp exit
func2:
;;执行等于2时的功能
mov dl,'11100'
mov ah,9
int 21h
;退出分支语句
jmp exit
func3:
;;执行等于3时的功能
mov dl,'5200'
mov ah,9
int 21h
;退出分支语句
jmp exit
func4:
;;执行等于3时的功能
mov dl,'2256'
mov ah,9
int 21h
;退出分支语句
jmp exit
func5:
;;执行等于3时的功能
mov dl,'6930'
mov ah,9
int 21h
;退出分支语句
jmp exit
func6:
;;执行等于3时的功能
mov dl,'8250'
mov ah,9
int 21h
;退出分支语句
jmp exit
func7:
;;执行等于3时的功能
mov dl,'8652'
mov ah,9
int 21h
;退出分支语句
jmp exit
func8:
;;执行等于3时的功能
mov dl,'6930'
mov ah,9
int 21h
;退出分支语句
jmp exit
func9:
;;执行等于3时的功能
mov dl,'9300'
mov ah,9
int 21h
;退出分支语句
jmp exit
default:
;;执行默认功能
mov dl,'N'
mov ah,2
int 21h
exit: ;;退出语句
;DOS的结束语句
mov ah,4ch
int 21h


newLine proc
mov al,0AH
mov ah,0Eh
int 10H
mov al,0DH
mov ah,0Eh
int 10H
ret ;这段可不可以解释一下?
newLine endp
code ends
end start
把dos中断号调用改了之后,还要怎么做呢?

2007-05-30 18:34
菜鸟上路
Rank: 4
等 级:贵宾
威 望:14
帖 子:1120
专家分:0
注 册:2006-3-21
收藏
得分:0 
先理解下程序的意思再做就简单了

2007-05-30 18:51
快速回复:字符串的处理问题
数据加载中...
 
   



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

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