河北工业大学汇编语言程序设计实验四

对着背影说爱祢 提交于 2020-02-03 03:29:14

河北工业大学汇编语言程序设计实验四
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 
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!