最近忙这考试,英语六级很少写帖了,今天有兴趣就写了这个程序,希望大家给点评论,以便自己以后改进!!! dseg segmentstr1 db 'abcdefgklmn','$'str2 db 'abcdhijk','$'jiao db 20 dup (?)bing db 30 dup (?)cha db 20 dup (?)dseg endssseg segment stacksseg endscseg segment assume cs:cseg,ds:dseg,ss:sseg start: mov ax,dseg mov ds,ax lea ax,str1 push ax lea ax,str2 push ax lea ax,jiao push ax call jiao_func lea ax,str1 push ax lea ax,str2 push ax lea ax,bing push ax call bing_func lea ax,jiao push ax lea ax,bing push ax lea ax,cha push ax call cha_func lea dx,jiao mov ah,9 int 21h mov dl,':' mov ah,2 int 21h lea dx,bing mov ah,9 int 21h mov dl,':' mov ah,2 int 21h lea dx,cha mov ah,9 int 21h mov ah,4ch int 21h jiao_func proc push bp mov bp,sp push ax push bx push cx push dx push si push di mov si,6[bp] mov bx,4[bp] mov di,8[bp] next_loop: mov al,'$' cmp [si],al je exit_jiao mov al,[si] push dinext_jiao: cmp al,[di] je element_jiao mov ch,[di] cmp ch,'$' je element_null inc di jmp next_jiaoelement_jiao: mov cl,[si] mov [bx],cl pop di inc bx inc si jmp next_loopelement_null: pop di inc si jmp next_loop exit_jiao: mov al,'$' mov [bx],al pop di pop si pop dx pop cx pop bx pop ax pop bp ret 6 jiao_func endp bing_func proc push bp mov bp,sp push ax push bx push cx push dx push si push di mov si,6[bp] mov bx,4[bp] mov di,8[bp] next_loop: mov al,'$' cmp al,[si] je add_bing push di next_check: mov al,[di] cmp al,'$' je no_over cmp [si],al je same_have inc di jmp next_check same_have: pop di inc si jmp next_loopno_over: pop di mov cl,[si] mov [bx],cl inc bx inc si jmp next_loopadd_bing: mov al,'$' cmp al,[di] je exit mov al,[di] mov [bx],al inc di inc bx jmp add_bingexit: mov al,'$' mov [bx],al pop di pop si pop dx pop cx pop bx pop ax pop bp ret 6 bing_func endp cha_func proc push bp mov bp,sp push ax push bx push cx push dx push si push di mov si,6[bp] ;bing mov bx,4[bp] mov di,8[bp] ;jiao next_loop: mov al,'$' cmp al,[si] je exit_cha push dinext_check: mov al,[di] cmp al,'$' je have_cha cmp al,[si] je no_incha inc di jmp next_checkhave_cha: pop di mov al,[si] mov [bx],al inc si inc bx jmp next_loopno_incha: pop di inc si jmp next_loopexit_cha: mov al,'$' mov [bx],al pop di pop si pop dx pop cx pop bx pop ax pop bp ret 6 cha_func endp cseg ends end start

评论