ورود

View Full Version : اسمبلی



hariryma
یک شنبه 13 خرداد 1386, 09:15 صبح
برنامه ایی بنویسید که 2 رشته را دریافت کند (s1 و s2) و ترکیب آنها را در s3 قراردهد؟

بعنوان مثال: s1: ali
s2:reza
s3:alireza
با تشکر

mahdi_akhavan
چهارشنبه 16 خرداد 1386, 22:16 عصر
میتونید با استفاده از دستور label byte سه ارایه تهریف کنید که اولی را به کمک دستورهای byte ptr خانه آرایه را خوانده و در سومی ذخیره کنید.

ForKalimdor
دوشنبه 21 خرداد 1386, 15:14 عصر
سلام.
توی masm32 v9.0 :
یه تابع اینجا گذاشتم که برای فراخونیش باید از دستور زیر استفاده کنی:

invoke strcpy, addr sourcestring1, addr sourcestring2, addr deststring

یا به عبارتی:

push addr deststring
push addr sourcestring2
push addr sourcestring1
call strcpy


اینم کد تابع:



strcpy proc source1:DWORD, source2:DWORD, dest:DWORD

mov ebx,source1
mov edx,dest
mov al,byte ptr[ebx] ; get first byte of source1

.while(al<>0) ;loop for source1 mov
mov byte ptr [edx],al
mov al,byte ptr[ebx] ; get next byte
inc ebx
inc edx
.endw

mov ebx,source2
mov al,byte ptr[ebx] ; get first byte source2

.while(al<>0) ;loop for source2 mov
mov byte ptr [edx],al
mov al,byte ptr[ebx] ; get next byte
inc ebx
inc edx
.endw

xor al,al ; al is zero but do this for fun
mov byte ptr[edx],al ;zero end of string

ret
endp