تور لحظه آخری
امروز : یکشنبه ، 20 آبان 1403    احادیث و روایات:  امام علی (ع):هرگاه مؤمن بيمار شود سپس خداوند شفايش دهد، آن بيمارى كفّاره گناهان گذشته و پندى بر...
سرگرمی سبک زندگی سینما و تلویزیون فرهنگ و هنر پزشکی و سلامت اجتماع و خانواده تصویری دین و اندیشه ورزش اقتصادی سیاسی حوادث علم و فناوری سایتهای دانلود گوناگون شرکت ها

تبلیغات

تبلیغات متنی

صرافی ارکی چنج

صرافی rkchange

سایبان ماشین

دزدگیر منزل

تشریفات روناک

اجاره سند در شیراز

قیمت فنس

armanekasbokar

armanetejarat

صندوق تضمین

Future Innovate Tech

پی جو مشاغل برتر شیراز

لوله بازکنی تهران

آراد برندینگ

خرید یخچال خارجی

موسسه خیریه

واردات از چین

حمية السكري النوع الثاني

ناب مووی

دانلود فیلم

بانک کتاب

دریافت دیه موتورسیکلت از بیمه

قیمت پنجره دوجداره

بازسازی ساختمان

طراحی سایت تهران سایت

irspeedy

درج اگهی ویژه

تعمیرات مک بوک

دانلود فیلم هندی

قیمت فرش

درب فریم لس

زانوبند زاپیامکس

روغن بهران بردبار ۳۲۰

قیمت سرور اچ پی

خرید بلیط هواپیما

بلیط اتوبوس پایانه

قیمت سرور dl380 g10

تعمیرات پکیج کرج

لیست قیمت گوشی شیائومی

خرید فالوور

پوستر آنلاین

بهترین وکیل کرج

بهترین وکیل تهران

اوزمپیک چیست

خرید اکانت تریدینگ ویو

خرید از چین

خرید از چین

تجهیزات کافی شاپ

نگهداری از سالمند شبانه روزی در منزل

بی متال زیمنس

ساختمان پزشکان

ویزای چک

محصولات فوراور

خرید سرور اچ پی ماهان شبکه

دوربین سیمکارتی چرخشی

همکاری آی نو و گزینه دو

کاشت ابرو طبیعی و‌ سریع

الک آزمایشگاهی

الک آزمایشگاهی

چراغ خطی

 






آمار وبسایت

 تعداد کل بازدیدها : 1828039948




هواشناسی

نرخ طلا سکه و  ارز

قیمت خودرو

فال حافظ

تعبیر خواب

فال انبیاء

متن قرآن



اضافه به علاقمنديها ارسال اين مطلب به دوستان آرشيو تمام مطالب
archive  refresh

اضافه کردن یک رشته به درون رشته دیگر در زبان اسمبلی -


واضح آرشیو وب فارسی:سایت ریسک: اضافه کردن یک رشته به درون رشته دیگر در زبان اسمبلی the_king 19 خرداد 1388, 16:37گاهی اوقات نیاز به کدی داریم که یک رشته را با رشته دیگری ادغام کند، اما همیشه درج این رشته جدید در انتهای رشته قبلی نیست، کد زیر نشان می دهد که چگونه می توانیم یک رشته را در موقعیت n ام رشته دیگری اضافه کنیم، مقدار n از 1 شروع می شود. اگر مقدار n برابر 1 باشد، رشته جدید دقیقا در ابتدای رشته قبلی اضافه می شود و پیش از آن قرار می گیرد. .MODEL SMALL .DATA msg1 DB "Please enter first string :",13,10,"$" msg2 DB 13,10,"Please enter second string :",13,10,"$" msg3 DB 13,10,"Please enter number n (n>0) :",13,10,"$" msg4 DB 13,10,"First string after insert :",13,10,"$" msg5 DB 13,10,"Press any key to continue.",13,10,"$" string1 DB 80 DB ? DB 80 DUP (?) extra DB 80 DUP (?) string2 DB 80 DB ? DB 80 DUP (?) number DB 3 DB ? DB 3 DUP (?) .CODE .STARTUP MOV AH, 9 LEA DX, msg1 INT 21h loop_1: MOV AH, 0ah LEA DX, string1 INT 21h CMP string1[1], 0 JZ loop_1 MOV AH, 9 LEA DX, msg2 INT 21h loop_2: MOV AH, 0ah LEA DX, string2 INT 21h CMP string2[1], 0 JZ loop_2 MOV AH, 9 LEA DX, msg3 INT 21h loop_3: MOV AH, 0ah LEA DX, number INT 21h MOV CL, number[1] CMP CL, 0 JZ loop_3 MOV CH, 0 LEA SI, number[2] MOV DI, 10 MOV BX, 0 loop_4: MOV AL, [SI] CMP AL, "0" JB next_1 CMP AL, "9" JA next_1 SUB AL, "0" MOV AH, 0 XCHG AX, BX MUL DI ADD BX, AX next_1: INC SI LOOP loop_4 CMP BX, 0 JZ loop_3 MOV CL, string1[1] MOV CH, 0 DEC BX CMP BX, CX JBE next_2 MOV BX, CX next_2: LEA SI, string1[2] ADD SI, CX MOV AX, BX MOV BL, string2[1] MOV BH, 0 MOV BYTE PTR [SI+BX], "$" SUB CX, AX JZ next_3 loop_5: DEC SI MOV AL, [SI] MOV [SI+BX], AL LOOP loop_5 next_3: MOV CX, BX LEA DI, string2[2] loop_6: MOV AL, [DI] MOV [SI], AL INC SI INC DI LOOP loop_6 MOV AH, 9 LEA DX, msg4 INT 21h LEA DX, string1[2] INT 21h LEA DX, msg5 INT 21h MOV AH, 8 INT 21h .EXIT .STACK END the_king 19 خرداد 1388, 16:45در کد قبلی ما رشته جدید را به رشته قبلی اضافه کردیم مثلا اگر رشته "one" در موقعیت 1 رشته "book" درج می شد، رشته "onebook" بدست می آمد. اما گاهی اوقات نیاز به کدی داریم که یک رشته روی یک رشته دیگری جانشین شود، یعنی بر خلاف کد قبلی، کاراکتر هایی که زیر رشته جدید قرار می گیرند حذف گردند. مثلا اگر رشته "one" در موقعیت 1 رشته "book" جانشین شود، رشته "onek" حاصل گردد. کد زیر نشان می دهد که چگونه می توانیم یک رشته را در موقعیت n ام رشته دیگری جایگزین کنیم، مقدار n از 1 شروع می شود. .MODEL SMALL .DATA msg1 DB "Please enter first string :",13,10,"$" msg2 DB 13,10,"Please enter second string :",13,10,"$" msg3 DB 13,10,"Please enter number n (n>0) :",13,10,"$" msg4 DB 13,10,"First string after overwrite :",13,10,"$" msg5 DB 13,10,"Press any key to continue.",13,10,"$" string1 DB 80 DB ? DB 80 DUP (?) extra DB 80 DUP (?) string2 DB 80 DB ? DB 80 DUP (?) number DB 3 DB ? DB 3 DUP (?) .CODE .STARTUP MOV AH, 9 LEA DX, msg1 INT 21h loop_1: MOV AH, 0ah LEA DX, string1 INT 21h CMP string1[1], 0 JZ loop_1 MOV AH, 9 LEA DX, msg2 INT 21h loop_2: MOV AH, 0ah LEA DX, string2 INT 21h CMP string2[1], 0 JZ loop_2 MOV AH, 9 LEA DX, msg3 INT 21h loop_3: MOV AH, 0ah LEA DX, number INT 21h MOV CL, number[1] CMP CL, 0 JZ loop_3 MOV CH, 0 LEA SI, number[2] MOV DI, 10 MOV BX, 0 loop_4: MOV AL, [SI] CMP AL, "0" JB next_1 CMP AL, "9" JA next_1 SUB AL, "0" MOV AH, 0 XCHG AX, BX MUL DI ADD BX, AX next_1: INC SI LOOP loop_4 CMP BX, 0 JZ loop_3 DEC BX MOV AL, string1[1] MOV AH, 0 CMP BX, AX JBE next_2 MOV BX, AX next_2: LEA SI, string1[2] MOV DI, SI ADD DI, BX MOV CL, string2[1] MOV CH, 0 ADD BX, CX CMP BX, AX JA next_3 ADD SI, AX JMP next_4 next_3: ADD SI, BX INC SI next_4: MOV BYTE PTR [SI], "$" LEA SI, string2[2] loop_5: MOV AL, [SI] MOV [DI], AL INC SI INC DI LOOP loop_5 MOV AH, 9 LEA DX, msg4 INT 21h LEA DX, string1[2] INT 21h LEA DX, msg5 INT 21h MOV AH, 8 INT 21h .EXIT .STACK END




این صفحه را در گوگل محبوب کنید

[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 1349]

bt

اضافه شدن مطلب/حذف مطلب







-


گوناگون

پربازدیدترینها
طراحی وب>


صفحه اول | تمام مطالب | RSS | ارتباط با ما
1390© تمامی حقوق این سایت متعلق به سایت واضح می باشد.
این سایت در ستاد ساماندهی وزارت فرهنگ و ارشاد اسلامی ثبت شده است و پیرو قوانین جمهوری اسلامی ایران می باشد. لطفا در صورت برخورد با مطالب و صفحات خلاف قوانین در سایت آن را به ما اطلاع دهید
پایگاه خبری واضح کاری از شرکت طراحی سایت اینتن