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

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

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

Набор ΠΊΠΎΠΌΠ°Π½Π΄ ADSP-2181 совмСстим Π²Π²Π΅Ρ€Ρ… с Π½Π°Π±ΠΎΡ€ΠΎΠΌ ΠΊΠΎΠΌΠ°Π½Π΄ ADSP-21XX, поэтому, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, написанныС для ADSP-21XX, ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π½Π° ADSP-2181 с ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ измСнСниями. ΠŸΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€ ADSP-2181 ΠΈΠΌΠ΅Π΅Ρ‚ ряд Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄. КаТдая ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ Π² своСм Ρ‚Π°ΠΊΡ‚Π΅. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, систСма ΠΊΠΎΠΌΠ°Π½Π΄ позволяСт Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π·Π° ΠΎΠ΄ΠΈΠ½ Ρ‚Π°ΠΊΡ‚ процСссора ΠΌΠ½ΠΎΠ³ΠΎΡ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹.

Π―Π·Ρ‹ΠΊ ассСмблСра позволяСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ… арифмСтичСскиС ΠΈΠ»ΠΈ логичСскиС выраТСния. Бписок этих Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΈ выполняСмых с ΠΈΡ… ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ дСйствий ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ Π² Ρ‚Π°Π±Π». 13.2.


Π’Π°Π±Π»ΠΈΡ†Π° 13.2 Бписок арифмСтичСских ΠΈΠ»ΠΈ логичСских Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΈ выполняСмых с ΠΈΡ… ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ дСйствий

Π’Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ДСйствиС = ΠŸΡ€ΠΈΡΠ²ΠΎΠ΅Π½ΠΈΠ΅ + Π‘Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ - Π’Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅ * Π£ΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ AND ЛогичСскоС «И» OR ЛогичСскоС Β«Π˜Π›Π˜Β» NOT ЛогичСскоС ΠΎΡ‚Ρ€ΠΈΡ†Π°Π½ΠΈΠ΅ XOR Π˜ΡΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰Π΅Π΅ Β«Π˜Π›Π˜Β» PASS ΠŸΠ΅Ρ€Π΅ΡΡ‹Π»ΠΊΠ° ABS ΠΠ±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ записи Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄ языка ассСмблСра ADSP-21XX с объяснСниСм ΠΈΡ… назначСния.

DM(var1) = AX0;

Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°, знакомая читатСлям ΠΈΠ· ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, присваиваСт (записываСт) Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ рСгистра AX0 ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ var1, хранящСйся Π² памяти Π΄Π°Π½Π½Ρ‹Ρ….

MR = MR + MX1*MY1;

Данная ΠΊΠΎΠΌΠ°Π½Π΄Π° выполняСт ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ умноТСния ΠΈ слоТСния. Он ΡƒΠΌΠ½ΠΎΠΆΠ°Π΅Ρ‚ Π²Ρ…ΠΎΠ΄Π½Ρ‹Π΅ значСния ΠΈΠ· рСгистров MX1 ΠΈ MY1, складываСт Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ умноТСния с Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΌ содСрТимым рСгистра MR (Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ умноТСния), Π° Π·Π°Ρ‚Π΅ΠΌ записываСт Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π² рСгистр MR.

ΠŸΡ€ΠΈ рассмотрСнии систСмы ΠΊΠΎΠΌΠ°Π½Π΄ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ условными обозначСниями, ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΌΠΈ Π² Ρ‚Π°Π±Π». 13.3. Π­Ρ‚ΠΈ обозначСния ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ описаниС ΠΊΠΎΠΌΠ°Π½Π΄ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½Ρ‹ΠΌ.


Π’Π°Π±Π»ΠΈΡ†Π° 13.3 УсловныС обозначСния систСмы ΠΊΠΎΠΌΠ°Π½Π΄

ΠžΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ОписаниС I0–I7 Π˜Π½Π΄Π΅ΠΊΡΠ½Ρ‹Π΅ рСгистры DAG для косвСнной адрСсации M0–M7 РСгистры ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ DAG для косвСнной адрСсации L0–L7 РСгистры Π΄Π»ΠΈΠ½Ρ‹ DAG для цикличСских Π±ΡƒΡ„Π΅Ρ€ΠΎΠ² <data> НСпосрСдствСнноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… <addr> НСпосрСдствСнноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ адрСса (Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½Ρ‹ΠΉ адрСс ΠΈΠ»ΠΈ программная ΠΌΠ΅Ρ‚ΠΊΠ°) <exp> ΠŸΠΎΡ€ΡΠ΄ΠΎΠΊ (Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ сдвига) Π² ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ… нСпосрСдствСнного сдвига (8-разрядноС Π·Π½Π°ΠΊΠΎΠ²ΠΎΠ΅ число) cond Код условия Π² условных ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ… term Код условия Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΈΠ· Ρ†ΠΈΠΊΠ»Π° DO UNTIL dreg РСгистры Π΄Π°Π½Π½Ρ‹Ρ… (АЛУ, умноТитСля-накопитСля ΠΈΠ»ΠΈ устройства сдвига) reg Π›ΡŽΠ±ΠΎΠΉ рСгистр (Π²ΠΊΠ»ΡŽΡ‡Π°Ρ рСгистры Π΄Π°Π½Π½Ρ‹Ρ… Β«dregΒ») ; Π’ΠΎΡ‡ΠΊΠ° с запятой, Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄ , Запятая, Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ [] ΠšΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Π΅ скобки, содСрТащиС Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅, Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ части ΠΊΠΎΠΌΠ°Π½Π΄ [, …] Π—Π°ΠΏΠΈΡΡŒ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ Π² любом порядкС, Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… запятыми |опция1| |опция2| |опция3| Бписок ΠΎΠΏΡ†ΠΈΠΉ (Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅ выбираСтся ΠΎΠ΄Π½Π° ΠΈΠ· ΠΎΠΏΡ†ΠΈΠΉ) xop ΠžΠΏΠ΅Ρ€Π°Π½Π΄ Β«xΒ» yop ΠžΠΏΠ΅Ρ€Π°Π½Π΄ Β«yΒ» constant ΠžΠΏΠ΅Ρ€Π°Π½Π΄-константа

Π’ Ρ‚Π°Π±Π». 13.4 ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ список рСгистров, допустимых ΠΊ использованию Π² ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ… пСрСсылки ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΡ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ….


Π’Π°Π±Π»ΠΈΡ†Π° 13.4 Бписок рСгистров допустимых ΠΊ использованию Π² ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ… пСрСсылки ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΡ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ…

РСгистр ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ РСгистры Π΄Π°Π½Π½Ρ‹Ρ… <dreg> AX0, АΠ₯1, AY0, AY1 – AR – MX0, МΠ₯1, MY0, MY1 – MR0, MR1, MR2 – SI, SE, SR0, SR1 – ΠžΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ рСгистры <reg> I0, I1, I2, I3, I4, I5, I6, I7 – M0, M1, M2, M3, M4, M5, M6, M7 – L0, L1, L2, L3, L4, L5, L6, L7 – TX0, TX1, RX0, RX1 – SB, PX – ASTAT, MSTAT – SSTAT Волько Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ IMASK, ICNTL – IFC Волько запись CNTR – OWRCNTR Волько запись

Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ рСгистры <dreg> ΡΠ²Π»ΡΡŽΡ‚ΡΡ подмноТСством рСгистров <reg>, поэтому ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ…, Π³Π΄Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ условноС сокращСниС <reg>.

Команда ΡΠ»ΠΎΠΆΠΈΡ‚ΡŒ ΠΈΠ»ΠΈ ΡΠ»ΠΎΠΆΠΈΡ‚ΡŒ с пСрСносом, записанная с ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… Π²Ρ‹ΡˆΠ΅ условных сокращСний, Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

[IF cond] |AR| = xop + | yop      |;

          |AF|         | C        |

                       | yop + C  |

                       | constant |

Она ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ссли условиС cond ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ выполняСтся, Ρ‚ΠΎ Π² рСгистр AR ΠΈΠ»ΠΈ AF Π±ΡƒΠ΄Π΅Ρ‚ занСсСн Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ слоТСния ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π° xop с ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ΠΎΠΌ yop ΠΈΠ»ΠΈ с пСрСносом ΠΈΠ»ΠΈ с константой. Π Π°Π·Ρ€Π΅ΡˆΠ΅Π½Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Ρ‹ xop, yop ΠΈ константы constant ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ для Π³Ρ€ΡƒΠΏΠΏΡ‹ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ΠΈ Π½Π΅ всСгда ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹ΠΌΠΈ. НапримСр, для ΠΊΠΎΠΌΠ°Π½Π΄ АЛУ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² качСствС ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π° xop рСгистры; AX0, АΠ₯1, AR, MR0, MR1, MR2, SR0, SR1. Π’ качСствС ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π° yop допускаСтся использованиС рСгистров: AY0, AY1 ΠΈ AF. ΠŸΡ€ΠΈΡ‡Π΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Π° DIVS Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ рСгистр AY0.

ΠšΠΎΠ΄Ρ‹ условий cond с описаниСм ΠΈΡ… назначСния ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ Π² Ρ‚Π°Π±Π». 13.5.


Π’Π°Π±Π»ΠΈΡ†Π° 13.5 ΠšΠΎΠ΄Ρ‹ условий cond с описаниСм ΠΈΡ… назначСния

Код условия cond ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° IF ОписаниС EQ Π Π°Π²Π½ΠΎ Π½ΡƒΠ»ΡŽ NE He Ρ€Π°Π²Π½ΠΎ Π½ΡƒΠ»ΡŽ LT МСньшС нуля GE Π‘ΠΎΠ»ΡŒΡˆΠ΅ ΠΈΠ»ΠΈ Ρ€Π°Π²Π½ΠΎ Π½ΡƒΠ»ΡŽ LE МСньшС ΠΈΠ»ΠΈ Ρ€Π°Π²Π½ΠΎ Π½ΡƒΠ»ΡŽ GT Π‘ΠΎΠ»ΡŒΡˆΠ΅ нуля AC ΠŸΠ΅Ρ€Π΅Π½ΠΎΡ АЛУ NOT AC НСт пСрСноса АЛУ AV ΠŸΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ АЛУ NOT AV НСт пСрСполнСния АЛУ MV ΠŸΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ умноТитСля NOT MV НСт пСрСполнСния умноТитСля NEG Π’Ρ…ΠΎΠ΄Π½ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ xop ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»Π΅Π½ POS Π’Ρ…ΠΎΠ΄Π½ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ xop ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»Π΅Π½ NOT CE Π‘Ρ‡Π΅Ρ‚Ρ‡ΠΈΠΊ Ρ†ΠΈΠΊΠ»ΠΎΠ² Π½Π΅ пуст FLAG_IN* Π’Ρ‹Π²ΠΎΠ΄ FI = 1 NOT FLAG_IN* Π’Ρ‹Π²ΠΎΠ΄ FI = 0

* Волько для команд JUMP и CALL.