程序设计
要求编写程序比较两个最大长度为100个字符的字符串STR1和STR2是否相等,若相等则输出显示“All Right!”,否则输出显示“Error!”。
(1)第一步应分析要求,选择合适的结构设计流程图。
例如:本设计采用 结构。(注意选择的结构和下面自己编写的程序对应。)
(2)数据段已编写完成,请继续完成本功能的汇编程序。
DATA SEGMENT
STR1 DB 100 DUP(?)
STR2 DB 100 DUP(?)
INFO1 DB 'All Right!'
INFO2 DB 'Error!'
LEN DB 100
DATA ENDS
参考GPT
ASSUME CS:CODE, DS:DATA
DATA SEGMENT
STR1 DB 100 DUP(?)
STR2 DB 100 DUP(?)
INFO1 DB 'All Right!'
INFO2 DB 'Error!'
LEN DB 100
DATA ENDS
CODE SEGMENT
START:
MOV AX, DATA
MOV DS, AX
; 读入 STR1 和 STR2
LEA DX, STR1
MOV AH, 0Ah
INT 21h
LEA DX, STR2
MOV AH, 0Ah
INT 21h
; 比较 STR1 和 STR2 是否相等
MOV CX, LEN
MOV SI, 0
MOV DI, 0
CMP CX, SI
JE EQUAL
COMPARE:
MOV AL, STR1[SI]
MOV BL, STR2[DI]
CMP AL, BL
JNE ERROR
INC SI
INC DI
CMP CX, SI
JE EQUAL
JMP COMPARE
EQUAL:
; STR1 和 STR2 相等
LEA DX, INFO1
MOV AH, 09h
INT 21h
JMP END
ERROR:
; STR1 和 STR2 不相等
LEA DX, INFO2
MOV AH, 09h
INT 21h
END:
MOV AH, 4Ch
INT 21h
CODE ENDS
END START
程序的思路是先读入 STR1 和 STR2,然后逐个比较它们的字符是否相等,直到比较完所有字符或者发现不相等的字符。如果比较完所有字符都相等,则输出 "All Right!",否则输出 "Error!"。