Π‘Ρ‚ΠΎΠΏΠ°ΠΌΠ° ΠΈΠ½Π΄ΡƒΡΡ‚Ρ€ΠΈΡ˜ΡΠΊΠΎΠ³ нинџС: ΠΊΠ°ΠΊΠΎ јС ΠŸΠ›Π¦ Ρ…Π°ΠΊΠΎΠ²Π°Π½ Π½Π° ΠŸΠΎΡΠΈΡ‚ΠΈΠ²Π΅ Π₯Π°Ρ†ΠΊ Даис 9

Π‘Ρ‚ΠΎΠΏΠ°ΠΌΠ° ΠΈΠ½Π΄ΡƒΡΡ‚Ρ€ΠΈΡ˜ΡΠΊΠΎΠ³ нинџС: ΠΊΠ°ΠΊΠΎ јС ΠŸΠ›Π¦ Ρ…Π°ΠΊΠΎΠ²Π°Π½ Π½Π° ΠŸΠΎΡΠΈΡ‚ΠΈΠ²Π΅ Π₯Π°Ρ†ΠΊ Даис 9

На послСдњСм ПΠ₯Даис 9 ΠΎΠ΄Ρ€ΠΆΠ°Π»ΠΈ смо Ρ‚Π°ΠΊΠΌΠΈΡ‡Π΅ΡšΠ΅ Π·Π° Ρ…Π°ΠΊΠΎΠ²Π°ΡšΠ΅ ΠΏΠΎΡΡ‚Ρ€ΠΎΡ˜Π΅ΡšΠ° Π·Π° ΠΏΡƒΠΌΠΏΠ°ΡšΠ΅ гаса - Ρ‚Π°ΠΊΠΌΠΈΡ‡Π΅ΡšΠ΅ Π˜Π½Π΄ΡƒΡΡ‚Ρ€ΠΈΠ°Π» Ниња. На Π»ΠΎΠΊΠ°Ρ†ΠΈΡ˜ΠΈ су Π±ΠΈΠ»Π° Ρ‚Ρ€ΠΈ ΡˆΡ‚Π°Π½Π΄Π° са Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΡ‚ΠΈΠΌ бСзбСдносним ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΠΌΠ° (Π‘Π΅Π· бСзбСдности, Ниска бСзбСдност, Висока бСзбСдност), који су опонашали исти ΠΈΠ½Π΄ΡƒΡΡ‚Ρ€ΠΈΡ˜ΡΠΊΠΈ процСс: Π²Π°Π·Π΄ΡƒΡ… ΠΏΠΎΠ΄ притиском јС ΡƒΠΏΡƒΠΌΠΏΠ°Π²Π°Π½ Ρƒ Π±Π°Π»ΠΎΠ½ (Π° Π·Π°Ρ‚ΠΈΠΌ ΠΏΡƒΡˆΡ‚Π΅Π½).

Упркос Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΡ‚ΠΈΠΌ бСзбСдносним ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΠΌΠ°, хардвСрски састав Ρ‚Ρ€ΠΈΠ±ΠΈΠ½Π° јС Π±ΠΈΠΎ исти: БиСмСнс Π‘ΠΈΠΌΠ°Ρ‚ΠΈΡ† ΠŸΠ›Π¦ ΡΠ΅Ρ€ΠΈΡ˜Π° Π‘7-300; Π΄ΡƒΠ³ΠΌΠ΅ Π·Π° ΠΈΡΠΏΡƒΡ…ΠΈΠ²Π°ΡšΠ΅ Ρƒ Π½ΡƒΠΆΠ΄ΠΈ ΠΈ ΡƒΡ€Π΅Ρ’Π°Ρ˜ Π·Π° ΠΌΠ΅Ρ€Π΅ΡšΠ΅ притиска (ΠΏΠΎΠ²Π΅Π·Π°Π½ са Π΄ΠΈΠ³ΠΈΡ‚Π°Π»Π½ΠΈΠΌ ΡƒΠ»Π°Π·ΠΈΠΌΠ° ΠŸΠ›Π¦-Π° (Π”Π˜)); Π²Π΅Π½Ρ‚ΠΈΠ»ΠΈ који Ρ€Π°Π΄Π΅ Π·Π° Π½Π°Π΄ΡƒΠ²Π°Π²Π°ΡšΠ΅ ΠΈ ΠΈΡΠΏΡƒΡ…ΠΈΠ²Π°ΡšΠ΅ Π²Π°Π·Π΄ΡƒΡ…Π° (ΠΏΠΎΠ²Π΅Π·Π°Π½ΠΈ Π½Π° Π΄ΠΈΠ³ΠΈΡ‚Π°Π»Π½Π΅ ΠΈΠ·Π»Π°Π·Π΅ ΠŸΠ›Π¦-Π° (Π”Πž)) - Π²ΠΈΠ΄Π΅Ρ‚ΠΈ слику испод.

Π‘Ρ‚ΠΎΠΏΠ°ΠΌΠ° ΠΈΠ½Π΄ΡƒΡΡ‚Ρ€ΠΈΡ˜ΡΠΊΠΎΠ³ нинџС: ΠΊΠ°ΠΊΠΎ јС ΠŸΠ›Π¦ Ρ…Π°ΠΊΠΎΠ²Π°Π½ Π½Π° ΠŸΠΎΡΠΈΡ‚ΠΈΠ²Π΅ Π₯Π°Ρ†ΠΊ Даис 9

ΠŸΠ›Π¦ јС, Ρƒ зависности ΠΎΠ΄ ΠΎΡ‡ΠΈΡ‚Π°Π²Π°ΡšΠ° притиска ΠΈΡƒ складу са својим ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΎΠΌ, Π΄ΠΎΠ½Π΅ΠΎ ΠΎΠ΄Π»ΡƒΠΊΡƒ Π΄Π° ΠΈΠ·Π΄ΡƒΠ²Π° ΠΈΠ»ΠΈ Π½Π°Π΄ΡƒΠ²Π° Π»ΠΎΠΏΡ‚Ρƒ (ΠΎΡ‚Π²ΠΎΡ€ΠΈΠΎ ΠΈ Π·Π°Ρ‚Π²ΠΎΡ€ΠΈΠΎ ΠΎΠ΄Π³ΠΎΠ²Π°Ρ€Π°Ρ˜ΡƒΡ›Π΅ Π²Π΅Π½Ρ‚ΠΈΠ»Π΅). ΠœΠ΅Ρ’ΡƒΡ‚ΠΈΠΌ, сви ΡˆΡ‚Π°Π½Π΄ΠΎΠ²ΠΈ су ΠΈΠΌΠ°Π»ΠΈ Ρ€ΡƒΡ‡Π½ΠΈ Ρ€Π΅ΠΆΠΈΠΌ ΡƒΠΏΡ€Π°Π²Ρ™Π°ΡšΠ°, ΡˆΡ‚ΠΎ јС ΠΎΠΌΠΎΠ³ΡƒΡ›ΠΈΠ»ΠΎ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Ρƒ ΡΡ‚Π°ΡšΠ° Π²Π΅Π½Ρ‚ΠΈΠ»Π° Π±Π΅Π· ΠΈΠΊΠ°ΠΊΠ²ΠΈΡ… ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅ΡšΠ°.

Π’Ρ€ΠΈΠ±ΠΈΠ½Π΅ су сС Ρ€Π°Π·Π»ΠΈΠΊΠΎΠ²Π°Π»Π΅ ΠΏΠΎ слоТСности ΠΎΠΌΠΎΠ³ΡƒΡ›Π°Π²Π°ΡšΠ° ΠΎΠ²ΠΎΠ³ Ρ€Π΅ΠΆΠΈΠΌΠ°: Π½Π° Π½Π΅Π·Π°ΡˆΡ‚ΠΈΡ›Π΅Π½ΠΎΠΌ ΡˆΡ‚Π°Π½Π΄Ρƒ Ρ‚ΠΎ јС Π±ΠΈΠ»ΠΎ најлакшС ΡƒΡ€Π°Π΄ΠΈΡ‚ΠΈ, Π° Π½Π° ΡˆΡ‚Π°Π½Π΄Ρƒ високС бСзбСдности јС сходно Ρ‚ΠΎΠΌΠ΅ Π±ΠΈΠ»ΠΎ Ρ‚Π΅ΠΆΠ΅.

ΠŸΠ΅Ρ‚ ΠΎΠ΄ ΡˆΠ΅ΡΡ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Ρ€Π΅ΡˆΠ΅Π½ΠΎ јС Π·Π° Π΄Π²Π° Π΄Π°Π½Π°; ΠŸΡ€Π²ΠΎΠΏΠ»Π°ΡΠΈΡ€Π°Π½ΠΈ јС освојио 233 Π±ΠΎΠ΄Π° (Π½Π΅Π΄Π΅Ρ™Ρƒ Π΄Π°Π½Π° сС ΠΏΡ€ΠΈΠΏΡ€Π΅ΠΌΠ°ΠΎ Π·Π° Ρ‚Π°ΠΊΠΌΠΈΡ‡Π΅ΡšΠ΅). Π’Ρ€ΠΈ ΠΏΠΎΠ±Π΅Π΄Π½ΠΈΠΊΠ°: И мСсто - Π°1Π΅ΠΊΠ΄Π°Π½Π΄ΠΈ, ИИ - Π ΡƒΠ±ΠΈΠΊΠΎΠΈΠ΄, ИИИ - Π—Π΅.

ΠœΠ΅Ρ’ΡƒΡ‚ΠΈΠΌ, Ρ‚ΠΎΠΊΠΎΠΌ ПΠ₯Даис-Π° Π½ΠΈΠΊΠΎ ΠΎΠ΄ учСсника нијС успСо Π΄Π° савлада свС Ρ‚Ρ€ΠΈ Ρ‚Ρ€ΠΈΠ±ΠΈΠ½Π΅, ΠΏΠ° смо ΠΎΠ΄Π»ΡƒΡ‡ΠΈΠ»ΠΈ Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΠΌΠΎ онлајн Ρ‚Π°ΠΊΠΌΠΈΡ‡Π΅ΡšΠ΅ ΠΈ ΠΏΠΎΡ‡Π΅Ρ‚ΠΊΠΎΠΌ Ρ˜ΡƒΠ½Π° објавили Π½Π°Ρ˜Ρ‚Π΅ΠΆΠΈ Π·Π°Π΄Π°Ρ‚Π°ΠΊ. УчСсници су ΠΌΠΎΡ€Π°Π»ΠΈ Π΄Π° ΡƒΡ€Π°Π΄Π΅ Π·Π°Π΄Π°Ρ‚Π°ΠΊ Ρƒ Ρ€ΠΎΠΊΡƒ ΠΎΠ΄ мСсСц Π΄Π°Π½Π°, ΠΏΡ€ΠΎΠ½Π°Ρ’Ρƒ заставу ΠΈ Π΄Π΅Ρ‚Π°Ρ™Π½ΠΎ ΠΈ Π½Π° Π·Π°Π½ΠΈΠΌΡ™ΠΈΠ² Π½Π°Ρ‡ΠΈΠ½ ΠΎΠΏΠΈΡˆΡƒ Ρ€Π΅ΡˆΠ΅ΡšΠ΅.

Испод Ρ€Π΅Π·Π° ΠΎΠ±Ρ˜Π°Π²Ρ™ΡƒΡ˜Π΅ΠΌΠΎ Π°Π½Π°Π»ΠΈΠ·Ρƒ Π½Π°Ρ˜Π±ΠΎΡ™Π΅Π³ Ρ€Π΅ΡˆΠ΅ΡšΠ° Π·Π°Π΄Π°Ρ‚ΠΊΠ° ΠΎΠ΄ ΠΎΠ½ΠΈΡ… послатих Ρ‚ΠΎΠΊΠΎΠΌ мСсСца, ΠΏΡ€ΠΎΠ½Π°ΡˆΠ°ΠΎ Π³Π° јС АлСксСј ΠšΠΎΠ²Ρ€ΠΈΠΆΠ½ΠΈΡ… (Π°1Π΅ΠΊΠ΄Π°Π½Π΄ΠΈ) ΠΈΠ· компанијС Π”ΠΈΠ³ΠΈΡ‚Π°Π» Π‘Π΅Ρ†ΡƒΡ€ΠΈΡ‚ΠΈ, који јС Π·Π°ΡƒΠ·Π΅ΠΎ XNUMX. мСсто Π½Π° Ρ‚Π°ΠΊΠΌΠΈΡ‡Π΅ΡšΡƒ Ρ‚ΠΎΠΊΠΎΠΌ ПΠ₯Даис-Π°. Π£ наставку доносимо њСн тСкст са нашим ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΌΠ°.

Π˜Π½ΠΈΡ†ΠΈΡ˜Π°Π»Π½Π° Π°Π½Π°Π»ΠΈΠ·Π°

Π”Π°ΠΊΠ»Π΅, Π·Π°Π΄Π°Ρ‚Π°ΠΊ јС садрТао Π°Ρ€Ρ…ΠΈΠ²Ρƒ са слСдСћим Ρ„Π°Ρ˜Π»ΠΎΠ²ΠΈΠΌΠ°:

  • Π±Π»ΠΎΡ†ΠΊ_ΡƒΠΏΠ»ΠΎΠ°Π΄_Ρ‚Ρ€Π°Ρ„Ρ„ΠΈΡ†.ΠΏΡ†Π°ΠΏΠ½Π³
  • Π”Π‘100.Π±ΠΈΠ½
  • хинтс.Ρ‚ΠΊΡ‚

Π”Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ° хинтс.Ρ‚ΠΊΡ‚ садрТи ΠΏΠΎΡ‚Ρ€Π΅Π±Π½Π΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ˜Π΅ ΠΈ савСтС Π·Π° Ρ€Π΅ΡˆΠ°Π²Π°ΡšΠ΅ Π·Π°Π΄Π°Ρ‚ΠΊΠ°. Π•Π²ΠΎ њСговог ΡΠ°Π΄Ρ€ΠΆΠ°Ρ˜Π°:

  1. ΠŸΠ΅Ρ‚Ρ€ΠΎΠ²ΠΈΡ› ΠΌΠΈ јС Ρ˜ΡƒΡ‡Π΅ Ρ€Π΅ΠΊΠ°ΠΎ Π΄Π° ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΡ‡ΠΈΡ‚Π°Ρ‚ΠΈ Π±Π»ΠΎΠΊΠΎΠ²Π΅ са ΠŸΠ»Ρ†Π‘ΠΈΠΌ-Π° Ρƒ Π‘Ρ‚Π΅ΠΏ7.
  2. На ΡˆΡ‚Π°Π½Π΄Ρƒ јС ΠΊΠΎΡ€ΠΈΡˆΡ›Π΅Π½ БиСмСнс Π‘ΠΈΠΌΠ°Ρ‚ΠΈΡ† Π‘7-300 ΡΠ΅Ρ€ΠΈΡ˜Π° ΠŸΠ›Π¦.
  3. ΠŸΠ»Ρ†Π‘ΠΈΠΌ јС ΠŸΠ›Π¦ Π΅ΠΌΡƒΠ»Π°Ρ‚ΠΎΡ€ који Π²Π°ΠΌ ΠΎΠΌΠΎΠ³ΡƒΡ›Π°Π²Π° ΠΏΠΎΠΊΡ€Π΅Ρ‚Π°ΡšΠ΅ ΠΈ ΠΎΡ‚ΠΊΠ»Π°ΡšΠ°ΡšΠ΅ Π³Ρ€Π΅ΡˆΠ°ΠΊΠ° Ρƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΠΌΠ° Π·Π° БиСмСнс Π‘7 ΠŸΠ›Π¦-ΠΎΠ²Π΅.

Π§ΠΈΠ½ΠΈ сС Π΄Π° Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ° Π”Π‘100.Π±ΠΈΠ½ садрТи Π”Π‘100 ΠŸΠ›Π¦ Π±Π»ΠΎΠΊ ΠΏΠΎΠ΄Π°Ρ‚Π°ΠΊΠ°: 00000000: 0100 0102 6Π΅02 0401 0206 0100 0101 0102 ....Π½......... 00000010: 1002 0501 0202 2002 0501 0206 0100 . ..... ......... 0102: 00000020 0102 7702 0401 0206 0100 0103 0102Π°0 ..Π²............. 02: 00000030 0501 0202 1602 0501 0206 0100 ................ 0104: 0102 00000040 7502 0401 0206 0100 0105Π°0102 0 Ρƒ............. 02: 0501 00000050 0202 1602 0501 0206 0100 0106............0102. 3402: 4 00000060 0401 0206 0100 0107 0102 2602 ......... & ..... 0501: 0202Π¦00000070 4 02 0501 0206 0100 0108 0102 Π› ......... 3302. .. 0401 : 3 00000080 0206 0100 0109Π°0102 0 02 0501 ................ 0202: 1602 00000090 0501 0206Π° 0100 010 0102 3702 .......... 0401Π°0206: 7 000000Π± 0 0100 010 0102 2202 0501 ......".....Π€... 0202Π±4602: 0501 000000 0Ρ† 0206 0100 010 ...... .. 0102Ρ†3302: 0401Π΄ 0206 0100Π°3 000000 0 010 0102 0 ................ 02Π΄0501: 0202 1602Π΅ 0501 0206Π΄000000 0 0100 ...010 .... .... 0102Π΅6: 02 0401 0206 0100 010 000000 0 0102 ........#...... 1102Ρ„0501: 0202 2302 0501 0206 0100 000000 0 ...... ..... 0110: 0102 3502 0401 0206 0100 0111 0102 5 ............................ 00000100: 1202 0501 0202 2502 0501 0206 .....0100 ..... 0112 ... .....&... 00000110: 0102 3302 0401Ρ†0206 0100 0113 0102 ....Π›......

Као ΡˆΡ‚ΠΎ ΠΈΠΌΠ΅ ΡΡƒΠ³Π΅Ρ€ΠΈΡˆΠ΅, Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ° Π±Π»ΠΎΡ†ΠΊ_ΡƒΠΏΠ»ΠΎΠ°Π΄_Ρ‚Ρ€Π°Ρ„Ρ„ΠΈΡ†.ΠΏΡ†Π°ΠΏΠ½Π³ садрТи испис ΡΠ°ΠΎΠ±Ρ€Π°Ρ›Π°Ρ˜Π° Π·Π° ΠΎΡ‚ΠΏΡ€Π΅ΠΌΠ°ΡšΠ΅ Π±Π»ΠΎΠΊΠΎΠ²Π° Ρƒ ΠŸΠ›Π¦.

Π’Ρ€Π΅Π΄ΠΈ Π½Π°ΠΏΠΎΠΌΠ΅Π½ΡƒΡ‚ΠΈ Π΄Π° јС ΠΎΠ²Ρƒ Π΄Π΅ΠΏΠΎΠ½ΠΈΡ˜Ρƒ ΡΠ°ΠΎΠ±Ρ€Π°Ρ›Π°Ρ˜Π° Π½Π° мСсту Ρ‚Π°ΠΊΠΌΠΈΡ‡Π΅ΡšΠ° Ρ‚ΠΎΠΊΠΎΠΌ ΠΊΠΎΠ½Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΡ˜Π΅ Π±ΠΈΠ»ΠΎ ΠΌΠ°Π»ΠΎ Ρ‚Π΅ΠΆΠ΅ Π΄ΠΎΠ±ΠΈΡ‚ΠΈ. Π”Π° бистС Ρ‚ΠΎ ΡƒΡ€Π°Π΄ΠΈΠ»ΠΈ, Π±ΠΈΠ»ΠΎ јС ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΎ Ρ€Π°Π·ΡƒΠΌΠ΅Ρ‚ΠΈ скрипту ΠΈΠ· ΠΏΡ€ΠΎΡ˜Π΅ΠΊΡ‚Π½Π΅ Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ΅ Π·Π° ВСслаБЦАДА2. Из њСга јС Π±ΠΈΠ»ΠΎ ΠΌΠΎΠ³ΡƒΡ›Π΅ Ρ€Π°Π·ΡƒΠΌΠ΅Ρ‚ΠΈ Π³Π΄Π΅ сС Π½Π°Π»Π°Π·ΠΈ дСпонија ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π° ΠΏΠΎΠΌΠΎΡ›Ρƒ Π Π¦4 ΠΈ који ΠΊΡ™ΡƒΡ‡ Ρ‚Ρ€Π΅Π±Π° Π΄Π° сС користи Π·Π° Π΄Π΅ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°ΡšΠ΅. Π”ΡƒΠΌΠΏΠΎΠ²ΠΈ Π±Π»ΠΎΠΊΠΎΠ²Π° ΠΏΠΎΠ΄Π°Ρ‚Π°ΠΊΠ° Π½Π° Π»ΠΎΠΊΠ°Ρ†ΠΈΡ˜ΠΈ ΠΌΠΎΠ³Ρƒ сС Π΄ΠΎΠ±ΠΈΡ‚ΠΈ ΠΊΠΎΡ€ΠΈΡˆΡ›Π΅ΡšΠ΅ΠΌ ΠΊΠ»ΠΈΡ˜Π΅Π½Ρ‚Π° Π‘7 ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π°. Π—Π° ΠΎΠ²ΠΎ сам користио Π΄Π΅ΠΌΠΎ ΠΊΠ»ΠΈΡ˜Π΅Π½Ρ‚ ΠΈΠ· Π‘Π½Π°ΠΏ7 ΠΏΠ°ΠΊΠ΅Ρ‚Π°.

Π•ΠΊΡΡ‚Ρ€Π°Ρ…ΠΎΠ²Π°ΡšΠ΅ Π±Π»ΠΎΠΊΠΎΠ²Π° Π·Π° ΠΎΠ±Ρ€Π°Π΄Ρƒ сигнала ΠΈΠ· ΡΠ°ΠΎΠ±Ρ€Π°Ρ›Π°Ρ˜Π½Π΅ дСпонијС

Π“Π»Π΅Π΄Π°Ρ˜ΡƒΡ›ΠΈ ΡΠ°Π΄Ρ€ΠΆΠ°Ρ˜ Π΄Π°ΠΌΠΏΠ°, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ схватити Π΄Π° садрТи Π±Π»ΠΎΠΊΠΎΠ²Π΅ Π·Π° ΠΎΠ±Ρ€Π°Π΄Ρƒ сигнала ΠžΠ‘1, Π€Π¦1, Π€Π¦2 ΠΈ Π€Π¦3:

Π‘Ρ‚ΠΎΠΏΠ°ΠΌΠ° ΠΈΠ½Π΄ΡƒΡΡ‚Ρ€ΠΈΡ˜ΡΠΊΠΎΠ³ нинџС: ΠΊΠ°ΠΊΠΎ јС ΠŸΠ›Π¦ Ρ…Π°ΠΊΠΎΠ²Π°Π½ Π½Π° ΠŸΠΎΡΠΈΡ‚ΠΈΠ²Π΅ Π₯Π°Ρ†ΠΊ Даис 9

Ови Π±Π»ΠΎΠΊΠΎΠ²ΠΈ ΠΌΠΎΡ€Π°Ρ˜Ρƒ Π±ΠΈΡ‚ΠΈ ΡƒΠΊΠ»ΠΎΡšΠ΅Π½ΠΈ. Ово сС ΠΌΠΎΠΆΠ΅ ΡƒΡ€Π°Π΄ΠΈΡ‚ΠΈ, Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠΎΠΌΠΎΡ›Ρƒ слСдСћС скриптС, Π½Π°ΠΊΠΎΠ½ ΡˆΡ‚ΠΎ јС ΠΏΡ€Π΅Ρ‚Ρ…ΠΎΠ΄Π½ΠΎ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΎΠ²Π°ΠΎ ΡΠ°ΠΎΠ±Ρ€Π°Ρ›Π°Ρ˜ ΠΈΠ· ΠΏΡ†Π°ΠΏΠ½Π³ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Ρƒ ΠΏΡ†Π°ΠΏ:

#!/usr/bin/env python2

import struct
from scapy.all import *

packets = rdpcap('block_upload_traffic.pcap')
s7_hdr_struct = '>BBHHHHBB'
s7_hdr_sz = struct.calcsize(s7_hdr_struct)
tpkt_cotp_sz = 7
names = iter(['OB1.bin', 'FC1.bin', 'FC2.bin', 'FC3.bin'])
buf = ''

for packet in packets:
    if packet.getlayer(IP).src == '10.0.102.11':
        tpkt_cotp_s7 = str(packet.getlayer(TCP).payload)
        if len(tpkt_cotp_s7) < tpkt_cotp_sz + s7_hdr_sz:
            continue
        s7 = tpkt_cotp_s7[tpkt_cotp_sz:]
        s7_hdr = s7[:s7_hdr_sz]
        param_sz = struct.unpack(s7_hdr_struct, s7_hdr)[4]
        s7_param = s7[12:12+param_sz]
        s7_data = s7[12+param_sz:]
        if s7_param in ('x1ex00', 'x1ex01'):  # upload
            buf += s7_data[4:]
        elif s7_param == 'x1f':
            with open(next(names), 'wb') as f:
                f.write(buf)
            buf = ''

Након ΡˆΡ‚ΠΎ стС испитали Ρ€Π΅Π·ΡƒΠ»Ρ‚ΡƒΡ˜ΡƒΡ›Π΅ Π±Π»ΠΎΠΊΠΎΠ²Π΅, ΠΏΡ€ΠΈΠΌΠ΅Ρ‚ΠΈΡ›Π΅Ρ‚Π΅ Π΄Π° ΠΎΠ½ΠΈ ΡƒΠ²Π΅ΠΊ ΠΏΠΎΡ‡ΠΈΡšΡƒ са Π±Π°Ρ˜Ρ‚ΠΎΠ²ΠΈΠΌΠ° 70 70 (ΠΏΠΏ). Π‘Π°Π΄Π° ΠΌΠΎΡ€Π°Ρ‚Π΅ Π½Π°ΡƒΡ‡ΠΈΡ‚ΠΈ ΠΊΠ°ΠΊΠΎ ΠΈΡ… Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€Π°Ρ‚ΠΈ. ΠΠ°Π³ΠΎΠ²Π΅ΡˆΡ‚Π°Ρ˜ Π·Π° Π΄ΠΎΠ΄Π΅Ρ™ΠΈΠ²Π°ΡšΠ΅ ΡΡƒΠ³Π΅Ρ€ΠΈΡˆΠ΅ Π΄Π° Π·Π° ΠΎΠ²ΠΎ Ρ‚Ρ€Π΅Π±Π° Π΄Π° користитС ΠŸΠ»Ρ†Π‘ΠΈΠΌ.

Π”ΠΎΠ±ΠΈΡ˜Π°ΡšΠ΅ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ˜Π° Ρ‡ΠΈΡ‚Ρ™ΠΈΠ²ΠΈΡ… Ρ™ΡƒΠ΄ΠΈ ΠΈΠ· Π±Π»ΠΎΠΊΠΎΠ²Π°

ΠŸΡ€Π²ΠΎ, ΠΏΠΎΠΊΡƒΡˆΠ°Ρ˜ΠΌΠΎ Π΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°ΠΌΠΎ Π‘7-ΠŸΠ»Ρ†Π‘ΠΈΠΌ Ρ‚Π°ΠΊΠΎ ΡˆΡ‚ΠΎ Ρ›Π΅ΠΌΠΎ Ρƒ њСга ΡƒΡ‡ΠΈΡ‚Π°Ρ‚ΠΈ Π½Π΅ΠΊΠΎΠ»ΠΈΠΊΠΎ Π±Π»ΠΎΠΊΠΎΠ²Π° са ΠΏΠΎΠ½Π°Π²Ρ™Π°Ρ˜ΡƒΡ›ΠΈΠΌ упутствима (= К 0.0) ΠΏΠΎΠΌΠΎΡ›Ρƒ софтвСра Π‘ΠΈΠΌΠ°Ρ‚ΠΈΡ† ΠœΠ°Π½Π°Π³Π΅Ρ€ ΠΈ сачувати ΠŸΠ›Π¦ добијСн Ρƒ Π΅ΠΌΡƒΠ»Π°Ρ‚ΠΎΡ€Ρƒ Ρƒ Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΡƒ Π΅ΠΊΠ°ΠΌΠΏΠ»Π΅.ΠΏΠ»Ρ†. Π“Π»Π΅Π΄Π°Ρ˜ΡƒΡ›ΠΈ ΡΠ°Π΄Ρ€ΠΆΠ°Ρ˜ Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ΅, Π»Π°ΠΊΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ΄Ρ€Π΅Π΄ΠΈΡ‚ΠΈ ΠΏΠΎΡ‡Π΅Ρ‚Π°ΠΊ ΠΏΡ€Π΅ΡƒΠ·Π΅Ρ‚ΠΈΡ… Π±Π»ΠΎΠΊΠΎΠ²Π° ΠΏΠΎ потпису 70 70, који смо Ρ€Π°Π½ΠΈΡ˜Π΅ ΠΎΡ‚ΠΊΡ€ΠΈΠ»ΠΈ. ΠŸΡ€Π΅ Π±Π»ΠΎΠΊΠΎΠ²Π°, ΠΎΡ‡ΠΈΠ³Π»Π΅Π΄Π½ΠΎ, Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Π° Π±Π»ΠΎΠΊΠ° јС записана ΠΊΠ°ΠΎ 4-Π±Π°Ρ˜Ρ‚Π½Π° врСдност ΠΌΠ°Π»ΠΎΠ³ Сндијана.

Π‘Ρ‚ΠΎΠΏΠ°ΠΌΠ° ΠΈΠ½Π΄ΡƒΡΡ‚Ρ€ΠΈΡ˜ΡΠΊΠΎΠ³ нинџС: ΠΊΠ°ΠΊΠΎ јС ΠŸΠ›Π¦ Ρ…Π°ΠΊΠΎΠ²Π°Π½ Π½Π° ΠŸΠΎΡΠΈΡ‚ΠΈΠ²Π΅ Π₯Π°Ρ†ΠΊ Даис 9

Након ΡˆΡ‚ΠΎ смо Π΄ΠΎΠ±ΠΈΠ»ΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ˜Π΅ ΠΎ структури ΠΏΠ»Ρ† Ρ„Π°Ρ˜Π»ΠΎΠ²Π°, појавио сС слСдСћи Π°ΠΊΡ†ΠΈΠΎΠ½ΠΈ ΠΏΠ»Π°Π½ Π·Π° Ρ‡ΠΈΡ‚Π°ΡšΠ΅ ΠŸΠ›Π¦ Π‘7 ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°:

  1. ΠšΠΎΡ€ΠΈΡΡ‚Π΅Ρ›ΠΈ Π‘ΠΈΠΌΠ°Ρ‚ΠΈΡ† ΠœΠ°Π½Π°Π³Π΅Ρ€, ΠΊΡ€Π΅ΠΈΡ€Π°ΠΌΠΎ структуру Π±Π»ΠΎΠΊΠΎΠ²Π° Ρƒ Π‘7-ΠŸΠ»Ρ†Π‘ΠΈΠΌ-Ρƒ сличну оној ΠΊΠΎΡ˜Ρƒ смо Π΄ΠΎΠ±ΠΈΠ»ΠΈ ΠΈΠ· Π΄ΡƒΠΌΠΏ-Π°. Π’Π΅Π»ΠΈΡ‡ΠΈΠ½Π΅ Π±Π»ΠΎΠΊΠΎΠ²Π° ΠΌΠΎΡ€Π°Ρ˜Ρƒ Π΄Π° сС ΠΏΠΎΠ΄ΡƒΠ΄Π°Ρ€Π°Ρ˜Ρƒ (ΠΎΠ²ΠΎ сС постиТС ΠΏΠΎΠΏΡƒΡšΠ°Π²Π°ΡšΠ΅ΠΌ Π±Π»ΠΎΠΊΠΎΠ²Π° ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΈΠΌ Π±Ρ€ΠΎΡ˜Π΅ΠΌ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ˜Π°) ΠΈ ΡšΠΈΡ…ΠΎΠ²ΠΈΠΌ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΈΠΌΠ° (ΠžΠ‘1, Π€Π¦1, Π€Π¦2, Π€Π¦3).
  2. Π‘Π°Ρ‡ΡƒΠ²Π°Ρ˜Ρ‚Π΅ ΠŸΠ›Π¦ Ρƒ Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΡƒ.
  3. Π‘Π°Π΄Ρ€ΠΆΠ°Ρ˜ Π±Π»ΠΎΠΊΠΎΠ²Π° Ρƒ Ρ€Π΅Π·ΡƒΠ»Ρ‚ΡƒΡ˜ΡƒΡ›ΠΎΡ˜ Π΄Π°Ρ‚ΠΎΡ‚Π΅Ρ†ΠΈ Π·Π°ΠΌΠ΅ΡšΡƒΡ˜Π΅ΠΌΠΎ Π±Π»ΠΎΠΊΠΎΠ²ΠΈΠΌΠ° ΠΈΠ· дСпонијС ΡΠ°ΠΎΠ±Ρ€Π°Ρ›Π°Ρ˜Π°. ΠŸΠΎΡ‡Π΅Ρ‚Π°ΠΊ Π±Π»ΠΎΠΊΠΎΠ²Π° јС ΠΎΠ΄Ρ€Π΅Ρ’Π΅Π½ потписом.
  4. Π”ΠΎΠ±ΠΈΡ˜Π΅Π½ΠΈ Ρ„Π°Ρ˜Π» ΡƒΡ‡ΠΈΡ‚Π°Π²Π°ΠΌΠΎ Ρƒ Π‘7-ΠŸΠ»Ρ†Π‘ΠΈΠΌ ΠΈ Π³Π»Π΅Π΄Π°ΠΌΠΎ ΡΠ°Π΄Ρ€ΠΆΠ°Ρ˜ Π±Π»ΠΎΠΊΠΎΠ²Π° Ρƒ Π‘ΠΈΠΌΠ°Ρ‚ΠΈΡ† ΠœΠ°Π½Π°Π³Π΅Ρ€-Ρƒ.

Π‘Π»ΠΎΠΊΠΎΠ²ΠΈ сС ΠΌΠΎΠ³Ρƒ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΠΈ, Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€, слСдСћим ΠΊΠΎΠ΄ΠΎΠΌ:

with open('original.plc', 'rb') as f:
    plc = f.read()
blocks = []
for fname in ['OB1.bin', 'FC1.bin', 'FC2.bin', 'FC3.bin']:
    with open(fname, 'rb') as f:
        blocks.append(f.read())

i = plc.find(b'pp')
for block in blocks:
    plc = plc[:i] + block + plc[i+len(block):]
    i = plc.find(b'pp', i + 1)

with open('target.plc', 'wb') as f:
    f.write(plc)

АлСксСј јС ΠΊΡ€Π΅Π½ΡƒΠΎ ΠΌΠΎΠΆΠ΄Π° Ρ‚Π΅ΠΆΠΈΠΌ, Π°Π»ΠΈ ΠΈΠΏΠ°ΠΊ исправним ΠΏΡƒΡ‚Π΅ΠΌ. ΠŸΡ€Π΅Ρ‚ΠΏΠΎΡΡ‚Π°Π²ΠΈΠ»ΠΈ смо Π΄Π° Ρ›Π΅ учСсници користити ΠΠ΅Ρ‚Π’ΠΎΠŸΠ»Ρ†Π‘ΠΈΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌ ΠΊΠ°ΠΊΠΎ Π±ΠΈ ΠŸΠ»Ρ†Π‘ΠΈΠΌ ΠΌΠΎΠ³Π°ΠΎ Π΄Π° ΠΊΠΎΠΌΡƒΠ½ΠΈΡ†ΠΈΡ€Π° ΠΏΡ€Π΅ΠΊΠΎ ΠΌΡ€Π΅ΠΆΠ΅, ΡƒΡ‡ΠΈΡ‚Π°Π²Π° Π±Π»ΠΎΠΊΠΎΠ²Π΅ Ρƒ ΠŸΠ»Ρ†Π‘ΠΈΠΌ ΠΏΡ€Π΅ΠΊΠΎ Π‘Π½Π°ΠΏ7, Π° Π·Π°Ρ‚ΠΈΠΌ ΠΏΡ€Π΅ΡƒΠ·ΠΈΠΌΠ° ΠΎΠ²Π΅ Π±Π»ΠΎΠΊΠΎΠ²Π΅ ΠΊΠ°ΠΎ ΠΏΡ€ΠΎΡ˜Π΅ΠΊΠ°Ρ‚ са ΠŸΠ»Ρ†Π‘ΠΈΠΌ-Π° користСћи Ρ€Π°Π·Π²ΠΎΡ˜Π½ΠΎ ΠΎΠΊΡ€ΡƒΠΆΠ΅ΡšΠ΅.

ΠžΡ‚Π²Π°Ρ€Π°ΡšΠ΅ΠΌ Ρ€Π΅Π·ΡƒΠ»Ρ‚ΡƒΡ˜ΡƒΡ›Π΅ Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ΅ Ρƒ Π‘7-ΠŸΠ»Ρ†Π‘ΠΈΠΌ-Ρƒ, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΠΈ прСписанС Π±Π»ΠΎΠΊΠΎΠ²Π΅ користСћи Π‘ΠΈΠΌΠ°Ρ‚ΠΈΡ† ΠœΠ°Π½Π°Π³Π΅Ρ€. Π“Π»Π°Π²Π½Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡ˜Π΅ ΡƒΠΏΡ€Π°Π²Ρ™Π°ΡšΠ° ΡƒΡ€Π΅Ρ’Π°Ρ˜Π΅ΠΌ су снимљСнС Ρƒ Π±Π»ΠΎΠΊΡƒ Π€Π¦1. Од посСбнС паТњС јС ΠΏΡ€ΠΎΠΌΠ΅Π½Ρ™ΠΈΠ²Π° #Π’Π•ΠœΠŸ0, која ΠΊΠ°Π΄Π° јС ΡƒΠΊΡ™ΡƒΡ‡Π΅Π½Π° Ρ‡ΠΈΠ½ΠΈ сС Π΄Π° поставља ΠŸΠ›Π¦ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Ρƒ Π½Π° Ρ€ΡƒΡ‡Π½ΠΈ Ρ€Π΅ΠΆΠΈΠΌ Π½Π° основу врСдности М2.2 ΠΈ М2.3 Π±ΠΈΡ‚Π° ΠΌΠ΅ΠΌΠΎΡ€ΠΈΡ˜Π΅. ВрСдност #Π’Π•ΠœΠŸ0 јС постављСна Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡ˜ΠΎΠΌ Π€Π¦3.

Π‘Ρ‚ΠΎΠΏΠ°ΠΌΠ° ΠΈΠ½Π΄ΡƒΡΡ‚Ρ€ΠΈΡ˜ΡΠΊΠΎΠ³ нинџС: ΠΊΠ°ΠΊΠΎ јС ΠŸΠ›Π¦ Ρ…Π°ΠΊΠΎΠ²Π°Π½ Π½Π° ΠŸΠΎΡΠΈΡ‚ΠΈΠ²Π΅ Π₯Π°Ρ†ΠΊ Даис 9

Π”Π° бистС Ρ€Π΅ΡˆΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΎ јС Π΄Π° Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€Π°Ρ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡ˜Ρƒ Π€Π¦3 ΠΈ Ρ€Π°Π·ΡƒΠΌΠ΅Ρ‚Π΅ ΡˆΡ‚Π° Ρ‚Ρ€Π΅Π±Π° Π΄Π° сС ΡƒΡ€Π°Π΄ΠΈ Π΄Π° Π±ΠΈ Π²Ρ€Π°Ρ‚ΠΈΠ»Π° Π»ΠΎΠ³ΠΈΡ‡Π½Ρƒ.

Π‘Π»ΠΎΠΊΠΎΠ²ΠΈ Π·Π° ΠΎΠ±Ρ€Π°Π΄Ρƒ ΠŸΠ›Π¦ сигнала Π½Π° ΡˆΡ‚Π°Π½Π΄Ρƒ Π›ΠΎΠ² Π‘Π΅Ρ†ΡƒΡ€ΠΈΡ‚ΠΈ Π½Π° мСсту Ρ‚Π°ΠΊΠΌΠΈΡ‡Π΅ΡšΠ° Π±ΠΈΠ»ΠΈ су распорСђСни Π½Π° сличан Π½Π°Ρ‡ΠΈΠ½, Π°Π»ΠΈ Π΄Π° Π±ΠΈ сС подСсила врСдност ΠΏΡ€ΠΎΠΌΠ΅Π½Ρ™ΠΈΠ²Π΅ #Π’Π•ΠœΠŸ0, Π±ΠΈΠ»ΠΎ јС Π΄ΠΎΠ²ΠΎΡ™Π½ΠΎ уписати Π»ΠΈΠ½ΠΈΡ˜Ρƒ ΠΌΠΈ ниња Π²Π°ΠΈ Ρƒ Π”Π‘1 Π±Π»ΠΎΠΊ. ΠŸΡ€ΠΎΠ²Π΅Ρ€Π° врСдности Ρƒ Π±Π»ΠΎΠΊΡƒ Π±ΠΈΠ»Π° јС Ρ˜Π΅Π΄Π½ΠΎΡΡ‚Π°Π²Π½Π° ΠΈ нијС Π·Π°Ρ…Ρ‚Π΅Π²Π°Π»Π° Π΄ΡƒΠ±ΠΎΠΊΠΎ познавањС јСзика ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°ΡšΠ° Π±Π»ΠΎΠΊΠ°. ΠžΡ‡ΠΈΠ³Π»Π΅Π΄Π½ΠΎ, Π½Π° Π½ΠΈΠ²ΠΎΡƒ високС бСзбСдности, ΠΏΠΎΡΡ‚ΠΈΠ·Π°ΡšΠ΅ Ρ€ΡƒΡ‡Π½Π΅ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅ Ρ›Π΅ Π±ΠΈΡ‚ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Ρ‚Π΅ΠΆΠ΅ ΠΈ Π½Π΅ΠΎΠΏΡ…ΠΎΠ΄Π½ΠΎ јС Ρ€Π°Π·ΡƒΠΌΠ΅Ρ‚ΠΈ Π·Π°ΠΌΡ€ΡˆΠ΅Π½ΠΎΡΡ‚ΠΈ Π‘Π’Π› јСзика (јСдан ΠΎΠ΄ Π½Π°Ρ‡ΠΈΠ½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°ΡšΠ° Π‘7 ΠŸΠ›Π¦-Π°).

Π Π΅Π²Π΅Ρ€Π·Π½ΠΈ Π±Π»ΠΎΠΊ Π€Π¦3

Π‘Π°Π΄Ρ€ΠΆΠ°Ρ˜ Π€Π¦3 Π±Π»ΠΎΠΊΠ° Ρƒ Π‘Π’Π› ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Ρ™Π°ΡšΡƒ:

      L     B#16#0
      T     #TEMP13
      T     #TEMP15
      L     P#DBX 0.0
      T     #TEMP4
      CLR   
      =     #TEMP14
M015: L     #TEMP4
      LAR1  
      OPN   DB   100
      L     DBLG
      TAR1  
      <=D   
      JC    M016
      L     DW#16#0
      T     #TEMP0
      L     #TEMP6
      L     W#16#0
      <>I   
      JC    M00d
      L     P#DBX 0.0
      LAR1  
M00d: L     B [AR1,P#0.0]
      T     #TEMP5
      L     W#16#1
      ==I   
      JC    M007
      L     #TEMP5
      L     W#16#2
      ==I   
      JC    M008
      L     #TEMP5
      L     W#16#3
      ==I   
      JC    M00f
      L     #TEMP5
      L     W#16#4
      ==I   
      JC    M00e
      L     #TEMP5
      L     W#16#5
      ==I   
      JC    M011
      L     #TEMP5
      L     W#16#6
      ==I   
      JC    M012
      JU    M010
M007: +AR1  P#1.0
      L     P#DBX 0.0
      LAR2  
      L     B [AR1,P#0.0]
      L     C#8
      *I    
      +AR2  
      +AR1  P#1.0
      L     B [AR1,P#0.0]
      JL    M003
      JU    M001
      JU    M002
      JU    M004
M003: JU    M005
M001: OPN   DB   101
      L     B [AR2,P#0.0]
      T     #TEMP0
      JU    M006
M002: OPN   DB   101
      L     B [AR2,P#0.0]
      T     #TEMP1
      JU    M006
M004: OPN   DB   101
      L     B [AR2,P#0.0]
      T     #TEMP2
      JU    M006
M00f: +AR1  P#1.0
      L     B [AR1,P#0.0]
      L     C#8
      *I    
      T     #TEMP11
      +AR1  P#1.0
      L     B [AR1,P#0.0]
      T     #TEMP7
      L     P#M 100.0
      LAR2  
      L     #TEMP7
      L     C#8
      *I    
      +AR2  
      TAR2  #TEMP9
      TAR1  #TEMP4
      OPN   DB   101
      L     P#DBX 0.0
      LAR1  
      L     #TEMP11
      +AR1  
      LAR2  #TEMP9
      L     B [AR2,P#0.0]
      T     B [AR1,P#0.0]
      L     #TEMP4
      LAR1  
      JU    M006
M008: +AR1  P#1.0
      L     B [AR1,P#0.0]
      T     #TEMP3
      +AR1  P#1.0
      L     B [AR1,P#0.0]
      JL    M009
      JU    M00b
      JU    M00a
      JU    M00c
M009: JU    M005
M00b: L     #TEMP3
      T     #TEMP0
      JU    M006
M00a: L     #TEMP3
      T     #TEMP1
      JU    M006
M00c: L     #TEMP3
      T     #TEMP2
      JU    M006
M00e: +AR1  P#1.0
      L     B [AR1,P#0.0]
      T     #TEMP7
      L     P#M 100.0
      LAR2  
      L     #TEMP7
      L     C#8
      *I    
      +AR2  
      TAR2  #TEMP9
      +AR1  P#1.0
      L     B [AR1,P#0.0]
      T     #TEMP8
      L     P#M 100.0
      LAR2  
      L     #TEMP8
      L     C#8
      *I    
      +AR2  
      TAR2  #TEMP10
      TAR1  #TEMP4
      LAR1  #TEMP9
      LAR2  #TEMP10
      L     B [AR1,P#0.0]
      L     B [AR2,P#0.0]
      AW    
      INVI  
      T     #TEMP12
      L     B [AR1,P#0.0]
      L     B [AR2,P#0.0]
      OW    
      L     #TEMP12
      AW    
      T     B [AR1,P#0.0]
      L     DW#16#0
      T     #TEMP0
      L     MB   101
      T     #TEMP1
      L     MB   102
      T     #TEMP2
      L     #TEMP4
      LAR1  
      JU    M006
M011: +AR1  P#1.0
      L     B [AR1,P#0.0]
      T     #TEMP7
      L     P#M 100.0
      LAR2  
      L     #TEMP7
      L     C#8
      *I    
      +AR2  
      TAR2  #TEMP9
      +AR1  P#1.0
      L     B [AR1,P#0.0]
      T     #TEMP8
      L     P#M 100.0
      LAR2  
      L     #TEMP8
      L     C#8
      *I    
      +AR2  
      TAR2  #TEMP10
      TAR1  #TEMP4
      LAR1  #TEMP9
      LAR2  #TEMP10
      L     B [AR1,P#0.0]
      L     B [AR2,P#0.0]
      -I    
      T     B [AR1,P#0.0]
      L     DW#16#0
      T     #TEMP0
      L     MB   101
      T     #TEMP1
      L     MB   102
      T     #TEMP2
      L     #TEMP4
      LAR1  
      JU    M006
M012: L     #TEMP15
      INC   1
      T     #TEMP15
      +AR1  P#1.0
      L     B [AR1,P#0.0]
      T     #TEMP7
      L     P#M 100.0
      LAR2  
      L     #TEMP7
      L     C#8
      *I    
      +AR2  
      TAR2  #TEMP9
      +AR1  P#1.0
      L     B [AR1,P#0.0]
      T     #TEMP8
      L     P#M 100.0
      LAR2  
      L     #TEMP8
      L     C#8
      *I    
      +AR2  
      TAR2  #TEMP10
      TAR1  #TEMP4
      LAR1  #TEMP9
      LAR2  #TEMP10
      L     B [AR1,P#0.0]
      L     B [AR2,P#0.0]
      ==I   
      JCN   M013
      JU    M014
M013: L     P#DBX 0.0
      LAR1  
      T     #TEMP4
      L     B#16#0
      T     #TEMP6
      JU    M006
M014: L     #TEMP4
      LAR1  
      L     #TEMP13
      L     L#1
      +I    
      T     #TEMP13
      JU    M006
M006: L     #TEMP0
      T     MB   100
      L     #TEMP1
      T     MB   101
      L     #TEMP2
      T     MB   102
      +AR1  P#1.0
      L     #TEMP6
      +     1
      T     #TEMP6
      JU    M005
M010: L     P#DBX 0.0
      LAR1  
      L     0
      T     #TEMP6
      TAR1  #TEMP4
M005: TAR1  #TEMP4
      CLR   
      =     #TEMP16
      L     #TEMP13
      L     L#20
      ==I   
      S     #TEMP16
      L     #TEMP15
      ==I   
      A     #TEMP16
      JC    M017
      L     #TEMP13
      L     L#20
      <I    
      S     #TEMP16
      L     #TEMP15
      ==I   
      A     #TEMP16
      JC    M018
      JU    M019
M017: SET   
      =     #TEMP14
      JU    M016
M018: CLR   
      =     #TEMP14
      JU    M016
M019: CLR   
      O     #TEMP14
      =     #RET_VAL
      JU    M015
M016: CLR   
      O     #TEMP14
      =     #RET_VAL

Код јС ΠΏΡ€ΠΈΠ»ΠΈΡ‡Π½ΠΎ Π΄ΡƒΠ³Π°Ρ‡Π°ΠΊ ΠΈ Π½Π΅ΠΊΠΎΠΌΠ΅ ΠΊΠΎ нијС ΡƒΠΏΠΎΠ·Π½Π°Ρ‚ са Π‘Π’Π›-ΠΎΠΌ ΠΌΠΎΠΆΠ΅ ΠΈΠ·Π³Π»Π΅Π΄Π°Ρ‚ΠΈ ΠΊΠΎΠΌΠΏΠ»ΠΈΠΊΠΎΠ²Π°Π½ΠΎ. НСма смисла Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€Π°Ρ‚ΠΈ сваку ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ˜Ρƒ Ρƒ ΠΎΠΊΠ²ΠΈΡ€Ρƒ ΠΎΠ²ΠΎΠ³ Ρ‡Π»Π°Π½ΠΊΠ°; Π΄Π΅Ρ‚Π°Ρ™Π½Π° упутства ΠΈ могућности Π‘Π’Π› јСзика ΠΌΠΎΠ³Ρƒ сС Π½Π°Ρ›ΠΈ Ρƒ ΠΎΠ΄Π³ΠΎΠ²Π°Ρ€Π°Ρ˜ΡƒΡ›Π΅ΠΌ ΠΏΡ€ΠΈΡ€ΡƒΡ‡Π½ΠΈΠΊΡƒ: Листа изјава (Π‘Π’Π›) Π·Π° Π‘7-300 ΠΈ Π‘7-400 ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°ΡšΠ΅. ОвдС Ρ›Ρƒ прСдставити исти ΠΊΠΎΠ΄ Π½Π°ΠΊΠΎΠ½ ΠΎΠ±Ρ€Π°Π΄Π΅ - ΠΏΡ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°ΡšΠ° ΠΎΠ·Π½Π°ΠΊΠ° ΠΈ ΠΏΡ€ΠΎΠΌΠ΅Π½Ρ™ΠΈΠ²ΠΈΡ… ΠΈ додавања ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€Π° који ΠΎΠΏΠΈΡΡƒΡ˜Ρƒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚Π°ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ˜Π΅ ΠΈ Π½Π΅ΠΊΠ΅ Π‘Π’Π› Ρ˜Π΅Π·ΠΈΡ‡ΠΊΠ΅ ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ˜Π΅. ΠžΠ΄ΠΌΠ°Ρ… Π΄Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ‚ΠΈΠΌ Π΄Π° Π΄ΠΎΡ‚ΠΈΡ‡Π½ΠΈ Π±Π»ΠΎΠΊ садрТи Π²ΠΈΡ€Ρ‚ΡƒΠ΅Π»Π½Ρƒ ΠΌΠ°ΡˆΠΈΠ½Ρƒ која ΠΈΠ·Π²Ρ€ΡˆΠ°Π²Π° Π½Π΅ΠΊΠΈ Π±Π°Ρ˜Ρ‚ ΠΊΠΎΠ΄ који сС Π½Π°Π»Π°Π·ΠΈ Ρƒ Π±Π»ΠΎΠΊΡƒ Π”Π‘100, Ρ‡ΠΈΡ˜ΠΈ ΡΠ°Π΄Ρ€ΠΆΠ°Ρ˜ Π·Π½Π°ΠΌΠΎ. Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ˜Π΅ Π²ΠΈΡ€Ρ‚ΡƒΠ΅Π»Π½Π΅ машинС сС ΡΠ°ΡΡ‚ΠΎΡ˜Π΅ ΠΎΠ΄ 1 Π±Π°Ρ˜Ρ‚Π° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠ³ ΠΊΠΎΠ΄Π° ΠΈ Π±Π°Ρ˜Ρ‚ΠΎΠ²Π° Π°Ρ€Π³ΡƒΠΌΠ΅Π½Π°Ρ‚Π°, ΠΏΠΎ јСдан Π±Π°Ρ˜Ρ‚ Π·Π° сваки Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚. Π‘Π²Π° Ρ€Π°Π·ΠΌΠ°Ρ‚Ρ€Π°Π½Π° упутства ΠΈΠΌΠ°Ρ˜Ρƒ Π΄Π²Π° Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°; ΡšΠΈΡ…ΠΎΠ²Π΅ врСдности сам ΠΎΠ·Π½Π°Ρ‡ΠΈΠΎ Ρƒ ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΌΠ° ΠΊΠ°ΠΎ Кс ΠΈ И.

Π¨ΠΈΡ„Ρ€Π° Π½Π°ΠΊΠΎΠ½ ΠΎΠ±Ρ€Π°Π΄Π΅]

# Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…
      L     B#16#0
      T     #CHECK_N        # Π‘Ρ‡Π΅Ρ‚Ρ‡ΠΈΠΊ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΠΏΡ€ΠΎΠΉΠ΄Π΅Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΎΠΊ
      T     #COUNTER_N      # Π‘Ρ‡Π΅Ρ‚Ρ‡ΠΈΠΊ ΠΎΠ±Ρ‰Π΅Π³ΠΎ количСства ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΎΠΊ
      L     P#DBX 0.0
      T     #POINTER        # Π£ΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ
      CLR   
      =     #PRE_RET_VAL

# Основной Ρ†ΠΈΠΊΠ» Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π° Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄Π°
LOOP: L     #POINTER
      LAR1  
      OPN   DB   100
      L     DBLG
      TAR1  
      <=D                   # ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π²Ρ‹Ρ…ΠΎΠ΄Π° указатСля Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹
      JC    FINISH
      L     DW#16#0
      T     #REG0
      L     #TEMP6
      L     W#16#0
      <>I   
      JC    M00d
      L     P#DBX 0.0
      LAR1  

# ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ switch - case для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΎΠΏΠΊΠΎΠ΄ΠΎΠ²
M00d: L     B [AR1,P#0.0]
      T     #OPCODE
      L     W#16#1
      ==I   
      JC    OPCODE_1
      L     #OPCODE
      L     W#16#2
      ==I   
      JC    OPCODE_2
      L     #OPCODE
      L     W#16#3
      ==I   
      JC    OPCODE_3
      L     #OPCODE
      L     W#16#4
      ==I   
      JC    OPCODE_4
      L     #OPCODE
      L     W#16#5
      ==I   
      JC    OPCODE_5
      L     #OPCODE
      L     W#16#6
      ==I   
      JC    OPCODE_6
      JU    OPCODE_OTHER

# ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΎΠΏΠΊΠΎΠ΄Π° 01: Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° значСния ΠΈΠ· DB101[X] Π² рСгистр Y
# OP01(X, Y): REG[Y] = DB101[X]
OPCODE_1: +AR1  P#1.0
      L     P#DBX 0.0
      LAR2  
      L     B [AR1,P#0.0]   # Π—Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° X (индСкс Π² DB101)
      L     C#8
      *I    
      +AR2  
      +AR1  P#1.0
      L     B [AR1,P#0.0]   # Π—Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° Y (индСкс рСгистра)
      JL    M003            # Аналог switch - case Π½Π° основС значСния Y
      JU    M001            # для Π²Ρ‹Π±ΠΎΡ€Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ рСгистра для записи.
      JU    M002            # ΠŸΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ конструкции ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΈ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ…
      JU    M004            # опСрациях Π½ΠΈΠΆΠ΅ для Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹Ρ… Ρ†Π΅Π»Π΅ΠΉ
M003: JU    LOOPEND
M001: OPN   DB   101
      L     B [AR2,P#0.0]
      T     #REG0           # Π—Π°ΠΏΠΈΡΡŒ значСния DB101[X] Π² REG[0]
      JU    PRE_LOOPEND
M002: OPN   DB   101
      L     B [AR2,P#0.0]
      T     #REG1           # Π—Π°ΠΏΠΈΡΡŒ значСния DB101[X] Π² REG[1]
      JU    PRE_LOOPEND
M004: OPN   DB   101
      L     B [AR2,P#0.0]
      T     #REG2           # Π—Π°ΠΏΠΈΡΡŒ значСния DB101[X] Π² REG[2]
      JU    PRE_LOOPEND

# ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΎΠΏΠΊΠΎΠ΄Π° 02: Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° значСния X Π² рСгистр Y
# OP02(X, Y): REG[Y] = X
OPCODE_2: +AR1  P#1.0
      L     B [AR1,P#0.0]
      T     #TEMP3
      +AR1  P#1.0
      L     B [AR1,P#0.0]
      JL    M009
      JU    M00b
      JU    M00a
      JU    M00c
M009: JU    LOOPEND
M00b: L     #TEMP3
      T     #REG0
      JU    PRE_LOOPEND
M00a: L     #TEMP3
      T     #REG1
      JU    PRE_LOOPEND
M00c: L     #TEMP3
      T     #REG2
      JU    PRE_LOOPEND

# Опкод 03 Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅, поэтому пропустим Π΅Π³ΠΎ
...

# ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΎΠΏΠΊΠΎΠ΄Π° 04: сравнСниС рСгистров X ΠΈ Y
# OP04(X, Y): REG[0] = 0; REG[X] = (REG[X] == REG[Y])
OPCODE_4: +AR1  P#1.0
      L     B [AR1,P#0.0]
      T     #TEMP7          # ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ - X
      L     P#M 100.0
      LAR2  
      L     #TEMP7
      L     C#8
      *I    
      +AR2  
      TAR2  #TEMP9          # REG[X]
      +AR1  P#1.0
      L     B [AR1,P#0.0]
      T     #TEMP8
      L     P#M 100.0
      LAR2  
      L     #TEMP8
      L     C#8
      *I    
      +AR2  
      TAR2  #TEMP10         # REG[Y]
      TAR1  #POINTER
      LAR1  #TEMP9          # REG[X]
      LAR2  #TEMP10         # REG[Y]
      L     B [AR1,P#0.0]
      L     B [AR2,P#0.0]
      AW    
      INVI  
      T     #TEMP12         # ~(REG[Y] & REG[X])
      L     B [AR1,P#0.0]
      L     B [AR2,P#0.0]
      OW    
      L     #TEMP12
      AW                    # (~(REG[Y] & REG[X])) & (REG[Y] | REG[X]) - Π°Π½Π°Π»ΠΎΠ³ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π½Π° равСнство
      T     B [AR1,P#0.0]
      L     DW#16#0
      T     #REG0
      L     MB   101
      T     #REG1
      L     MB   102
      T     #REG2
      L     #POINTER
      LAR1  
      JU    PRE_LOOPEND

# ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΎΠΏΠΊΠΎΠ΄Π° 05: Π²Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅ рСгистра Y ΠΈΠ· X
# OP05(X, Y): REG[0] = 0; REG[X] = REG[X] - REG[Y]
OPCODE_5: +AR1  P#1.0
      L     B [AR1,P#0.0]
      T     #TEMP7
      L     P#M 100.0
      LAR2  
      L     #TEMP7
      L     C#8
      *I    
      +AR2  
      TAR2  #TEMP9          # REG[X]
      +AR1  P#1.0
      L     B [AR1,P#0.0]
      T     #TEMP8
      L     P#M 100.0
      LAR2  
      L     #TEMP8
      L     C#8
      *I    
      +AR2  
      TAR2  #TEMP10         # REG[Y]
      TAR1  #POINTER
      LAR1  #TEMP9
      LAR2  #TEMP10
      L     B [AR1,P#0.0]
      L     B [AR2,P#0.0]
      -I                    # ACCU1 = ACCU2 - ACCU1, REG[X] - REG[Y]
      T     B [AR1,P#0.0]
      L     DW#16#0
      T     #REG0
      L     MB   101
      T     #REG1
      L     MB   102
      T     #REG2
      L     #POINTER
      LAR1  
      JU    PRE_LOOPEND

# ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΎΠΏΠΊΠΎΠ΄Π° 06: ΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚ #CHECK_N ΠΏΡ€ΠΈ равСнствС рСгистров X ΠΈ Y
# OP06(X, Y): #CHECK_N += (1 if REG[X] == REG[Y] else 0)
OPCODE_6: L     #COUNTER_N
      INC   1
      T     #COUNTER_N
      +AR1  P#1.0
      L     B [AR1,P#0.0]
      T     #TEMP7          #  REG[X]     
      L     P#M 100.0
      LAR2  
      L     #TEMP7
      L     C#8
      *I    
      +AR2  
      TAR2  #TEMP9          #  REG[X]  
      +AR1  P#1.0
      L     B [AR1,P#0.0]
      T     #TEMP8
      L     P#M 100.0
      LAR2  
      L     #TEMP8
      L     C#8
      *I    
      +AR2  
      TAR2  #TEMP10         # REG[Y]
      TAR1  #POINTER
      LAR1  #TEMP9          # REG[Y]
      LAR2  #TEMP10         # REG[X]
      L     B [AR1,P#0.0]
      L     B [AR2,P#0.0]
      ==I   
      JCN   M013
      JU    M014
M013: L     P#DBX 0.0
      LAR1  
      T     #POINTER
      L     B#16#0
      T     #TEMP6
      JU    PRE_LOOPEND
M014: L     #POINTER
      LAR1  
# Π˜Π½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚ значСния #CHECK_N
      L     #CHECK_N
      L     L#1
      +I    
      T     #CHECK_N
      JU    PRE_LOOPEND

PRE_LOOPEND: L     #REG0
      T     MB   100
      L     #REG1
      T     MB   101
      L     #REG2
      T     MB   102
      +AR1  P#1.0
      L     #TEMP6
      +     1
      T     #TEMP6
      JU    LOOPEND

OPCODE_OTHER: L     P#DBX 0.0
      LAR1  
      L     0
      T     #TEMP6
      TAR1  #POINTER

LOOPEND: TAR1  #POINTER
      CLR   
      =     #TEMP16
      L     #CHECK_N
      L     L#20
      ==I   
      S     #TEMP16
      L     #COUNTER_N
      ==I   
      A     #TEMP16
# ВсС ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΏΡ€ΠΎΠΉΠ΄Π΅Π½Ρ‹, Ссли #CHECK_N == #COUNTER_N == 20
      JC    GOOD
      L     #CHECK_N
      L     L#20
      <I    
      S     #TEMP16
      L     #COUNTER_N
      ==I   
      A     #TEMP16
      JC    FAIL
      JU    M019
GOOD: SET   
      =     #PRE_RET_VAL
      JU    FINISH
FAIL: CLR   
      =     #PRE_RET_VAL
      JU    FINISH
M019: CLR   
      O     #PRE_RET_VAL
      =     #RET_VAL
      JU    LOOP
FINISH: CLR   
      O     #PRE_RET_VAL
      =     #RET_VAL

ΠŸΠΎΡˆΡ‚ΠΎ стС Π΄ΠΎΠ±ΠΈΠ»ΠΈ ΠΈΠ΄Π΅Ρ˜Ρƒ ΠΎ упутствима Π²ΠΈΡ€Ρ‚ΡƒΠ΅Π»Π½Π΅ машинС, Ρ…Π°Ρ˜Π΄Π΅ Π΄Π° напишСмо ΠΌΠ°Π»ΠΈ дисамблСр Π·Π° Ρ€Π°ΡˆΡ‡Π»Π°ΡšΠΈΠ²Π°ΡšΠ΅ Π±Π°Ρ˜Ρ‚ΠΊΠΎΠ΄Π° Ρƒ Π”Π‘100 Π±Π»ΠΎΠΊΡƒ:

import string
alph = string.ascii_letters + string.digits

with open('DB100.bin', 'rb') as f:
    m = f.read()

pc = 0

while pc < len(m):
    op = m[pc]
    if op == 1:
        print('R{} = DB101[{}]'.format(m[pc + 2], m[pc + 1]))
        pc += 3
    elif op == 2:
        c = chr(m[pc + 1])
        c = c if c in alph else '?'
        print('R{} = {:02x} ({})'.format(m[pc + 2], m[pc + 1], c))
        pc += 3
    elif op == 4:
        print('R0 = 0; R{} = (R{} == R{})'.format(
            m[pc + 1], m[pc + 1], m[pc + 2]))
        pc += 3
    elif op == 5:
        print('R0 = 0; R{} = R{} - R{}'.format(
            m[pc + 1], m[pc + 1], m[pc + 2]))
        pc += 3
    elif op == 6:
        print('CHECK (R{} == R{})n'.format(
            m[pc + 1], m[pc + 2]))
        pc += 3
    else:
        print('unk opcode {}'.format(op))
        break

Као Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚, добијамо слСдСћи ΠΊΠΎΠ΄ Π²ΠΈΡ€Ρ‚ΡƒΠ΅Π»Π½Π΅ машинС:

Код Π²ΠΈΡ€Ρ‚ΡƒΠ΅Π»Π½Π΅ машинС

R1 = DB101[0]
R2 = 6e (n)
R0 = 0; R1 = (R1 == R2)
CHECK (R1 == R0)

R1 = DB101[1]
R2 = 10 (?)
R0 = 0; R1 = R1 - R2
R2 = 20 (?)
R0 = 0; R1 = R1 - R2
CHECK (R1 == R0)

R1 = DB101[2]
R2 = 77 (w)
R0 = 0; R1 = (R1 == R2)
CHECK (R1 == R0)

R1 = DB101[3]
R2 = 0a (?)
R0 = 0; R1 = R1 - R2
R2 = 16 (?)
R0 = 0; R1 = R1 - R2
CHECK (R1 == R0)

R1 = DB101[4]
R2 = 75 (u)
R0 = 0; R1 = (R1 == R2)
CHECK (R1 == R0)

R1 = DB101[5]
R2 = 0a (?)
R0 = 0; R1 = R1 - R2
R2 = 16 (?)
R0 = 0; R1 = R1 - R2
CHECK (R1 == R0)

R1 = DB101[6]
R2 = 34 (4)
R0 = 0; R1 = (R1 == R2)
CHECK (R1 == R0)

R1 = DB101[7]
R2 = 26 (?)
R0 = 0; R1 = R1 - R2
R2 = 4c (L)
R0 = 0; R1 = R1 - R2
CHECK (R1 == R0)

R1 = DB101[8]
R2 = 33 (3)
R0 = 0; R1 = (R1 == R2)
CHECK (R1 == R0)

R1 = DB101[9]
R2 = 0a (?)
R0 = 0; R1 = R1 - R2
R2 = 16 (?)
R0 = 0; R1 = R1 - R2
CHECK (R1 == R0)

R1 = DB101[10]
R2 = 37 (7)
R0 = 0; R1 = (R1 == R2)
CHECK (R1 == R0)

R1 = DB101[11]
R2 = 22 (?)
R0 = 0; R1 = R1 - R2
R2 = 46 (F)
R0 = 0; R1 = R1 - R2
CHECK (R1 == R0)

R1 = DB101[12]
R2 = 33 (3)
R0 = 0; R1 = (R1 == R2)
CHECK (R1 == R0)

R1 = DB101[13]
R2 = 0a (?)
R0 = 0; R1 = R1 - R2
R2 = 16 (?)
R0 = 0; R1 = R1 - R2
CHECK (R1 == R0)

R1 = DB101[14]
R2 = 6d (m)
R0 = 0; R1 = (R1 == R2)
CHECK (R1 == R0)

R1 = DB101[15]
R2 = 11 (?)
R0 = 0; R1 = R1 - R2
R2 = 23 (?)
R0 = 0; R1 = R1 - R2
CHECK (R1 == R0)

R1 = DB101[16]
R2 = 35 (5)
R0 = 0; R1 = (R1 == R2)
CHECK (R1 == R0)

R1 = DB101[17]
R2 = 12 (?)
R0 = 0; R1 = R1 - R2
R2 = 25 (?)
R0 = 0; R1 = R1 - R2
CHECK (R1 == R0)

R1 = DB101[18]
R2 = 33 (3)
R0 = 0; R1 = (R1 == R2)
CHECK (R1 == R0)

R1 = DB101[19]
R2 = 26 (?)
R0 = 0; R1 = R1 - R2
R2 = 4c (L)
R0 = 0; R1 = R1 - R2
CHECK (R1 == R0)

Као ΡˆΡ‚ΠΎ Π²ΠΈΠ΄ΠΈΡ‚Π΅, овај ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌ Ρ˜Π΅Π΄Π½ΠΎΡΡ‚Π°Π²Π½ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€Π°Π²Π° сваки ΠΊΠ°Ρ€Π°ΠΊΡ‚Π΅Ρ€ ΠΈΠ· Π”Π‘101 Π΄Π° Π»ΠΈ јС јСднак ΠΎΠ΄Ρ€Π΅Ρ’Π΅Π½ΠΎΡ˜ врСдности. ΠšΠΎΠ½Π°Ρ‡Π½Π° линија Π·Π° ΠΏΡ€ΠΎΠ»Π°Π·Π°ΠΊ свих ΠΏΡ€ΠΎΠ²Π΅Ρ€Π° јС: Π½0Π² Ρƒ 4Ρ€3 7Ρ…3 ΠΌ4573Ρ€. Ако сС ΠΎΠ²Π° линија постави Ρƒ Π±Π»ΠΎΠΊ Π”Π‘101, Ρ‚Π°Π΄Π° сС Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π° Ρ€ΡƒΡ‡Π½Π° ΠŸΠ›Π¦ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π° ΠΈ Π±ΠΈΡ›Π΅ ΠΌΠΎΠ³ΡƒΡ›Π΅ Сксплодирати ΠΈΠ»ΠΈ испухати Π±Π°Π»ΠΎΠ½.


Π’ΠΎ јС свС! АлСксСј јС ΠΏΠΎΠΊΠ°Π·Π°ΠΎ висок Π½ΠΈΠ²ΠΎ знања Π΄ΠΎΡΡ‚ΠΎΡ˜Π°Π½ ΠΈΠ½Π΄ΡƒΡΡ‚Ρ€ΠΈΡ˜ΡΠΊΠΎΠ³ нинџС :) ΠŸΠΎΠ±Π΅Π΄Π½ΠΈΠΊΡƒ смо послали Π½Π΅Π·Π°Π±ΠΎΡ€Π°Π²Π½Π΅ Π½Π°Π³Ρ€Π°Π΄Π΅. Π’Π΅Π»ΠΈΠΊΠΎ Ρ…Π²Π°Π»Π° свим учСсницима!

Π˜Π·Π²ΠΎΡ€: Π²Π²Π².Ρ…Π°Π±Ρ€.Ρ†ΠΎΠΌ

Π”ΠΎΠ΄Π°Ρ˜ ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€