主题:求助,31号汇编实验考试的题目,谁帮我该下下啊,急啊!!!!(在线等)
无敌风火轮
[专家分:0] 发布于 2006-05-31 02:00:00
题目
array1和array2是数据段中各含有50个字元素的两个数据组,若两 个数组相等,则在屏幕上显示‘array1=array'.否则显示’array1!=arrat2'.比较两个数组是否相等由子程序调用完成,显示结果信息由宏调用完成。
提示
比较两个字符串是否相等,对这两个字符串中相同位置的元素逐一比较即可。若某两个元素的比较结果不等,则来年各个字符串不等,比较过程结束,若比较到最后两个元素的结果仍相等,则两个字符串相等,比较过程结束。
程序中可设置一个辅助变量用于存放比较结果。只要某次比较结果不等,则对该变量赋值。宏定义体中根据这个辅助变量的值选择显示哪个结果信息。
回复列表 (共1个回复)
沙发
无敌风火轮 [专家分:0] 发布于 2006-05-31 02:02:00
以下是个类似的题目,帮我改下下啊
DATA SEGMENT
S1 DB 'Please input string1: $'
S2 DB 'Please input string2: $'
S3 DB 'MATCH$'
S4 DB 'NO MATCH$'
S5 DB 10,0,10 DUP(0)
S6 DB 10,0,10 DUP(0)
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA ;put data to DS
MOV DS,AX
MOV ES,AX
LEA DX,S1 ;show message1
MOV AH,09H
INT 21H
LEA DX,S5 ;input string1
MOV AH,0AH
INT 21H
MOV DL,0DH ;cr
MOV AH,02H
INT 21H
MOV DL,0AH ;next line
MOV AH,02H
INT 21H
LEA DX,S2 ;show message2
MOV AH,09H
INT 21H
LEA DX,S6 ;input string2
MOV AH,0AH
INT 21H
MOV DL,0DH ;cr
MOV AH,02H
INT 21H
MOV DL,0AH ;next line
MOV AH,02H
INT 21H
MOV SI,2
MARK: MOV DI,OFFSET S6+2 ;the first character of s6
MOV AL,S5[SI] ;the character to be found in s6
MOV CL,S6[1] ;characters of s6
MOV CH,0 ;increase cl to cx
CLD ;set direction flag
NEXTCHAR: SCASB
JZ MATCH
DEC CX
JNZ NEXTCHAR
MOV CL,S5[1] ;characters of s5
CMP CX,SI ;the end of s5?
INC SI
JNB MARK ;if not si+1 and go on
LEA DX,S4 ;show no match
MOV AH,09H
INT 21H
JMP FINISH ;go to finish
MATCH: LEA DX,S3 ;show info of match
MOV AH,09H
INT 21H
FINISH: MOV AH,4CH ;return to Dos
INT 21H
CODE ENDS
END START
我来回复