include io.asm
Sseg segment stack
db 256 dup(?)
Sseg ends
Dseg segment
v1 db 0dh,0ah,'Vvedite stroku N1: $'
v2 db 0dh,0ah,'Vvedite stroku N2: $'
s1 db 5 dup(?)
s2 db 5 dup(?)
s3 dw 5 dup(?)
Dseg ends
Cseg segment
assume cs:Cseg,DS:Dseg,SS:Sseg,ES:Dseg
start:
mov ax,Dseg
mov ds,ax
mov es,ax
cld
lea dx,v1
outstr
mov cx,5
mov si,0
vvod1:
inch s1[si]
inc si
loop vvod1
newline
lea dx,v2
outstr
mov cx,5
mov si,0
vvod2:
inch s2[si]
inc si
loop vvod2
lea si,s2
lea di,es:s1
mov cx,5
srav:
repe cmps s1,s2
mov bx,0
dec di
mov s3[bx],di
inc di
inc bx
loop srav
mov cx,5
mov ah, 09
lea dx, s3
int 21h
finish
Cseg ends
end start
srav: repe cmps s1,s2 mov bx,0 dec di mov s3[bx],di inc di inc bx loop srav
mov cx,5
mov bx,0
mov bh,0
srav:
repe cmps s1,s2
dec di
mov s3[bl],di
inc di
inc bl
loop srav
mov cx,5
lea dx,s3
outstr
mov al, [di]
mov s3[bx], al
lea dx,v1
outstr
;===============================================================================
; Вывод строки символов
; обращение:outstr
; на входе:ds:dx-начальный адрес строки
; (в конце строки д.б. символ $,код 36 (24h))
;-------------------------------------------------------------------------------
Outstr macro
push ax
mov ah,9
int 21h
pop ax
endm
include io.asm
Sseg segment stack
db 256 dup(?)
Sseg ends
Dseg segment
s1 db 5 dup(?)
s2 db 5 dup(?)
s3 db 5 dup(?), '$'
sch db 0
v1 db 0dh,0ah,'Vvedite stroku N1: $'
v2 db 0dh,0ah,'Vvedite stroku N2: $'
Dseg ends
Cseg segment
assume cs:Cseg,DS:Dseg,SS:Sseg,ES:Dseg
start:
mov ax,Dseg
mov ds,ax
mov es,ax
cld
lea dx,v1
outstr
mov cx,5
mov si,0
vvod1:
inch s1[si]
inc si
loop vvod1
newline
lea dx,v2
outstr
mov cx,5
mov di,0
vvod2:
inch s2[di]
inc di
loop vvod2
lea si,s1
lea di,es:s2
mov cx,6
mov bx,0
srav:
repe cmps s2,s1
jcxz p2
jne p1
p1:
dec si
lods s1
mov s3[bx], al
inc bl
inc sch
loop srav
p2:
xor ax,ax
mov ax,5
sub al,sch
mov cx,ax
p3:
mov s3[bx], '5'
inc bl
loop p3
lea dx,s3
outstr
exit:
finish
Cseg ends
end start