kiuhnmgtrdcv
شنبه 30 خرداد 1388, 17:54 عصر
برای حذف تمامی فضاهای خالی در یک رشته من این کد نوشتم ولی ایراد داره لطفا ایرادهاشو تصحیح کنید
stk segment stack
db 64 dup(' ')
stk ends
datasg segment para 'code'
name1 db 's a l am',"$"
space db " "
name2 db 20 dup(' '),"$"
datasg ends
codesg segment para 'code'
main proc far
assume ds:datasg, cs:codesg, ss: stk
mov ax,datasg
mov ds,ax
mov es,ax
lea bx,name1
lea bp,name2
pa:
mov dl, byte ptr[bx]
cmp dl," "
inc bp
inc bx
je pa ;ignore space and next
mov byte ptr [bp],dl
cmp dl,"$" ;if not end of string next
jne pa
mov ah,9
lea dx,name2
int 21h
pe:
mov ax, 4c00h
int 21h
main endp
codesg ends
end main
stk segment stack
db 64 dup(' ')
stk ends
datasg segment para 'code'
name1 db 's a l am',"$"
space db " "
name2 db 20 dup(' '),"$"
datasg ends
codesg segment para 'code'
main proc far
assume ds:datasg, cs:codesg, ss: stk
mov ax,datasg
mov ds,ax
mov es,ax
lea bx,name1
lea bp,name2
pa:
mov dl, byte ptr[bx]
cmp dl," "
inc bp
inc bx
je pa ;ignore space and next
mov byte ptr [bp],dl
cmp dl,"$" ;if not end of string next
jne pa
mov ah,9
lea dx,name2
int 21h
pe:
mov ax, 4c00h
int 21h
main endp
codesg ends
end main