河北工业大学汇编语言程序设计实验四
4-1
ASSUME DS:DATA,CS:CODE,SS:STACK
DATA SEGMENT
STR1 DB 'Please Input The Frist String:',0AH,'$'
STR2 DB 0AH,'Please Input The Second String:',0AH,'$'
STRING1 DB 101,?,101 DUP (?)
STRING2 DB 101,?,101 DUP (?)
MATCH DB 0AH,'STRING1 == SRRING2$'
NOMATCH DB 0AH,'STRING1 != STRING2$'
DATA ENDS
STACK SEGMENT STACK
DW 20H DUP (?)
TOP LABEL WORD
STACK ENDS
CODE SEGMENT
P PROC FAR
MOV AX,DATA
MOV DS,AX
MOV AX,STACK
MOV SS,AX
LEA SP,TOP
LEA DX,STR1 ;输出提示,输入第一个字符串
MOV AH,09H
INT 21H
LEA DX,STRING1
MOV AH,0AH
INT 21H
LEA DX,STR2
MOV AH,09H
INT 21H
LEA DX,STRING2
MOV AH,0AH
INT 21H
GETLENGTH:
MOV AL,STRING1+1
MOV BL,STRING2+1
COMPARE:
CMP AL,BL
JNE NO
MOV CL,AL ;进行字符串比较前的准备工作
LEA SI,STRING1
LEA DI,STRING2
L1: ;进入循环进行比较
MOV AX,[SI]
MOV BX,[DI]
CMP AX,BX
JNE NO
CMP CL,0
JE YES
INC SI
INC DI
LOOP L1
YES:
LEA DX,MATCH
MOV AH,09H
INT 21H
JMP EXIT
NO:
LEA DX,NOMATCH
MOV AH,09H
INT 21H
JMP EXIT
EXIT:
MOV AH,4CH
INT 21H
P ENDP
CODE ENDS
END P
4-3
data segment
inf1 db 0dh,0ah,'input string: $'
inf2 db 0dh,0ah,'the string without space: $'
buf1 db 81
db ?
db 100 dup(0)
buf2 db 100 dup(0)
data ends
stack segment stack
db 100 dup(0)
stack ends
code segment
assume ds:data,ss:stack,cs:code
start:mov ax,data
mov ds,ax
lea dx,inf1
mov ah,9
int 21h
lea dx,buf1
mov ah,10
int 21h
lea si,buf1+1
mov ch,0
mov cl,[si]
lea di,buf2
lp1:
inc si
mov al,[si]
dec cx
cmp cx,0
jl show
cmp al,32
jz lp1
mov al,[si]
mov [di],al
inc di
jmp lp1
show:
mov byte ptr [di],'$'
lea dx,inf2
mov ah,9
int 21h
lea dx,buf2
mov ah,9
int 21h
mov ah,4ch
int 21h
code ends
end start
来源:CSDN
作者:weixin_43938902
链接:https://blog.csdn.net/weixin_43938902/article/details/104145433