ورود

View Full Version : روش تشخیص کلید alt و F1 تا F12 در اسمبلی؟؟؟



sajadcg
شنبه 19 آذر 1390, 19:38 عصر
سلام.
من می خوام برنامه ای بنویسم که اگه کلید های گسترش یافته مثل f1 تا f12 و کلید های ترکیبی را تشحیص بده.به طوری که اگر کاربر کلید alt را زد برنامه چاپ کنه "alt".به همین ترتیب f1 تا f12 را .
برای این کار باید چیکار کنم؟؟؟
لطفا راهنمائی کنید.

مرسیـــــ:لبخندساده:

امید خطیبی
شنبه 19 آذر 1390, 23:25 عصر
با سلام خدمت دوست عزیز
داداش شما می توانی از تابع زیر استفاده کرده
mov AH,0
int 16H
و با دستور CMP می توانید تشخیص دهید که ایا کلید Alt فشار داده شده است یا نه
که اون مورد هم به این روش نوشته میشه 'cmp al,'alt
باز اگر متوجه نشودین به من بگویید تا راهنمایی بیشتری کنم.

IamOverlord
یک شنبه 20 آذر 1390, 16:44 عصر
بستگی داره چه نوع برنامه ی Assembly ای می نویسید.
برای Win32 با MASM :
Keyboard Input (http://win32assembly.online.fr/tut6.html)

xman_1365_x
یک شنبه 20 آذر 1390, 17:24 عصر
قبلا در ارتباط با اسکن کد ها صحبت شده ، جستجو کنید! وقفه ای که گذاشته شده استفاده کنید لینک های زیر هم بهتون کمک میکنه
http://maven.smith.edu/~thiebaut/ArtOfAssembly/CH20/CH20-1.html
http://www.win.tue.nl/~aeb/linux/kbd/scancodes-1.html
http://www.ee.bgu.ac.il/~microlab/MicroLab/Labs/ScanCodes.htm
موفق باشی

sajadcg
یک شنبه 20 آذر 1390, 19:23 عصر
با سلام خدمت دوست عزیز
داداش شما می توانی از تابع زیر استفاده کرده
mov AH,0
int 16H
و با دستور CMP می توانید تشخیص دهید که ایا کلید Alt فشار داده شده است یا نه
که اون مورد هم به این روش نوشته میشه 'cmp al,'alt
باز اگر متوجه نشودین به من بگویید تا راهنمایی بیشتری کنم.

و وقتی که alt یا سایر کلید های ترکیبی فشرده چیزی توی AL نمیره که بشه مقایسش کرد.
این روش که شما گفتید واسه کلید های معمولی مثل a,b,c و ... کاربرد داره.
و چیزی هم که در مورد کلید های مثل F1 هست اینه 2 کد اسکی تولید میکنه نه یک کد .مثلا 0,65

مشکل من اینه که نمی دونم alt,ctrl,shift را باید از کجا تشحیص داد؟؟؟؟؟؟؟؟:متفکر:

xman_1365_x
یک شنبه 20 آذر 1390, 19:52 عصر
و وقتی که alt یا سایر کلید های ترکیبی فشرده چیزی توی AL نمیره که بشه مقایسش کرد.
این روش که شما گفتید واسه کلید های معمولی مثل a,b,c و ... کاربرد داره.
و چیزی هم که در مورد کلید های مثل F1 هست اینه 2 کد اسکی تولید میکنه نه یک کد .مثلا 0,65

مشکل من اینه که نمی دونم alt,ctrl,shift را باید از کجا تشحیص داد؟؟؟؟؟؟؟؟:متفکر:

همونطور که گفتم از وقفه مذکور استفاده کنید و لینک هایی که دادم اسکن کد + کد اسکی همرو نوشته و خروجی وقفه در ax قرار میگیره که شما باید بررسی کنید!

INT 16h / AH = 00h - get keystroke from keyboard (no echo).
return:
AH = BIOS scan code.
AL = ASCII character.
(if a keystroke is present, it is removed from the keyboard buffer).


موفق باشی

majidrmd
دوشنبه 21 آذر 1390, 12:01 عصر
بستگی داره چه نوع برنامه ی Assembly ای می نویسید.
برای Win32 با MASM :
Keyboard Input (http://win32assembly.online.fr/tut6.html)

من میخوام با MASM بنویسیم.راهنمایی کنید

xman_1365_x
دوشنبه 21 آذر 1390, 12:19 عصر
من میخوام با MASM بنویسیم.راهنمایی کنید
دوست عزیز آی پی های شما قابل مشاهده هست، نام کاربری جدید نسازید!
و در پست های قبل به اندازه کافی راهنمایی شده،باید شروع به نوشتن کنید،هروقت کدی نوشتین که در کد مشکل داشتین تاپیک جدید نزنید و پیغام خصوصی بدین تا تاپیک رو باز کنم!