# برنامه نویسی سطح پایین > برنامه نویسی اسمبلی خانواده x86 >  دستورات in & out

## Mah-ra

سلام
میخواستم بدونم دستورات in & out در اسمبلی چه کاربردی دارند

----------


## the king

> سلام
> میخواستم بدونم دستورات in & out در اسمبلی چه کاربردی دارند


اگه بخواهیم با یک سخت افزاری ارتباط مستقیم برقرار کنیم باید به شماره پورت یا پورت هایی که به اون سخت افزار مربوطه داده بفرستیم یا ازش داده بخونیم.
دستورات IN و OUT کارشون دقیقا همینه که از شماره پورت مشخصی داده بخونند یا به اون پورت داده بفرستند.
فرضا صفحه کلید کد کلیدی که فشار داده شده رو در پورت شماره 60h ثبت می کنه و می توانیم بدون اینکه در اجرای برنامه وقفه ای رخ بده و برای فشار کلید منتظر بمونیم چک کنیم که در این لحظه چه کلیدی فشرده شده.
فرضا کد کلید ESC مقدارش 1 ئه :

    IN      AL, 60h
    CMP     AL, ESC_key
    JE      go_exit


یا فرضا CMOS مادربورد از پورت 70h برای مشخص کردن آدرس حافظه و از پورت 71h برای مشخص کردن مقدار حافظه استفاده می کنه.
مثلا وقتی می خواهیم بایت خانه شماره 14 حافظه CMOS رو پاک کنیم (بهش مقدار 0 بفرستیم) همچین کدی خواهیم داشت :

    MOV     AL, 14
    OUT     70h, AL
    XOR     AL, AL
    OUT     71h, AL

----------


## Mah-ra

میشه بگید برای برنامه نویسی گرافیک چجور از پورت های 3c0 -3df استفاده کنیم؟

----------

