Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«Π―Π·Ρ‹ΠΊ программирования Π‘ΠΈ для ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°Β». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 42

Автор C. Π‘ΠΎΡ‡ΠΊΠΎΠ²

Набор ΠΏΡ€Π°Π³ΠΌ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ компилятора языка Π‘ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π΅Π½. Для получСния ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ ΠΏΡ€Π°Π³ΠΌΠ°Ρ… смотритС ΡΠΈΡΡ‚Π΅ΠΌΠ½ΡƒΡŽ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ ΠΏΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΌΡƒ Π²Π°ΠΌΠΈ компилятору.

ΠŸΡΠ΅Π²Π΄ΠΎΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅

ΠŸΡΠ΅Π²Π΄ΠΎΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Π΅ константы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² любом исходном Ρ„Π°ΠΉΠ»Π΅. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· Π½ΠΈΡ… начинаСтся ΠΈ оканчиваСтся двумя символами подчСркивания (__).

__LINE__

НомСр Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΠΎΠΉ строки исходного файла—дСсятичная константа. ΠŸΠ΅Ρ€Π²Π°Ρ строка исходного Ρ„Π°ΠΉΠ»Π° ΠΈΠΌΠ΅Π΅Ρ‚ Π½ΠΎΠΌΠ΅Ρ€ 1.

__FILE__

Имя ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠ³ΠΎ исходного Ρ„Π°ΠΉΠ»Π° β€” символьная строка. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΠΎΠΉ псСвдопСрСмСнной измСняСтся ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° компилятор ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρƒ #include ΠΈΠ»ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρƒ #line, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠΈ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°.

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π΄Π²Π΅ псСвдопСрСмСнныС ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ БП Π’Π‘.

__DATE__

Π”Π°Ρ‚Π° Π½Π°Ρ‡Π°Π»Π° компиляции Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ исходного Ρ„Π°ΠΉΠ»Π° β€” символьная строка. КаТдоС Π²Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ __DATE__ Π² Π·Π°Π΄Π°Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» Π΄Π°Π΅Ρ‚ ΠΎΠ΄Π½ΠΎ ΠΈ Ρ‚ΠΎ ΠΆΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, нСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π΄ΠΎΠ»Π³ΠΎ ΡƒΠΆΠ΅ продолТаСтся ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°. Π”Π°Ρ‚Π° ΠΈΠΌΠ΅Π΅Ρ‚ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ mmm dd Π£Π£Π£Π£, Π³Π΄Π΅ mmm β€” мСсяц (Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec), dd β€” число Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ мСсяца (1…31; Π² 1-ΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ dd ставится ΠΏΡ€ΠΎΠ±Π΅Π», Ссли число мСньшС 10), ΡƒΡƒΡƒΡƒ β€” Π³ΠΎΠ΄ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, 1990).

__TIME__

ВрСмя Π½Π°Ρ‡Π°Π»Π° компиляции Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ исходного Ρ„Π°ΠΉΠ»Π° β€” символьная строка. КаТдоС Π²Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ __TIME__ Π² Π·Π°Π΄Π°Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» Π΄Π°Π΅Ρ‚ ΠΎΠ΄Π½ΠΎ ΠΈ Ρ‚ΠΎ ΠΆΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, нСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π΄ΠΎΠ»Π³ΠΎ ΡƒΠΆΠ΅ продолТаСтся ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°. ВрСмя ΠΈΠΌΠ΅Π΅Ρ‚ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ hh:mm:ss, Π³Π΄Π΅ hh β€” час (00…23), mm β€” ΠΌΠΈΠ½ΡƒΡ‚Ρ‹ (00…59), ss β€” сСкунды (00…59).

ΠœΠžΠ”Π•Π›Π˜ ПАМЯВИ

РСализация ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ памяти Π² БП MSC ΠΈ Π² БП Π’Π‘ ΠΈΠΌΠ΅Π΅Ρ‚ ряд ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΉ. Π’ Ρ€Π°Π·Π΄Π΅Π»Π°Ρ… 8.1 ΠΈ 8.2 описаны ΠΌΠΎΠ΄Π΅Π»ΠΈ памяти БП MSC, Π° Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ 8.3 ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ отличия ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ памяти БП Π’Π‘.

Π’ΠΈΠ΄Ρ‹ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ

ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ памяти позволяСт ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ распрСдСлСниС памяти Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΠΈ Π΄Π΅Π»Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π±ΠΎΠ»Π΅Π΅ эффСктивным ΠΈΠ»ΠΈ Π°Π΄Π΅ΠΊΠ²Π°Ρ‚Π½Ρ‹ΠΌ Ρ€Π΅ΡˆΠ°Π΅ΠΌΠΎΠΉ Π·Π°Π΄Π°Ρ‡Π΅. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π² процСссС компиляции ΠΈ рСдактирования связСй гСнСрируСтся ΠΊΠΎΠ΄ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² ΠΌΠ°Π»ΠΎΠΉ (small) ΠΌΠΎΠ΄Π΅Π»ΠΈ. Для Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ этой ΠΌΠΎΠ΄Π΅Π»ΠΈ достаточно. Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚, ΠΎΠ΄Π½Π°ΠΊΠΎ, Π΄Π²Π° условия, ΠΊΠΎΠ³Π΄Π° малая модСль Π½Π΅ годится; Ссли ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° удовлСтворяСт хотя Π±Ρ‹ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΈΠ· Π½ΠΈΡ…, слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΡƒΡŽ модСль памяти:

β€”Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π΅Ρ‚ 64 ΠšΠ±Π°ΠΉΡ‚Π°;

β€”Ρ€Π°Π·ΠΌΠ΅Ρ€ статичСских Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π΅Ρ‚ 64 ΠšΠ±Π°ΠΉΡ‚Π°.

Π˜ΠΌΠ΅Π΅Ρ‚ΡΡ Π΄Π²Π° Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° Π²Ρ‹Π±ΠΎΡ€Π° ΠΌΠΎΠ΄Π΅Π»ΠΈ памяти для ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹: Π½Π°Π·Π½Π°Ρ‡ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈ компиляции Π½ΠΎΠ²ΡƒΡŽ модСль вмСсто Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΌΠ°Π»ΠΎΠΉ Π»ΠΈΠ±ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² объявлСнии ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ near, far, huge. МоТно Ρ‚Π°ΠΊΠΆΠ΅ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ эти способы.

АрхитСктура микропроцСссора Ρ‚ΠΈΠΏΠ° 8086/8088 прСдусматриваСт Ρ€Π°Π·Π±ΠΈΠ΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти Π½Π° физичСскиС сСгмСнты. Π Π°Π·ΠΌΠ΅Ρ€ ΠΎΠ΄Π½ΠΎΠ³ΠΎ сСгмСнта Π½Π΅ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π΅Ρ‚ 64 ΠšΠ±Π°ΠΉΡ‚Π°. МинимальноС количСство сСгмСнтов, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ выдСляСтся ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅, Ρ€Π°Π²Π½ΠΎ Π΄Π²ΡƒΠΌ: ΠΎΠ΄ΠΈΠ½ для ΠΊΠΎΠ΄Π°, Π΄Ρ€ΡƒΠ³ΠΎΠΉ для статичСских Π΄Π°Π½Π½Ρ‹Ρ…. Π­Ρ‚ΠΈ сСгмСнты Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ стандартными. Малая модСль памяти ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ эти Π΄Π²Π° сСгмСнта. Π”Ρ€ΡƒΠ³ΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π²Ρ‹Π΄Π΅Π»ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ сСгмСнта ΠΊΠΎΠ΄Π° ΠΈ/ΠΈΠ»ΠΈ Π΄Π°Π½Π½Ρ‹Ρ….

БтатичСскиС Π΄Π°Π½Π½Ρ‹Π΅ β€” это всС Π΄Π°Π½Π½Ρ‹Π΅, ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Π½Ρ‹Π΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ с классом памяти extern ΠΈΠ»ΠΈ static. Π€ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ Π±Π»ΠΎΠΊΠΎΠ² Π½Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ статичСскими Π΄Π°Π½Π½Ρ‹ΠΌΠΈ. Они хранятся Π½Π΅ Π² сСгмСнтС Π΄Π°Π½Π½Ρ‹Ρ…, Π° Π² сСгмСнтС стСка. Он ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ совмСщСн со стандартным сСгмСнтом Π΄Π°Π½Π½Ρ‹Ρ… физичСски.

Помимо статичСских Π΄Π°Π½Π½Ρ‹Ρ…, имССтся Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с динамичСской ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ стандартных Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅Ρ‡Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Ρ‚ΠΈΠΏΠ° malloc. ДинамичСская ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π΄Π΅Π»ΡΡ‚ΡŒΡΡ ΠΊΠ°ΠΊ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΌ сСгмСнтС (дальняя динамичСская ΠΏΠ°ΠΌΡΡ‚ΡŒ), Ρ‚Π°ΠΊ ΠΈ Π² стандартном сСгмСнтС Π΄Π°Π½Π½Ρ‹Ρ…, ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΠ½Ρ†ΠΎΠΌ статичСских Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ стСком (блиТняя динамичСская ΠΏΠ°ΠΌΡΡ‚ΡŒ).

АдрСс ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти состоит ΠΈΠ· Π΄Π²ΡƒΡ… частСй:

1) 16-Π±ΠΈΡ‚ΠΎΠ²ΠΎΠ³ΠΎ числа, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π΅Π³ΠΎ Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ адрСс сСгмСнта;

2) 16-Π±ΠΈΡ‚ΠΎΠ²ΠΎΠ³ΠΎ числа, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π΅Π³ΠΎ смСщСниС Π²Π½ΡƒΡ‚Ρ€ΠΈ этого сСгмСнта.

Для доступа ΠΊ ΠΊΠΎΠ΄Ρƒ ΠΈΠ»ΠΈ Π΄Π°Π½Π½Ρ‹ΠΌ, находящимся Π² стандартном сСгмСнтС, достаточно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ‚ΠΎΡ€ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ адрСса, Ρ‚.Π΅. смСщСниС. Π’ этом случаС ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ, ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Π½Ρ‹ΠΉ с ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ near (Π±Π»ΠΈΠΆΠ½ΠΈΠΉ). ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ для доступа ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎ 16-Π±ΠΈΡ‚ΠΎΠ²ΠΎΠ΅ число, ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ Ρ‚ΠΈΠΏΠ° near ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½ΠΎ ΠΏΠΎ Π·Π°Π½ΠΈΠΌΠ°Π΅ΠΌΠΎΠΉ памяти ΠΈ быстро ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.

Если ΠΊΠΎΠ΄ ΠΈΠ»ΠΈ Π΄Π°Π½Π½Ρ‹Π΅ Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‚ΡΡ Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Π°ΠΌΠΈ стандартных сСгмСнтов, для доступа ΠΊ Π½ΠΈΠΌ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΎΠ±Π΅ части адрСса β€” ΠΈ адрСс сСгмСнта, ΠΈ смСщСниС. Π£ΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ для Ρ‚Π°ΠΊΠΎΠ³ΠΎ доступа ΠΎΠ±ΡŠΡΠ²Π»ΡΡŽΡ‚ΡΡ с ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ far (дальний). Доступ ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ ΠΏΠΎ указатСлям Ρ‚ΠΈΠΏΠ° far Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ большС памяти ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, ΠΎΠ΄Π½Π°ΠΊΠΎ позволяСт Π°Π΄Ρ€Π΅ΡΠΎΠ²Π°Ρ‚ΡŒ всю ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΡƒΡŽ ΠΏΠ°ΠΌΡΡ‚ΡŒ, Π° Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ 64 ΠšΠ±Π°ΠΉΡ‚Π°.

Π˜ΠΌΠ΅Π΅Ρ‚ΡΡ Ρ‚Ρ€Π΅Ρ‚ΠΈΠΉ Π²ΠΈΠ΄ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ β€” huge (ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ). АдрСс Ρ‚ΠΈΠΏΠ° huge ΠΏΠΎΠ΄ΠΎΠ±Π΅Π½ адрСсу Ρ‚ΠΈΠΏΠ° far, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ±Π° Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ ΠΈ адрСс сСгмСнта, ΠΈ смСщСниС. Однако адрСсная Π°Ρ€ΠΈΡ„ΠΌΠ΅Ρ‚ΠΈΠΊΠ° для far ΠΈ huge адрСсов различаСтся. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, адрСсуСмыС far указатСлями, Π½Π΅ выходят Π·Π° Π³Ρ€Π°Π½ΠΈΡ†Ρƒ адрСсуСмого сСгмСнта, дСйствия адрСсной Π°Ρ€ΠΈΡ„ΠΌΠ΅Ρ‚ΠΈΠΊΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π°Π΄ Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½ΠΎΠΉ адрСса β€” Π½Π°Π΄ смСщСниСм. Π­Ρ‚ΠΎ ускоряСт доступ, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° 64 ΠšΠ±Π°ΠΉΡ‚Π°ΠΌΠΈ. Для ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ Ρ‚ΠΈΠΏΠ° huge арифмСтичСскиС дСйствия Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π½Π°Π΄ всСми 32 Π±ΠΈΡ‚Π°ΠΌΠΈ адрСса.

Π’ΠΈΠΏ адрСса huge ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Π΄Π°Π½Π½Ρ‹Ρ… (массивов); Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ сСгмСнт ΠΊΠΎΠ΄Π°, Ρ‚.Π΅. Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ ΠΈΠ· исходных Ρ„Π°ΠΉΠ»ΠΎΠ², ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ большС 64 ΠšΠ±Π°ΠΉΡ‚ΠΎΠ² ΠΊΠΎΠ΄Π°. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово huge ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊ элСмСнтам Π΄Π°Π½Π½Ρ‹Ρ… β€” массивам ΠΈ указатСлям Π½Π° Π½ΠΈΡ….

Малая модСль

Π’ ΠΌΠ°Π»ΠΎΠΉ (small) ΠΌΠΎΠ΄Π΅Π»ΠΈ памяти ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ Π΄Π²Π° стандартных сСгмСнта: сСгмСнт ΠΊΠΎΠ΄Π° ΠΈ сСгмСнт Π΄Π°Π½Π½Ρ‹Ρ…, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ Ρ‚Π°ΠΊΠΆΠ΅ стСк. Как ΠΊΠΎΠ΄, Ρ‚Π°ΠΊ ΠΈ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Ρ‚ΡŒ 64 ΠšΠ±Π°ΠΉΡ‚ΠΎΠ²; ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, суммарный Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Ρ‚ΡŒ 128 ΠšΠ±Π°ΠΉΡ‚ΠΎΠ². Малая модСль ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΈ ΠΏΠΎΡ‚ΠΎΠΌΡƒ назначаСтся компилятором ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ.

Π’ ΠΌΠ°Π»ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ для доступа ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ ΠΊΠΎΠ΄Π° ΠΈΠ»ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ Ρ‚ΠΈΠΏΠ° near. МоТно, ΠΎΠ΄Π½Π°ΠΊΠΎ, ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ это ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΠ΅, примСняя ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ far ΠΈΠ»ΠΈ huge для объявлСния элСмСнтов Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ far для Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ.

БрСдняя модСль

Π’ срСднСй (medium) ΠΌΠΎΠ΄Π΅Π»ΠΈ памяти для Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ стСка ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ выдСляСтся ΠΎΠ΄ΠΈΠ½ сСгмСнт, Π° для ΠΊΠΎΠ΄Π° β€” ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ сСгмСнтов, сколько потрСбуСтся. ΠšΠ°ΠΆΠ΄ΠΎΠΌΡƒ исходному ΠΌΠΎΠ΄ΡƒΠ»ΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ выдСляСтся собствСнный сСгмСнт ΠΊΠΎΠ΄Π°.

БрСдняя модСль примСняСтся ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ для ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ с большим количСством ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² (Π±ΠΎΠ»Π΅Π΅ 64 ΠšΠ±Π°ΠΉΡ‚ΠΎΠ² ΠΊΠΎΠ΄Π°), Π½ΠΎ ΡΡ€Π°Π²Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ нСбольшим Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ Π΄Π°Π½Π½Ρ‹Ρ… (ΠΌΠ΅Π½Π΅Π΅ 64 ΠšΠ±Π°ΠΉΡ‚ΠΎΠ²). Для доступа ΠΊ функциям ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ Ρ‚ΠΈΠΏΠ° far, для доступа ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ β€” ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ Ρ‚ΠΈΠΏΠ° near. МоТно, ΠΎΠ΄Π½Π°ΠΊΠΎ, ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ это ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΠ΅, примСняя ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ far ΠΈΠ»ΠΈ huge для объявлСния элСмСнтов Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ near для Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ.

БрСдняя модСль прСдставляСт Ρ€Π°Π·ΡƒΠΌΠ½Ρ‹ΠΉ компромисс ΠΌΠ΅ΠΆΠ΄Ρƒ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒΡŽ выполнСния ΠΈ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½ΠΎΡΡ‚ΡŒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Ρ‡Π°Ρ‰Π΅ обращаСтся ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ, Ρ‡Π΅ΠΌ ΠΊ функциям.

ΠšΠΎΠΌΠΏΠ°ΠΊΡ‚Π½Π°Ρ модСль

Π’ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½ΠΎΠΉ (compact) ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΌΡƒ ΠΊΠΎΠ΄Ρƒ выдСляСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ сСгмСнт, Π° Π΄Π°Π½Π½Ρ‹ΠΌ β€” ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ сСгмСнтов, сколько потрСбуСтся. ΠšΠΎΠΌΠΏΠ°ΠΊΡ‚Π½Π°Ρ модСль примСняСтся для ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΏΠΎ количСству ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ², Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΡ… с большим объСмом Π΄Π°Π½Π½Ρ‹Ρ….

Π’ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ доступ ΠΊ ΠΊΠΎΠ΄Ρƒ (функциям) производится ΠΏΠΎ указатСлям Ρ‚ΠΈΠΏΠ° near, Π° ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ β€” ΠΏΠΎ указатСлям Ρ‚ΠΈΠΏΠ° far. Π­Ρ‚ΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΠΎΠΉΡ‚ΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ near ΠΈ huge для объявлСния Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ far для Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ.

Π‘ΠΎΠ»ΡŒΡˆΠ°Ρ модСль

Π’ большой (large) ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΈ ΠΏΠΎΠ΄ ΠΊΠΎΠ΄, ΠΈ ΠΏΠΎΠ΄ Π΄Π°Π½Π½Ρ‹Π΅ выдСляСтся нСсколько сСгмСнтов. Π‘ΠΎΠ»ΡŒΡˆΠ°Ρ модСль ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ с большим объСмом Π΄Π°Π½Π½Ρ‹Ρ….

Π’ большой ΠΌΠΎΠ΄Π΅Π»ΠΈ доступ ΠΊ элСмСнтам ΠΊΠΎΠ΄Π° ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… производится ΠΏΠΎ указатСлям Ρ‚ΠΈΠΏΠ° far. Π­Ρ‚ΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΠΎΠΉΡ‚ΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ near ΠΈ huge для объявлСния Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ near для Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ.

Максимальная модСль

Максимальная (huge) модСль Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Π° большой ΠΌΠΎΠ΄Π΅Π»ΠΈ, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π² Π½Π΅ΠΉ снимаСтся ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π½Π° Ρ€Π°Π·ΠΌΠ΅Ρ€ массивов (ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ Ρ‚ΠΈΠΏΠ° far, примСняСмыС Π² большой ΠΌΠΎΠ΄Π΅Π»ΠΈ, ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ элСмСнта Π΄Π°Π½Π½Ρ‹Ρ… 64 ΠšΠ±Π°ΠΉΡ‚Π°ΠΌΠΈ). НСкоторыС ограничСния, ΠΎΠ΄Π½Π°ΠΊΠΎ, Π½Π°Π»Π°Π³Π°ΡŽΡ‚ΡΡ Π½Π° Ρ€Π°Π·ΠΌΠ΅Ρ€ элСмСнтов huge массивов, Ссли эти массивы ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°ΡŽΡ‚ ΠΏΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρƒ 64 ΠšΠ±Π°ΠΉΡ‚Π°. Π’ цСлях ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ эффСктивности адрСсации Π½Π΅ допускаСтся пСрСсСчСния элСмСнтами массива Π³Ρ€Π°Π½ΠΈΡ† сСгмСнта. Из этого Π²Ρ‹Ρ‚Π΅ΠΊΠ°Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅: