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

تبلیغات

تبلیغات متنی

تریدینگ ویو

لمینت دندان

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

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

صرافی rkchange

دزدگیر منزل

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

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

قیمت فنس

armanekasbokar

armanetejarat

صندوق تضمین

طراحی کاتالوگ فوری

Future Innovate Tech

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

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

آراد برندینگ

وکیل کرج

خرید تیشرت مردانه

وام لوازم خانگی

نتایج انتخابات ریاست جمهوری

خرید ابزار دقیق

خرید ریبون

موسسه خیریه

خرید سی پی کالاف

واردات از چین

دستگاه تصفیه آب صنعتی

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

ناب مووی

دانلود فیلم

بانک کتاب

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

خرید نهال سیب سبز

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

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

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

دیوار سبز

irspeedy

درج اگهی ویژه

ماشین سازان

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

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

قیمت فرش

درب فریم لس

شات آف ولو

تله بخار

شیر برقی گاز

شیر برقی گاز

خرید کتاب رمان انگلیسی

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

بهترین کف کاذب چوبی

پاد یکبار مصرف

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

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

بلیط هواپیما

 






آمار وبسایت

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




هواشناسی

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

قیمت خودرو

فال حافظ

تعبیر خواب

فال انبیاء

متن قرآن



اضافه به علاقمنديها ارسال اين مطلب به دوستان آرشيو تمام مطالب
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]
[تعداد بازديد از اين مطلب: 1345]

bt

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







-


گوناگون

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


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