Machine & Assembly Language
‫اسمبلی‬ ‫و‬ ‫ماشین‬ ‫زبان‬
‫خدا‬ ‫نام‬ ‫به‬
1
‫ها‬ ‫وقفه‬
Interrupts
2
‫وقفه‬(interrupt)
3
‫وقفه‬‫سیگنالی‬‫از‬‫دستگاه‬‫جانبی‬‫یا‬‫برنامه‬‫در‬‫حال‬‫اجرا‬‫است‬‫که‬‫عمل‬‫خاصی‬‫را‬‫در‬
‫خواست‬‫می‬‫کند‬.‫وقتی‬‫برنامه‬‫در‬‫حال‬،‫اجرا‬‫وقفه‬‫ای‬‫را‬‫دریافت‬‫می‬،‫کند‬‫اجرای‬
‫برنامه‬‫به‬‫تعویق‬‫می‬‫افتد‬‫و‬‫محتویات‬‫ثبات‬‫های‬CS‫و‬IP‫در‬‫پشته‬‫نگهداری‬‫می‬
‫شود‬‫و‬‫کنترل‬‫اجرای‬،‫برنامه‬‫به‬‫زیر‬‫برنامه‬‫ای‬‫می‬‫رود‬‫تا‬‫به‬‫وقفه‬‫پاسخ‬‫دهد‬.
‫وقفه‬(interrupt)
4
‫هر‬‫وقفه‬‫زیر‬‫برنامه‬‫خاصی‬‫دارد‬‫که‬‫به‬‫آن‬‫پاسخ‬‫می‬‫دهد‬.‫پس‬‫از‬‫اجرای‬‫زیر‬‫برنامه‬
‫پاسخ‬‫گویی‬‫به‬،‫وقفه‬‫محتویات‬CS‫و‬IP‫از‬‫پشته‬‫بازیابی‬‫می‬‫شوند‬‫و‬‫اجرای‬‫برنامه‬
‫ای‬‫که‬‫به‬‫تعویق‬‫افتاده‬،‫بود‬‫از‬‫سر‬‫گرفته‬‫می‬‫شود‬.
‫وقفه‬(interrupt)
5
‫وقفه‬‫ها‬‫به‬‫طور‬‫کلی‬‫دو‬‫دسته‬‫اند‬:
‫وقفه‬‫های‬‫سیستم‬
‫وقفه‬‫های‬‫سخت‬‫افزاری‬
‫به‬‫وسیله‬‫سخت‬‫افزار‬‫ایجاد‬‫می‬‫شوند‬.
‫وقفه‬‫های‬‫نرم‬‫افزاری‬
‫شامل‬‫وقفه‬‫های‬BIOS‫و‬DOS‫هستند‬.
‫وقفه‬‫هایی‬‫که‬‫برنامه‬‫نویس‬‫می‬‫تواند‬‫آن‬‫ها‬‫را‬‫تولید‬‫کند‬.
‫دستورالعمل‬INT
6
‫دستورالعمل‬INT‫برای‬‫اجرای‬‫وقفه‬‫ها‬‫در‬‫زبان‬‫اسمبلی‬‫استفاده‬‫می‬‫شود‬.
‫ساختار‬‫این‬‫دستورالعمل‬‫به‬‫صورت‬‫زیر‬‫است‬.
 INT Value
‫که‬Value‫می‬‫تواند‬‫عددی‬‫بین‬0‫تا‬255‫باشد‬(0 to 0FFh).
‫دستورالعمل‬INT
7
‫در‬‫ریزپردازنده‬80x86‫تعداد‬256‫وقفه‬‫وجود‬‫دارد‬.‫دو‬‫عدد‬‫از‬‫این‬‫وقفه‬‫ها‬‫به‬‫طور‬
‫گسترده‬‫ای‬‫بکار‬‫می‬‫روند‬‫که‬‫عبارتند‬‫از‬INT 10H‫و‬INT 21H.‫هر‬‫یک‬‫از‬‫آنها‬
‫قادرند‬‫توابع‬(‫اعمال‬)‫بسیاری‬‫را‬‫انجام‬‫دهند‬.‫قبل‬‫از‬‫تقاضای‬‫سرویس‬‫بوسیله‬‫این‬‫دو‬
،‫وقفه‬‫بسته‬‫به‬‫تابع‬‫مورد‬،‫تقاضا‬‫باید‬‫در‬‫ثبات‬‫های‬‫معینی‬‫مقادیری‬‫خاصی‬‫وارد‬
‫شود‬.
‫ها‬ ‫وقفه‬ ‫کل‬ ‫تعداد‬
8
‫هر‬‫یک‬‫از‬256‫وقفه‬‫دارای‬‫زیر‬‫تابع‬‫های‬‫مختلفی‬‫است‬.‫برای‬‫تعیین‬‫زیر‬،‫وقفه‬‫ثبات‬
AH(‫البته‬‫در‬‫مواردی‬‫ثبات‬‫های‬‫دیگری‬)‫باید‬‫با‬‫شماره‬‫زیر‬‫وقفه‬‫مقدار‬‫دهی‬‫شود‬.‫هر‬
‫وقفه‬‫می‬‫تواند‬256‫زیر‬‫تابع‬‫داشته‬‫باشد‬‫که‬‫در‬‫نتیجه‬‫در‬‫کل‬256*256=65536
‫وقفه‬‫مختلف‬‫می‬‫توانیم‬‫داشته‬‫باشیم‬.
‫متن‬ ‫روش‬ ‫در‬ ‫نمایش‬ ‫صفحه‬
9
‫صفحه‬‫نمایش‬‫در‬‫روش‬‫متن‬‫در‬IBM PC‫به‬80‫ستون‬،25‫سطر‬‫تقسیم‬‫شده‬
‫است‬.‫این‬‫تقسیم‬‫بندی‬‫مادامی‬‫که‬‫در‬‫روش‬‫متن‬،‫باشد‬‫بدون‬‫توجه‬‫به‬‫رنگی‬‫یا‬
‫تک‬‫رنگ‬‫بودن‬‫صفحه‬،‫نمایش‬‫معتبر‬‫است‬.
‫نمایش‬ ‫صفحه‬ ‫کردن‬ ‫پاک‬
10
‫در‬‫اغلب‬‫موارد‬‫الزم‬‫است‬‫صفحه‬‫نمایش‬‫قبل‬‫از‬‫نمایش‬‫داده‬‫پاک‬‫شود‬.‫برای‬‫پاک‬
‫کردن‬‫صفحه‬‫نمایش‬‫به‬‫کمک‬INT 10H،‫ثبات‬‫های‬‫زیر‬‫باید‬‫با‬‫مقادیر‬‫معینی‬
‫به‬‫ترتیب‬‫مقداردهی‬‫شوند‬.
‫نمایش‬ ‫صفحه‬ ‫کردن‬ ‫پاک‬
11
AL:‫تعداد‬‫خطوطی‬‫که‬‫باید‬‫پاک‬‫شود‬.
CH:‫شماره‬‫سطر‬‫گوشه‬‫باالی‬‫سمت‬‫چپ‬
CL:‫شماره‬‫ستون‬‫گوشه‬‫باالی‬‫سمت‬‫چپ‬
DH:‫شماره‬‫سطر‬‫گوشه‬‫پایین‬‫سمت‬‫راست‬
DL:‫شماره‬‫ستون‬‫گوشه‬‫پایین‬‫سمت‬‫راست‬
BH:‫صفت‬‫محدوده‬‫ای‬‫که‬‫باید‬‫پاک‬‫شود‬.
‫خاص‬ ‫محل‬ ‫یک‬ ‫در‬ ‫نما‬ ‫مکان‬ ‫استقرار‬
12
‫در‬‫وقفه‬INT 10H،‫تابع‬AH=02‫موقعیت‬‫مکان‬‫نما‬‫را‬‫به‬‫هر‬‫محل‬‫دیگر‬‫تغییر‬
‫می‬‫دهد‬.‫محل‬‫مورد‬‫نظر‬‫برای‬‫مکان‬‫نما‬‫توسط‬‫مقادیر‬‫موجود‬‫در‬DX‫شناسایی‬‫می‬
،‫شود‬‫که‬‫در‬‫آن‬‫سطر‬DH=‫و‬‫ستون‬DL=‫می‬‫باشند‬.
‫خاص‬ ‫محل‬ ‫یک‬ ‫در‬ ‫نما‬ ‫مکان‬ ‫استقرار‬
13
RAM‫تصویر‬‫می‬‫تواند‬‫به‬‫بیش‬‫از‬‫یک‬‫صفحه‬‫از‬‫متن‬‫تخصیص‬،‫یابد‬‫ولی‬‫هر‬‫بار‬‫تنها‬
‫یکی‬‫از‬‫آنها‬‫قابل‬‫مشاهده‬‫است‬.‫هنگام‬AH=02‫برای‬‫استقرار‬‫مکان‬،‫نما‬‫صفحه‬
‫صفر‬‫بوسیله‬BH=00‫انتخاب‬‫می‬‫گردد‬.
‫مثال‬
14
‫برنامه‬‫ای‬‫برای‬‫استقرار‬‫مکان‬‫نما‬‫در‬‫سطر‬150FH))‫و‬‫ستون‬25(19H)
‫بنویسید‬.
‫تمرین‬
15
‫برنامه‬‫ای‬‫بنویسید‬‫که‬:
.I‫صفحه‬‫نمایش‬‫را‬‫پاک‬‫کند‬.
.II‫مکان‬‫نما‬‫را‬‫در‬‫مرکز‬‫صفحه‬‫نمایش‬‫مستقر‬‫سازد‬.
‫تمرین‬ ‫حل‬
16
‫مرکز‬‫صفحه‬‫نمایش‬‫محل‬‫تالقی‬‫سطر‬‫و‬‫ستون‬‫وسط‬‫می‬‫باشد‬.‫سطر‬12‫در‬‫وسط‬
‫سطرهای‬0‫تا‬24‫بوده‬‫و‬‫ستون‬39(‫یا‬40)‫در‬‫وسط‬‫ستون‬‫های‬0‫تا‬79‫قرار‬‫دارد‬.
‫بنابراین‬‫با‬‫قراردادن‬DH=12‫و‬DL=39،‫مکان‬‫نما‬‫در‬‫وسط‬‫صفحه‬‫نمایش‬‫قرار‬
‫خواهد‬‫گرفت‬.
‫تمرین‬ ‫کد‬ ‫سورس‬
17
‫پاک‬‫کردن‬‫صفحه‬
‫استقرار‬‫مکان‬‫نما‬‫در‬‫مرکز‬‫تصویر‬
‫نما‬ ‫مکان‬ ‫فعلی‬ ‫مکان‬ ‫تعیین‬
18
‫در‬‫وقفه‬INT 10H،‫تابع‬03‫برای‬‫تعیین‬‫مکان‬‫فعلی‬‫مکان‬‫نما‬‫بکار‬‫می‬‫رود‬.
‫پس‬‫از‬‫اجرای‬‫برنامه‬،‫فوق‬‫ثبات‬‫های‬DH‫و‬DL‫حاوی‬‫شماره‬‫سطر‬‫و‬‫ستون‬‫محل‬
‫جاری‬‫مکان‬،‫نما‬‫و‬CX‫اطالعات‬‫مربوط‬‫به‬‫شکل‬‫آن‬‫را‬‫در‬‫اختیار‬‫می‬‫گذارد‬.
‫مانیتورها‬ ‫در‬ ‫خصیصه‬ ‫بایت‬
19
‫در‬‫ارتباط‬‫با‬‫هر‬‫کاراکتر‬‫روی‬‫صفحه‬،‫نمایش‬‫یک‬‫خصیصه‬‫وجود‬‫دارد‬.،‫خصیصه‬
‫اطالعاتی‬‫را‬‫برای‬‫مدار‬‫تصویر‬‫فراهم‬‫می‬‫کند‬.‫از‬‫جمله‬‫این‬‫اطالعات‬‫می‬‫توان‬‫از‬‫رنگ‬
‫و‬‫شدت‬‫کاراکتر‬(‫پیش‬‫زمینه‬)‫و‬‫پس‬‫زمینه‬‫نام‬‫برد‬.‫منظور‬‫از‬‫پیش‬،‫زمینه‬
‫کاراکترهای‬‫واقعی‬‫نمایش‬‫داده‬‫شده‬‫بر‬‫روی‬‫صفحه‬‫است‬.‫شدت‬‫نور‬،‫معمولی‬‫متمایز‬
‫و‬‫چشمک‬‫زنی‬‫مختص‬‫پیش‬‫زمینه‬‫است‬.
‫مانیتورها‬ ‫در‬ ‫خصیصه‬ ‫بایت‬
20
‫پس‬‫زمینه‬‫می‬‫تواند‬‫هشت‬‫رنگ‬‫مختلف‬‫را‬‫از‬‫ترکیب‬‫رنگ‬‫های‬‫اصلی‬‫سبز‬،‫آبی‬‫و‬
‫قرمز‬‫دارا‬‫باشد‬.‫پیش‬‫زمینه‬‫می‬‫تواند‬‫هر‬‫یک‬‫از‬‫شانزده‬‫رنگ‬‫ممکن‬‫حاصل‬‫از‬‫سبز‬،
‫آبی‬،‫قرمز‬‫و‬‫شدت‬‫آنها‬‫باشد‬.
‫مثال‬
21
‫نظر‬ ‫مورد‬ ‫های‬ ‫خصیصه‬ ‫با‬ ‫کاراکتر‬ ‫نمایش‬
22
‫با‬‫تابع‬AH=09‫از‬‫وقفه‬INT 10H‫می‬‫توان‬‫یک‬‫کاراکتر‬‫را‬‫به‬‫تعداد‬‫مورد‬‫نظر‬‫و‬
‫خصیصه‬‫خاص‬‫نمایش‬‫داد‬.‫برای‬‫این‬،‫منظور‬‫کاراکتر‬‫مورد‬‫نظر‬‫را‬‫در‬‫ثبات‬AL‫قرار‬
‫می‬‫دهیم‬(‫کد‬‫اسکی‬‫کاراکتر‬‫را‬‫نیز‬‫می‬‫توان‬‫قرار‬‫داد‬)،‫تعداد‬‫مورد‬‫نظر‬‫برای‬‫نمایش‬‫را‬
‫در‬‫ثبات‬CX‫و‬‫خصیصه‬‫مورد‬‫نظر‬‫را‬‫در‬‫ثبات‬BL‫قرار‬‫می‬‫دهیم‬.
‫مثال‬
23
‫مثال‬
24
‫مثال‬
25
‫گرافیگ‬ ‫مد‬ ‫در‬ ‫عمودی‬ ‫و‬ ‫افقی‬ ‫خطوط‬ ‫ترسیم‬
26
‫برای‬‫ترسیم‬‫خط‬،‫افقی‬‫مقادیری‬‫را‬‫برای‬‫سطر‬‫و‬‫ستون‬‫اختیار‬‫کنید‬‫بطوری‬‫که‬
‫ابتدای‬‫خط‬‫را‬‫مشخص‬‫نماید‬‫و‬‫سپس‬‫ستون‬‫را‬‫اضافه‬‫کنید‬‫تا‬‫به‬‫انتهای‬‫خط‬
‫برسید‬.
‫مثال‬
27
‫مثال‬:‫افقی‬ ‫خط‬ ‫ترسیم‬
28
‫مثال‬:‫عمودی‬ ‫خط‬ ‫ترسیم‬
29
‫تمرین‬
30
‫ترسیم‬‫مربع؟‬
‫انعکاس‬ ‫با‬ ‫همراه‬ ‫کاراکتر‬ ‫یک‬ ‫ورود‬
31
‫تابع‬01‫از‬‫وقفه‬INT 21H‫کارش‬‫این‬‫است‬‫که‬‫تا‬‫ورود‬‫یک‬‫کاراکتر‬‫از‬‫صفحه‬‫کلید‬
‫به‬‫انتظار‬‫می‬،‫ماند‬‫سپس‬‫آن‬‫را‬‫به‬‫مانیتور‬‫منعکس‬‫می‬‫سازد‬.‫پس‬‫از‬‫وقفه‬‫کارکتر‬
‫ورودی‬‫در‬AL‫خواهد‬‫بود‬(‫کد‬‫اسکی‬‫کاراکتر‬‫مورد‬‫نظر‬‫در‬AL‫قرار‬‫می‬‫گیرد‬).
‫شماره‬ ‫تابع‬01‫و‬07‫وقفه‬21H
32
‫مانیتور‬ ‫به‬ ‫کاراکتر‬ ‫یک‬ ‫خروج‬
33
‫تابع‬‫شماره‬02‫از‬‫وقفه‬INT 21H‫برای‬‫ارسال‬‫یک‬‫کاراکتر‬‫به‬‫مانیتور‬‫به‬‫کار‬‫می‬
‫رود‬.‫برای‬‫این‬‫منظور‬02‫را‬‫در‬AH‫قرار‬‫می‬،‫دهیم‬DL‫با‬‫کاراکتر‬‫خروجی‬‫بار‬‫می‬
‫شود‬.
‫مانیتور‬ ‫روی‬ ‫داده‬ ‫از‬ ‫ای‬ ‫رشته‬ ‫خروج‬
34
‫از‬‫تابع‬09‫از‬‫وقفه‬INT 21H‫می‬‫توان‬‫برای‬‫ارسال‬‫یک‬‫رشته‬‫داده‬ASCII‫به‬
‫مانیتور‬‫استفاده‬‫کرد‬.AH=09‫و‬DX‫نیز‬‫برابر‬‫با‬‫تفاوت‬‫مکان‬‫آدرس‬‫داده‬ASCII
‫مورد‬‫نمایش‬‫است‬.‫آدرس‬‫در‬‫ثبات‬DX‫یک‬‫آدرس‬‫تفاوت‬‫مکان‬‫بوده‬‫و‬DS‫هم‬‫قطعه‬
‫داده‬‫تصور‬‫می‬‫شود‬.‫تابع‬09‫وقفه‬INT 21H،‫داده‬ASCII‫اشاره‬‫شده‬‫با‬DX
‫نمایش‬‫داده‬‫می‬‫شود‬‫تا‬‫اینکه‬‫به‬‫عالمت‬$‫برخورد‬‫نماید‬.
‫مثال‬
35

Machine & Assembly Language - Chapter 5