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

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° устройств Π½Π° основС Ρ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹Ρ… ΡΠΈΠ³Π½Π°Π»ΡŒΠ½Ρ‹Ρ… процСссоров Ρ„ΠΈΡ€ΠΌΡ‹ Analog Devices с использованиСм Visual DSP++Β». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 23

Автор ОлСг Π’Π°Π»ΡŒΠΏΠ°

Π‘Π΅Π³ΠΌΠ΅Π½Ρ‚Ρƒ присваиваСтся символьноС имя. ΠŸΡ€ΠΈΡΠ²ΠΎΠ΅Π½Π½ΠΎΠ΅ имя позволяСт Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π² памяти. На языкС ассСмблСр это достигаСтся ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ SEG. Π Π°Π·ΠΌΠ΅Ρ€ сСгмСнта указываСтся Π²Π½ΡƒΡ‚Ρ€ΠΈ скобок. Π­Ρ‚Π° Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Π° интСрпрСтируСтся ΠΊΠ°ΠΊ количСство 16-разрядных слов Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ 24-разрядных слов инструкций Π² сСгмСнтС.

Для Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ SEG Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π΄Π²Π° ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°:

PM, ΠΈΠ»ΠΈ DM, ΠΈΠ»ΠΈ BOOT=0-7 β€” Ρ‚ΠΈΠΏ сСгмСнта памяти;

RAM ΠΈΠ»ΠΈ ROM β€” Ρ‚ΠΈΠΏ памяти процСссора.

Π§Π΅Ρ‚Ρ‹Ρ€Π΅ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ:

ABS=адрСс β€” Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½Ρ‹ΠΉ стартовый адрСс;

DATA, ΠΈΠ»ΠΈ CODE, ΠΈΠ»ΠΈ DATA/CODE β€” Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ…, Ρ…Ρ€Π°Π½ΠΈΠΌΡ‹Ρ… Π² сСгмСнтС;

EMULATOR ΠΈΠ»ΠΈ TARGET β€” распрСдСлСниС памяти для эмулятора;

INTERNAL β€” располоТСниС Π² памяти процСссора ADSP-2101 с Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ.

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ PM, DM ΠΈ BOOT ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ Ρ‚ΠΈΠΏ сСгмСнта памяти, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚Π²Π΅Π΄Π΅Π½ ΠΏΠΎΠ΄ ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, ΠΏΠ°ΠΌΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ ΠΎΠ΄Π½Ρƒ ΠΈΠ· восьми страниц памяти Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ. ΠžΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ Ρ‚ΠΈΠΏ памяти процСссора, Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ адрСс сСгмСнта, Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… сСгмСнта (Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ/ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹) ΠΈ распрСдСлСниС памяти эмулятора.

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ сСгмСнт памяти Π΄ΠΎΠ»ΠΆΠ΅Π½ Π°Π΄Ρ€Π΅ΡΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ€Π°Π·Π΄Π΅Π»ΡŒΠ½ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, адрСс 0x10 Π² памяти ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ отличаСтся ΠΎΡ‚ адрСса 0x10 Π² памяти Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ·-Π·Π° Ρ€Π°Π·Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹ слов этих Π΄Π°Π½Π½Ρ‹Ρ…. Π‘Π΅Π³ΠΌΠ΅Π½Ρ‚ памяти ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ PM ΠΌΠΎΠΆΠ΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ (CODE), Π΄Π°Π½Π½Ρ‹Π΅ (DATA) ΠΈΠ»ΠΈ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ Π΄Π°Π½Π½Ρ‹Π΅. Если Π½Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π½ΠΈ ΠΎΠ΄Π½Ρƒ ΠΈΠ· ΠΎΠΏΡ†ΠΈΠΉ, ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ принимаСтся Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Для сСгмСнта PM, содСрТащСго ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΈ Π΄Π°Π½Π½Ρ‹Π΅, Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΡƒΠΊΠ°Π·Π°Π½Ρ‹ ΠΎΠ±Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ памяти Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Π½ΠΎΠΌΠ΅Ρ€ страницы, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ BOOT=0. НСобходимо Ρ€Π°Π·Π΄Π΅Π»ΡΡ‚ΡŒ объявлСниС сСгмСнта для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ страницы памяти Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ систСмы. БистСма ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π΄ΠΎ 8 страниц памяти Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ с Π½ΠΎΠΌΠ΅Ρ€Π°ΠΌΠΈ ΠΎΡ‚ 0 Π΄ΠΎ 7. КаТдая страница памяти Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ для ADSP-2101, ADSP-2111, ADSP21ms50 ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ Π΄ΠΎ 2К ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΈ Π΄Π°Π½Π½Ρ‹Ρ…. КаТдая страница памяти Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ для ADSP-2105, ADSP-2115 ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ Π΄ΠΎ 1К слов. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ABS для страниц памяти Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ систСмный ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ присваиваСт ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ адрСса.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ SEG:

.SEG/PM/RAM/ABS=0/CODE/DATA start [2048];

Π—Π΄Π΅ΡΡŒ объявлСн сСгмСнт памяти ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠžΠ—Π£, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ start, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ располоТСн ΠΏΠΎ адрСсу 0. Π‘Π΅Π³ΠΌΠ΅Π½Ρ‚ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π΄ΠΎ 2048 слов ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΈ Π΄Π°Π½Π½Ρ‹Ρ….

.SEG/ROM/BOOT=0 boot0[1536];

Π—Π΄Π΅ΡΡŒ объявлСн сСгмСнт памяти Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ boot0, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ располоТСн Π½Π° страницС Π½ΠΎΠΌΠ΅Ρ€ 0 памяти Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ (автоматичСски соотвСтствуСт адрСсу 0 Π² памяти Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ). Π”Π»ΠΈΠ½Π° сСгмСнта составляСт 1536 слов. Π‘Π΅Π³ΠΌΠ΅Π½Ρ‚Ρ‹ памяти Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ всСгда Π±Ρ‹Ρ‚ΡŒ ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Ρ‹ ΠΊΠ°ΠΊ ROM (ΠŸΠ—Π£).

Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° PORT

Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° PORT являСтся Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²ΠΎΠΉ систСмного построитСля ΠΈ ассСмблСра. Она ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ ΠΏΠΎΡ€Ρ‚ Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π° ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½Π½Ρ‹ΠΉ Π² памяти процСссора. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΏΠΎΡ€Ρ‚ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅Ρ‚ΡŒ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠ΅ имя ΠΈ адрСс Π² систСмС. ΠŸΠΎΡ€Ρ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ Π² памяти Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ памяти ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Для процСссоров с Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΉ ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ ΠΏΠΎΡ€Ρ‚Π°ΠΌ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ присвоСны адрСса Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²ΠΎ внСшнСй памяти.

Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° PORT ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΠΎΠ΄Π½Ρƒ ΠΈΠ· Π΄Π²ΡƒΡ… Ρ„ΠΎΡ€ΠΌ:

.PORT/DM/ABS=адрСс имя_ΠΏΠΎΡ€Ρ‚Π°;

ΠΈΠ»ΠΈ

.PORT/PM/ABS= адрСс имя_ΠΏΠΎΡ€Ρ‚Π°;

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ DM ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΏΠΎΡ€Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ Π² памяти Π΄Π°Π½Π½Ρ‹Ρ…. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ PM ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΏΠΎΡ€Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ Π² памяти ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Если ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π½Π΅ Π·Π°Π΄Π°Π½, ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ принимаСтся DM. ΠŸΠΎΡ€Ρ‚ располагаСтся ΠΏΠΎ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎΠΌΡƒ адрСсу, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ ABS, ΠΈ присваиваСтся символичСскому ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠΎΡ€Ρ‚Π°. Π­Ρ‚ΠΎ имя ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² инструкциях ассСмблСра для доступа ΠΊ ΠΏΠΎΡ€Ρ‚Ρƒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

.PORT/DM/ABS=0x0020 p1;

ΠžΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ имя ΠΏΠΎΡ€Ρ‚Π° p1, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ Π² памяти Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎ адрСсу 0x0020 (ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½Ρ‹ΠΉ) ΠΈΠ»ΠΈ 32 (дСсятичный). АссСмблСрная ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° обращаСтся ΠΊ этому ΠΈΠΌΠ΅Π½ΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Ρƒ связСй, Π±Π°Π·ΠΈΡ€ΡƒΡŽΡ‰Π΅ΠΌΡƒΡΡ Π½Π° содСрТании Ρ„Π°ΠΉΠ»Π° описания систСмной ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ ach. ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΡ€Ρ‚Π° Π² памяти Π΄Π°Π½Π½Ρ‹Ρ… позволяСт 16-ΠΈ разрядноС Ρ‡Ρ‚Π΅Π½ΠΈΠ΅/запись, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΡ€Ρ‚Π° Π² памяти ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ допускаСт 16- ΠΈΠ»ΠΈ 24-разрядный ΠΎΠ±ΠΌΠ΅Π½ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ.

Π’ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° PORT повторяСт Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρƒ систСмного построитСля Π±Π΅Π· указания адрСса ΠΏΠΎΡ€Ρ‚Π°. НапримСр, Π² Ρ„Π°ΠΉΠ»Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ систСмы для систСмного построитСля Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° PORT ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ ΠΏΠΎΡ€Ρ‚Ρ‹ CODEC ΠΈ DAC ΠΏΠΎ адрСсам 0x3000 ΠΈ 0x3800 соотвСтствСнно:

.PORT/ABS=0x3000 CODEC;

.PORT/ABS=0x3800 DAC;

Π’ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° PORT ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ эти ΠΏΠΎΡ€Ρ‚Ρ‹ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌΠΈ строками:

.PORT CODEC;

.PORT DAC;

ПослС Ρ‡Π΅Π³ΠΎ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ обращСния ΠΊ описанным ΠΏΠΎΡ€Ρ‚Π°ΠΌ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄, ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ:

AR=DM(DAC);

DM(DAC)=AR;

AR=DM(CODEC);

DM(CODEC)=AR;

Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° ENDSYS

Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° ENDSYS Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ послСднСй ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ Π² Ρ„Π°ΠΉΠ»Π΅. БистСмный ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€ останавливаСт свою Ρ€Π°Π±ΠΎΡ‚Ρƒ Π½Π° Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π΅ .ENDSYS. Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° ΠΈΠΌΠ΅Π΅Ρ‚ Ρ„ΠΎΡ€ΠΌΡƒ записи:

.ENDSYS;

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π·Π°ΠΊΠΎΠ½Ρ‡Π΅Π½Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° example.sys для систСмного ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€Π°.

.SYSTEM example;

.ADSP2181;

.MMAP0;

.SEG/PM/RAM/ABS=0x0000/CODE/DATA mem_pm[0x4000];

.SEG/DM/RAM/ABS=0x0000/DATA mem_dm[0x3FE0];

.ENDSYS;

ПослС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ этого Ρ„Π°ΠΉΠ»Π° систСмным ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ Ρ„Π°ΠΉΠ» example.ach с Ρ‚Π°ΠΊΠΈΠΌ содСрТимым:

$EXAMPLE

$ADSP2181

$MMAP0

$0000 3FFF pax_PM t

$0000 3FDF dadMEM_DM t

$

Π’Π΅ΠΏΠ΅Ρ€ΡŒ рассмотрим основныС Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ ассСмблСра, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Π² тСкстах ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ для ΡΠΈΠ³Π½Π°Π»ΡŒΠ½Ρ‹Ρ… процСссоров сСмСйства ADSP.

Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° MODULE

Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° MODULE ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Π½Π°Ρ‡Π°Π»ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ модуля ΠΈ опрСдСляСт Π½Π°Π·Π²Π°Π½ΠΈΠ΅ модуля. Как Π±Ρ‹Π»ΠΎ сказано Ρ€Π°Π½Π΅Π΅, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° для ADSP-2181 ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΡΡ‚ΠΎΡΡ‚ΡŒ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ Π°ΡΡΠ΅ΠΌΠ±Π»ΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΈ Π·Π°Ρ‚Π΅ΠΌ ΡΠ²ΡΠ·Ρ‹Π²Π°ΡŽΡ‚ΡΡ вмСстС. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ„Π°ΠΉΠ» с исходным тСкстом ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ. Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ Ρ„ΠΎΡ€ΠΌΡƒ записи:

.МОDULΠ•/ΠŸΠΠ ΠΠœΠ•Π’Π 1/ΠŸΠΠ ΠΠœΠ•Π’Π 2 ... ИМЯ_ΠœΠžΠ”Π£Π›Π―;

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌΠΈ:

RAM ΠΈΠ»ΠΈ ROM β€” Ρ‚ΠΈΠΏ памяти для размСщСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹;

ABS=адрСс β€” Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½Ρ‹ΠΉ стартовый адрСс (Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ вмСстС с Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²ΠΎΠΉ STATIC);

SEG=сСгмСнт β€” Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π² ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌ сСгмСнтС;

STATIC β€” статичноС Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ модуля Π² памяти (Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ вмСстС с Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²ΠΎΠΉ ABS).

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ RAM (ΠžΠ—Π£) ΠΈΠ»ΠΈ ROM (ΠŸΠ—Π£) опрСдСляСт Ρ‚ΠΈΠΏ памяти процСссора для размСщСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Если Ρ‚ΠΈΠΏ памяти Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½, Ρ‚ΠΎ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ принимаСтся Ρ‚ΠΈΠΏ RAM.

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ABS Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Π΅Ρ‚ ΠΊΠΎΠ΄Ρ‹ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΏΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ адрСсам памяти ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΈΡ… Π½Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Π΅ΠΌΡ‹ΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²Ρ‰ΠΈΠΊΠΎΠΌ. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²Ρ‰ΠΈΠΊ Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΠ°ΠΌΡΡ‚ΡŒ для ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ΠΏΠΎ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ адрСсам. ΠœΠΎΠ΄ΡƒΠ»ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° ABS, Ρ€Π°ΡΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²Ρ‰ΠΈΠΊΠΎΠΌ Π² памяти процСссора автоматичСски.

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ SEG Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Π΅Ρ‚ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π² ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ сСгмСнт памяти, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ объявлСн Π² Ρ„Π°ΠΉΠ»Π΅ систСмной ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ. Если ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΎΠ±Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° ABS ΠΈ SEG ΠΈ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½Ρ‹Π΅ адрСса, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π΅Ρ‚ Π² Π΄Π°Π½Π½ΠΎΠΌ сСгмСнтС, ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²Ρ‰ΠΈΠΊ выдаст сообщСниС ΠΎΠ± ошибкС.

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ STATIC сохраняСт ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π² памяти ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, ΠΊΠΎΠ³Π΄Π° Π·Π°Π³Ρ€ΡƒΠΆΠ°ΡŽΡ‚ΡΡ страницы Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ записи Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹:

.MODULE/RAM/ABS=0 demo;

{ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π½ΠΈ demo ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ модуля}

{с Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ΠΌ Π² ΠžΠ—Π£ ΠΏΠΎ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎΠΌΡƒ адрСсу 0}

Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° CONST

Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° CONST опрСдСляСт соотвСтствиС ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΈΠΌΠ΅Π½Π΅ΠΌ константы ΠΈ Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ. Данная Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ Ρ„ΠΎΡ€ΠΌΡƒ записи:

.CONST имя_константы1 = Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅1, имя_константы2 = Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅2...;

ЗначСния констант ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ числовыми ΠΈΠ»ΠΈ ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹ΠΌΠΈ константами. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, допускаСтся ΠΏΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°Ρ‚ΡŒ константам выраТСния. Π’ выраТСниях Ρ€Π°Π·Ρ€Π΅ΡˆΠ°ΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ арифмСтичСскиС ΠΈΠ»ΠΈ логичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π°Π΄ двумя ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ Ρ†Π΅Π»Ρ‹ΠΌΠΈ константами. Π’ качСствС Π·Π½Π°ΠΊΠΎΠ² Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π² ассСмблСрС допускаСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ символы:

+ β€” слоТСниС;

- β€” Π²Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅;

* β€” ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅;

/ β€” Π΄Π΅Π»Π΅Π½ΠΈΠ΅;

% β€” ΠΌΠΎΠ΄ΡƒΠ»ΡŒ (цСлая Ρ‡Π°ΡΡ‚ΡŒ ΠΎΡ‚ дСлСния);

( β€” лСвая скобка;

) β€” правая скобка;

& β€” логичСскоС «И» (AND);

| β€” логичСскоС Β«Π˜Π›Π˜Β» (OR);

~ β€” ΠΈΡΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰Π΅Π΅ Β«Π˜Π›Π˜Β» (XOR);

<< β€” логичСский сдвиг Π²Π»Π΅Π²ΠΎ;

>> β€” логичСский сдвиг Π²ΠΏΡ€Π°Π²ΠΎ.

Π—Π°ΠΏΠΈΡΡŒ чисСл Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒΡΡ Π² Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°Ρ…. Для записи ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½Ρ‹Ρ… чисСл ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ прСфикс 0x (ноль ΠΈ икс) ΠΈΠ»ΠΈ H#. НапримСр:

0x24FF, H#CF8A

Для Π²ΠΎΡΡŒΠΌΠ΅Ρ€ΠΈΡ‡Π½Ρ‹Ρ… чисСл примСняСтся прСфикс 0 (ноль):

0777, 0123, 07777

Π”Π²ΠΎΠΈΡ‡Π½Ρ‹Π΅ числа Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ с прСфиксом B#:

Π’#01110100

ДСсятичныС числа Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π±Π΅Π· прСфиксов. Π’.Π΅. ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ числа считаСтся дСсятичным:

1024, -55, 0

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ записи арифмСтичСского выраТСния: