ورود

View Full Version : سوال: برنامه NotePad با اسمبلی



davood86n
سه شنبه 26 اردیبهشت 1391, 12:13 عصر
با سلام خدمت دوستان و عرض خسته نباشید :
بنده می خوام یه برنامه با اسمبلی بنویسم که موارد زیر رو داشته باشه :
1-منو بازشو (Popup)
2-امکان ذخیره و بازیابی فایل
3-ویرایش(به این نحو که با اضافه کردن هر کاراکتر کاراکتر های بعدی به راست شیفت پیدا کنند و با حذف کاراکتر به چپ شیف داده بشه)
4- قابلیت Replace
توی تاپیک ها گشتم چیزی پیدا نکردم برای همین شیفت دادم .
درمورد بخش ویرایش یه چیزی به ذهنم اومد که از آرایه کمک بگیرم ولی بعد دیدم به صورت Real time نمیتونم ویرایش کنم. اگه کسی از دوستان می دونه راهنماییم کنه ممنون می شم

xman_1365_x
سه شنبه 26 اردیبهشت 1391, 18:15 عصر
1-منو بازشو (Popup)
باید به مد گرافیکی برین پنجره طراحی کنید و عکس العمل نشون بده نسبت به کلید ماوس سا صفحه کلید
قبلا چند برنامه گذاشته شده که میتونه بهتون کمک کنه
فکر میکنم یکیش طراحی اکسپلورر یا همچین چیزی بود که explorer و منوی استارت رو شبیه سازی کرده به کار شما میاد جستجو کنید پیدا میکنید

2-امکان ذخیره و بازیابی فایل
دو روش که یک بافر کلی داشته باشین یا پیکسل هارو در فایلی ذخیره کنید و بازیابی هم بلعکسش

3-ویرایش(به این نحو که با اضافه کردن هر کاراکتر کاراکتر های بعدی به راست شیفت پیدا کنند و با حذف کاراکتر به چپ شیف داده بشه)
به نظرم ساده ترین روش ذخیره در همون بافر با سایزی مشخص یا اینکه در فایل که به راحتی میتونید به موقعیتی که میخواین برین و این شیفت رو انجام بدین

4- قابلیت Replace
ساده ترینش همون روش قبل که در فایل گفتم بدون شیفت جایگزین قبلی ها میشه

درمورد بخش ویرایش یه چیزی به ذهنم اومد که از آرایه کمک بگیرم ولی بعد دیدم به صورت Real time نمیتونم ویرایش کنم
چرا نتونید ؟ فقط سایز این آرایه باید بزرگ باشه و انتهاش مشخص اما از اونجا که در 8086 محدودیت رم داریم بهترین روش همون کار با فایل هست

موفق باشید

davood86n
چهارشنبه 27 اردیبهشت 1391, 16:30 عصر
سلام من تا الان با بافر کار نکردم به چه صورت می تونم با بافر کار کنم یه خورده بیشتر توضیح بدید ممنون می شم البته شاید به صورت غیر مستقیم حضورشون شرفیاب شدیم ولی الان یادم نیست!!!!

xman_1365_x
چهارشنبه 27 اردیبهشت 1391, 21:57 عصر
سلام من تا الان با بافر کار نکردم به چه صورت می تونم با بافر کار کنم یه خورده بیشتر توضیح بدید ممنون می شم البته شاید به صورت غیر مستقیم حضورشون شرفیاب شدیم ولی الان یادم نیست!!!!
یک مثال ساده از بافر در وقفه که برای نگهداری رشته ورودی استفاده میکنه، شما هم به همچین فضا های حافظه ای نیاز دارین


org 100h
mov dx, offset buffer
mov ah, 0ah
int 21h
jmp print
buffer db 10,?, 10 dup(' ')
print:
xor bx, bx
mov bl, buffer[1]
mov buffer[bx+2], '$'
mov dx, offset buffer + 2
mov ah, 9
int 21h
ret
موفق باشید

davood86n
یک شنبه 31 اردیبهشت 1391, 23:32 عصر
ببخشید بازم مزاحم شدم ولی پروژه ای که برای منو بازشو معرفی کردید پیدا نکردم!!!

xman_1365_x
دوشنبه 01 خرداد 1391, 10:15 صبح
ببخشید بازم مزاحم شدم ولی پروژه ای که برای منو بازشو معرفی کردید پیدا نکردم!!!
من در گوگل این کلید(دسکتاپ اسمبلی site:http://barnamenevis.org/forumdisplay.php?47) واژه رو استفاده کردم و عنوانین زیر دوتای اول بودن
لینک اول بهتون کمک میکنه
دسکتاپ طراحی شده با اسمبلی(پیشرفته تر) (http://barnamenevis.org/showthread.php?191394-%D8%AF%D8%B3%DA%A9%D8%AA%D8%A7%D9%BE-%D8%B7%D8%B1%D8%A7%D8%AD%DB%8C-%D8%B4%D8%AF%D9%87-%D8%A8%D8%A7-%D8%A7%D8%B3%D9%85%D8%A8%D9%84%DB%8C(%D9%BE%DB%8C% D8%B4%D8%B1%D9%81%D8%AA%D9%87-%D8%AA%D8%B1)&daysprune=-1)
دسکتاپ طراحی شده با اسمبلی (http://barnamenevis.org/showthread.php?191014-%D8%AF%D8%B3%DA%A9%D8%AA%D8%A7%D9%BE-%D8%B7%D8%B1%D8%A7%D8%AD%DB%8C-%D8%B4%D8%AF%D9%87-%D8%A8%D8%A7-%D8%A7%D8%B3%D9%85%D8%A8%D9%84%DB%8C)

موفق باشی