• ساختار بلوک. نمونه طرح بلوک

    اغلب برنامه های بزرگ از زیر روال ها برای پیاده سازی الگوریتم های کمکی استفاده می کنند. در JA، برنامه های فرعی در قالب رویه ها رسمیت می یابد.

    شرح رویه ها

    (نام فرآیند) PROC (پارامتر) (بدنه فرآیند) (نام فرآیند) ENDP که در آن (نام فرآیند) - باید دو بار تکرار شود و برای اشاره به رویه استفاده می شود. (پارامتر) می تواند یکی از دو مقدار را بگیرد - (پیش فرض) یا . یک رویه نزدیک (داخلی) فقط از قسمت فرمان که در آن توضیح داده شده است قابل دسترسی است. یک رویه دور (خارجی) را می توان از هر بخش فرمان برنامه، از جمله قسمتی که در آن توضیح داده شده است، مشاهده کرد. نام‌ها و برچسب‌هایی که در یک رویه توضیح داده می‌شوند، در آن بومی‌سازی نشده‌اند، بنابراین باید در برنامه منحصربه‌فرد باشند . اگرچه می توان یک روش را در روش دیگر در AY توصیف کرد، اما این کار هیچ فایده ای ندارد و معمولاً استفاده نمی شود.

    رویه های فراخوانی

    در YA، تمام انتقالات بین برنامه اصلی و رویه باید توسط خودتان سازماندهی شود. اگر رویه ای بتواند به DOS بازگردد، می توان آن را با دستور پرش به نام رویه JMP (نام فرآیند) فراخوانی کرد. نام، سپس بدنه رویه باید حاوی دستور بازگشتی باشد، امکان دیگری وجود دارد: آدرس بازگشتی را با استفاده از پشته به خاطر بسپارید و بازگشت را با استفاده از دستورات پرش سازماندهی کنید. هنگام فراخوانی یک رویه، باید پارامترهای ارسال شده به رویه و مکان آن نسبت به نقطه فراخوانی را در نظر بگیرید. نوع انتقال در دستور CALL به طور خودکار تعیین می شود، مثلا(برای رویه p). P CALL P اگر این یک تماس بسته (NEAR) باشد، اقدامات زیر انجام می شود: Stack:= AB، IP:= offset P که در آن AB آدرس برگشتی است، یعنی. آدرس مؤثر دستور پس از تماس؛ فراخوانی دور (FAR) اقدامات زیر را ارائه می دهد: Stack:= CS، Stack:= AB، CS:= seg P، IP:= offset P اگر شرح رویه در قسمتی زیر فرمان فراخوانی باشد، پس ویژگی شاخه باید باشد. با عبارت PTR مشخص شده است. مثلا, CALL FAR PTR P; تماس راه دور P

    محل رویه ها در یک بخش

      رویه های داخلیدر همان بخش برنامه تماس هستند.
    در این مورد، 3 گزینه قرار دادن امکان پذیر است: الف) همه رویه ها قبل از برنامه اصلی (در حال فراخوانی) قرار می گیرند که می تواند به عنوان یک رویه نیز قالب بندی شود. مثلا:«کد» بخش متن فرض کنید CS: متن، DS: داده، SS: پشته A1 PROC … RET A1 ENDP Main PROC MOV AX, data MOV DS, AX… CALL A1 … MOV AX, C400h INT 21h Main ENDP Text ENDS Data SEGMENT … داده ها به پایان می رسد Stack SEGMENT 'stack' … Stack ENDS END اصلی ب) همه رویه ها زیر نقطه تماس هستند. ج) رویه ها - در داخل رویه اصلی، حتی ممکن است که رویه در داخل رویه دیگری باشد (البته این کار هیچ سودی ندارد) مثلا،… PROC اصلی … CALL A1 … MOV AX, C400h INT 21h A1 PROC … RET A1 ENDP متن ENDP اصلی ENDS 2) رویه های خارجیدر بخش های دیگر یا در فایل های دیگر قرار دارد. مثلا p، متن برنامه اصلی در فایل P.asm Text SEGMENT public 'code' ; ترکیب ماژول ها به صورت متوالی؛ به بخش عمومی ASSUME CS: text, DS: data, SS: stack EXTRN stop: proc; اعلان نام خارجی Main PROC ... CALL Stop ... Main ENDP Text ENDS Data SEGMENT ... Data ENDS Stack SEGMENT 'stack' ... Stack ENDS END Main متن منبع رویه در فایل P1.asm است. Text SEGMENT public 'code' ASSUME CS: text PUBLIC stop; ایجاد یک نام از خارج از Stop proc ...

    توقف متن ENDP ENDS END ; انتهای فایل بدون نقطه ورود ادغام این فایل ها در مرحله پیوند اتفاق می افتد، یعنی. پخش جداگانه لازم است به عنوان مثال، برای MASM MASM/ZI PR MASM/ZI P1 که در آن ZI گزینه ای است که به شما امکان می دهد اطلاعات کاملی درباره شماره خطوط و نمادهای ماژول منبع (IM) در فایل شی قرار دهید. پس از تشکیل PR.obj و P1.obj، آنها باید در یک فایل بوت LINK/C0 ​​PR P1، COMPOZ کامپایل شوند که در آن C0 گزینه ای است که اطلاعات نمادین را به فایل بوت منتقل می کند و به دیباگر CV اجازه نمایش می دهد. متن کامل IM، از جمله برچسب ها و نظرات. ماژول COMPOZ.exe برای اجرا آماده است. می توان شامل رویه ای از کتابخانه باشد. برای انجام این کار، دستورالعمل INCLUDE (نام فایل کتابخانه) قبل از بخش های IM قرار می گیرد مثلا p، برای اتصال فایل IO.asm باید بنویسید INCLUDE IO.asm S SEGMENT 'stack' … SENDS D SEGMENT 'data' … D ENDS C SEGMENT 'code' ASSUME CS:C, SS:S, DS:D Begin : … …C به پایان می رسد پایان شروع

    انتقال پارامترها بین رویه ها (سازماندهی شده به درخواست برنامه نویس)

      انتقال پارامترها از طریق رجیستر MP
    مقادیر پارامترهای واقعی را می توان به درخواست برنامه نویس از طریق رجیسترهای MP منتقل کرد. مثلا, روش محاسبه AX:= max (AX, BX) max proc far CMP AX, BX JGE Max1 MOV AX, BX Max1: RET max endp … ; در رویه اصلی ... MOV AX, A ; آماده سازی پارامترهای MOV BX, B ; برای فراخوانی روش CALL max MOV C, AX ; ذخیره نتیجه...
      انتقال پارامترها توسط مرجعبه معنای ارسال آدرس (نام) محل حافظه مربوط به پارامتر واقعی (ارسال یک مقدار نامگذاری شده از اسمبلر به پاسکال). برای انجام این کار، می توانید از نام مکان حافظه استفاده کنید یا آدرس را در یک ثبات بارگذاری کنید (BX، BP، SI یا DI، زیرا رویه می تواند از این ثبات ها برای آدرس دهی استفاده کند) قبل از فراخوانی رویه.
    مثلا، تیم LEA BX، B CALL……
      انتقال پارامترها از طریق پشته
    عبور پارامترها از طریق ثبات ها به تعداد کمی از آنها محدود می شود. اگر پارامترهای زیادی وجود داشته باشد (بیش از 5)، آنها به صورت زیر از پشته عبور می کنند: - برنامه اصلی پارامترهای واقعی (مقادیر یا آدرس ها) را در پشته می نویسد. - رویه از پارامترهای نوشته شده در پشته استفاده می کند. مثلا:; فراخوانی p(a1,…, ak) PUSH a1 … PUSH ak CALL p … یک نشانگر پشته اضافی BP را می توان در یک رویه استفاده کرد، اما در ابتدای رویه مقدار BP که در برنامه فراخوانی استفاده می شد باید ذخیره شود. یعنی ; شروع روش P P proc PUSH BP ; ذخیره BP MOV BP, SP ; تنظیم BP در بالای پشته... سپس می توان از آدرس دهی اولیه استفاده کرد. به عنوان مثال، برای یک تماس بسته، آدرس برگشتی که به طور خودکار روی پشته فشار داده می شود، آدرس آخرین پارامتر ak است. قبل از بازگشت از رویه، باید BP را با دستور POP BP بازیابی کنید، سپس پشته پارامترهای ارسال شده را پاک کنید تا در هنگام فراخوانی چندین بار رویه ها، بارگذاری بیش از حد نشود. مقدار SP را به مقدار 2*k بزرگتر از مقدار پس از فراخوانی رویه تنظیم کنید. 2 امکان برای بازگشت صحیح از روش وجود دارد. الف) SP را در برنامه تماس تنظیم کنید
    ; پایان رویه; در برنامه تماس
    POP BPCALL p
    RETADD SP, 2*k ; تصحیح SP
    PENDP
    ب) از یک دستور بازگشت با بازیابی پشته استفاده کنید، که فرمی برای تماس نزدیک RET (cnt) دارد که در آن (cnt) یک شمارنده (عبارت ثابت)، اندازه کلمه است. دستور اعمال زیر را انجام می دهد: IP:= Stack SP:= SP + (cnt) سپس پایان رویه به نظر می رسد: POP BP RET 2*k p ENDP برای یک فراخوانی طولانی، دستور بازگشت مانند RET (cnt) به نظر می رسد. و اقدامات زیر را انجام می دهد: IP:= Stack CS:= Stack SP:= SP + (cnt) با این بازگشت از رویه، هیچ اقدام اضافی در برنامه فراخوانی لازم نیست.
      مشکل در ذخیره رجیسترها هنگام فراخوانی یک رویه
    برای جلوگیری از خراب کردن رویه مقادیر ثبات‌هایی که در برنامه فراخوانی استفاده می‌شوند، لازم است قبل از استفاده از هر ثبات، مقدار «قدیمی» آن را در پشته ذخیره کنید و در پایان روشی برای بازیابی تمام مقادیر ذخیره شده مثلا، اگر رویه از ثبات CH استفاده می کند، باید در پشته ذخیره شود، اما پشته فقط کلمه را به خاطر می آورد، بنابراین رویه حاوی یک قطعه است: PUSH CX ; ذخیره "قدیمی" CX MOV CX, 0 ; استفاده از CX در روش...; قبل از خروج از روش POP CX؛ بازیابی CX "قدیمی" بنابراین، ما یک طرح تعمیم یافته از یک رویه بسته (NEAR) با پارامترهایی که از طریق ثبات ها و از پشته عبور می کنند، دریافت می کنیم.

    (نام proc) proc

    PUSH BP برای نگهداری

    Mov BP، پشته SP

    PUSH رجیسترهای ذخیره،

    در روش استفاده می شود

    بدن پروک.

    POP... ثبت بازیابی

    POP BP بازیابی BP

    قبلاً نوع جدولی طرح در اینترنت گسترده بود که این صفحه به آن اختصاص دارد. با این حال، با گذشت زمان، این رویکرد برای ایجاد ساختار وب سایت منسوخ شد و با طرح بندی بلوک جایگزین شد.

    تفاوت بین طرح بندی بلوک و طرح بندی جدولی

    اگر چیدمان جدول حاکی از آن است که محتویات صفحه در داخل تگ است

    ، سپس مفهوم طرح بندی بلوک بر اساس استفاده فعال از برچسب های جهانی است
    ، که حاوی محتوا، از جمله برچسب های دیگر است.

    طرح بندی بلوک فاقد معایب طرح بندی جدولی است - توسط موتورهای جستجو بهتر ایندکس می شود، کد آن چندان گسترده نیست و بلوک ها

    ، که آنها دوست دارند آن را "لایه ها" بنامند، در ابتدا برای جهانی بودن، یعنی "برای همه چیز" در نظر گرفته شده بود، در حالی که
    جدولی است که باید برای نمایش داده های جدولی استفاده شود و نه بیشتر.

    تنها نقطه ضعف قابل توجه طرح بندی بلوک این است که سایت های ساخته شده بر روی آن ممکن است به طور متفاوت در مرورگرها نمایش داده شوند. برای جلوگیری از این امر، باید طرح بندی را "مقابل مرورگر" ایجاد کنید، یعنی توسط هر مرورگری به طور مساوی نمایش داده شود.

    ماهیت چیدمان بلوک

    طرح‌بندی وب‌سایت در یک ویرایشگر گرافیکی ایجاد می‌شود: مشخص می‌شود که کدام ناحیه از صفحه (سرصفحه، پایین، نوار کناری، محتوای اصلی) قرار می‌گیرد و چقدر فضای اشغال می‌کند، تصاویر و پس‌زمینه‌ها آماده می‌شوند.

    هر قسمت از صفحه در بلوک خود قرار می گیرد

    : بالای سایت - در اول، منو - در دوم، محتوا - در سوم و غیره. هر بلوک با استفاده از HTML با محتوا پر می شود و همچنین با استفاده از نشانه گذاری CSS موقعیت یابی و طراحی شده است.

    سند نهایی HTML مجموعه ای از بلوک ها است

    با محتوای داخل طرح اغلب در یک فایل CSS جداگانه قرار دارد که با برچسب به صفحه متصل است ، یا حداقل در یک ظرف