| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 894 人关注过本帖
标题:刚学汇编 第一个程序改了两天了 救救我!!!
取消只看楼主 加入收藏
cuitxp
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2005-11-17
收藏
 问题点数:0 回复次数:0 
刚学汇编 第一个程序改了两天了 救救我!!!
我想输入两个字符串,然后把他们中间相同的字母取出,然后输出
STACK SEGMENT STACK
DW 64 DUP(?)
STACK ENDS

DATA SEGMENT
P1 DB 20
T1 DB 0
ARRAY1 DB 21 DUP(?)

P2 DB 20
T2 DB 0
ARRAY2 DB 21 DUP(?)
ARRAY3 DB 21 DUP(?)
MSG1 DB 'PLEASE INPUT:',0AH,0DH,'$'
MSG2 DB 'THE SAME IS:',0AH,0DH,'$'
DATA ENDS

CODE SEGMENT
ASSUME DS:DATA,CS:CODE,SS:STACK

START: MOV AX, DATA
MOV DS, AX

MOV DX, OFFSET MSG1
MOV AH, 09H
INT 21H

XOR DX,DX
MOV DX, OFFSET P1 ;取第一个字符串
MOV AH, 0AH
INT 21H

MOV DX, OFFSET MSG1
MOV AH, 09H
INT 21H
XOR DX,DX

MOV DX, OFFSET P2 ;取第二个字符串
MOV AH, 0AH
INT 21H

MOV DX, OFFSET MSG2
MOV AH, 09H
INT 21H

MOV DI,0H

MOV BX,0FFFFH
MOV CX,WORD PTR T1

LOOP1: INC BX ;循环取出第一个字符串中的每一个元素与第二个字符串比较
XOR AX,AX ;如果第二个字符串中有这个字母就送入第三个字符串中
MOV AL,ARRAY1[BX]
PUSH CX
MOV CX,WORD PTR T2
PUSH DI
LEA DI,ARRAY2
REPNE SCASB
POP DI
JE FOUND
POP CX
LOOP LOOP1
JMP EXIT

FOUND:
MOV ARRAY3[DI],AL
INC DI
POP CX
LOOP LOOP1

EXIT: MOV ARRAY3[DI],'$'
MOV DX,OFFSET ARRAY3 ;输出第三个字符串
MOV AH,09H
INT 21H
MOV AH, 4CH
INT 21H

CODE ENDS

END START
搜索更多相关主题的帖子: 汇编 
2005-11-17 09:48
快速回复:刚学汇编 第一个程序改了两天了 救救我!!!
数据加载中...
 
   



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

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