انجمنهای فارسی اوبونتو
کمک و پشتیبانی => برنامهسازی => نویسنده: mb در 14 آبان 1400، 06:08 بظ
-
سلام. اینتراپت های زبان اسمبلی چیکار میکنن که مثلا یک کاراکتر A با int 21 روی صفحه نمایش داده میشه؟
آیا میتونم یک برنامه بنویسم که بدن استفاده از اینتراپت ها حرف A رو پرینت کنه؟
-
وقفه، با روشن کردن یکی از پایههای پردازنده، سیستمعامل رو بالا میآره تا کار مربوط بهش رو انجام بده.
-
بله میشه وقفه هم خودش یک برنامه هست باید توی آدرس نمایشگر بنویسید
-
فکر کنم ولی اصلا مطمئن نیستم، یهطوری به شکل نادقیق، شبیه کتابخانه برای بقیه زبانهای برنامه نویسی هستند اما مطمئن نیستم.
-
من خودم تا اونجا میدونم که اینتراپت ها به غیر از 33 تای اول که سخت افزاری برای پردازده به صورت مداری پیاده سازی شده بقیه یک روتین سرویس هستن
اینتراپت ها یک آدرس هستن که به جدول بردار وقفه اشاره داره https://en.wikipedia.org/wiki/Interrupt_vector_table (https://en.wikipedia.org/wiki/Interrupt_vector_table) و آدرس برنامه ای به اسم روتین سرویس یا اینتراپت هندلر interrupt service routine or ISR https://en.wikipedia.org/wiki/Interrupt_handler (https://en.wikipedia.org/wiki/Interrupt_handler) هست که مدیریت اون وقفه رو به دست میگیره حالا اون چیه و چیکار میکنه رو نمیدونم و سوال برام شده؟ کسی دقیقا میدونه چیکار میکنه که کاراکتر چاپ میشه یا باید خودم اون آدرس حافظه رو در بیارم و ذخیره کنم و برسی تا متوجه بشم؟
-
فکر کنم توی آدرس 0xb8000 باید بنویسی در واقع هر کاراکتر که روی نمایشگر ظاهر میشه در این حالت دو بایت رو اشغال میکنه که یک بایت برای کد اسکی اون و دیگری برای صفت کاراکتر هست صفت کاراکتر از رنگ کاراکتر و پس زمینه تشکیل میشه با کمی جستجو در اینترنت می تونی اطلاعات بیشتری پیدا کنی
-
فکر کنم توی آدرس 0xb8000 باید بنویسی در واقع هر کاراکتر که روی نمایشگر ظاهر میشه در این حالت دو بایت رو اشغال میکنه که یک بایت برای کد اسکی اون و دیگری برای صفت کاراکتر هست صفت کاراکتر از رنگ کاراکتر و پس زمینه تشکیل میشه با کمی جستجو در اینترنت می تونی اطلاعات بیشتری پیدا کنی
ممنون از لطف شما