جواب تمرین یک دانشگاه آزاد نیشابور استاد تقی پور.
برنامه ای بنویسید که دو رشته را از ورودی بگیرد و عناصر مشترک آن را در رشته STR بریزد و آن را چاپ کند.
کد:
; multi-segment executable file template.
data segment
; add your data here!
STR1 DB 30 DUP('$'),'$'
STR2 DB 30 DUP('$'),'$'
STR DB 30 DUP('$'),'$'
X DB 'LOTFAN RESHTEH AVAL RA VARED KONID?','$'
Y DB 'LOTFAN RESHTEH DOVOM RA VARED KONID?','$'
ends
stack segment
dw 128 dup(0)
ends
code segment
start:
; set segment registers:
mov ax, data
mov ds, ax
mov es, ax
; add your code here
MOV AH,09H
MOV DX,OFFSET X
INT 21H
MOV AH,02H
MOV DL,0AH
INT 21H
MOV AH,02H
MOV DL,0DH
INT 21H
MOV SI,0
L2:
MOV AH,01H
INT 21H
CMP AL,13
JE L3
MOV STR1[SI],AL
INC SI
JMP L2
L3:
INC SI
MOV STR1[SI],'$'
MOV AH,02H
MOV DL,0AH
INT 21H
MOV AH,02H
MOV DL,0DH
INT 21H
MOV AH,09H
MOV DX,OFFSET Y
INT 21H
MOV AH,02H
MOV DL,0AH
INT 21H
MOV AH,02H
MOV DL,0DH
INT 21H
MOV SI,0
L4:
MOV AH,01H
INT 21H
CMP AL,13
JE L5
MOV STR2[SI],AL
INC SI
JMP L4
L5:
INC SI
MOV STR2[SI],'$'
MOV AH,02H
MOV DL,0AH
INT 21H
MOV AH,02H
MOV DL,0DH
INT 21H
MOV SI,0
MOV DI,0
L1:
CMP STR1[SI],'$'
JE EXIT
MOV AL,STR1[SI]
MOV AH,STR2[SI]
CMP AL , AH
JNE L6
MOV BL,STR1[SI]
MOV STR[DI],BL
INC DI
L6:
INC SI
JMP L1
EXIT:
MOV AH,02H
MOV DL,0AH
INT 21H
MOV AH,02H
MOV DL,0DH
INT 21H
MOV STR[DI],'$'
MOV AH,09H
MOV DX,OFFSET STR
INT 21H
mov ax, 4c00h ; exit to operating system.
int 21h
ends
end start ; set entry point and stop the assembler.
دوست عزیز اگه خود یکمی هم تلاش کنی خوبه.