21

Re: Assembler математичні дії

Олекссандрр написав:

але ці умови С>0 ТО V=C+X4-X5, ЯКЩО С=0 ТО V=C+X4+X5, як що з ними робити я не розумію.Якщо не важко скажіть, який матеріл можно почитати, хоча б чпробую розібратися.

Якщо в ролі «фіксованої коми» використовувати ціле, то почитайте про команду cmp та команди умовного переходу (je, jg, jl та ін.) й безумовного переходу (jmp) — з їх допомогою можна організувати конструкцію вибору.

Подякували: leofun011

22

Re: Assembler математичні дії

ЛАБОРАТОРНА РОБОТА №2.
РЕАЛІЗАЦІЯ ДОДАВАННЯ ТА ВІДНІМАННЯ ЧИСЕЛ З ФІКСОВАНОЮ
КОМОЮ
Мета: Ознайомитися прийомами реалізації операцій додавання і
віднімання чисел в форматі з фіксованою комою.
2.1 Короткі теоретичні відомості
Принципи зберігання чисел з фіксованою комою
У сучасних ЕОМ загального призначення, як правило, використовуються
двійкові і двійково-десяткові позиційні системи числення. При цьому мають
місце два способи представлення в них чисел з фіксованою комою (крапкою) і з
плаваючою комою (крапкою).
При роботі з фіксованою комою оперують з правильними дробами, тобто
з числами, які по модулю строго менше одиниці.
При цьому застосовується природний запис числа у вигляді послідовності
цифр, у якій кома фіксована перед першим (старшим) цифровим розрядом.
Зліва від коми відводиться розряд (або два розряду) для зображення знака
числа. Прийнято наступні позначення знака числа: "+" = 0; "-" = 1.
Таким чином, в знаковому розряді розташований 0, якщо число
позитивне, і 1, якщо число від’ємне.
Приклад:
0,101101 - додатне число;
1,101101 - від'ємне число, що збігається за модулем з наведеним вище
позитивним числом.
Перевагами такого уявлення чисел є прості арифметичні операції, що
забезпечують високу швидкодію ЕОМ.
Недоліком уявлення чисел з фіксованою комою є невеликий діапазон
представлених чисел, який визначається виразом:
i
n
i
n 


2     2
1
,
15
де
n - кількість розрядів, призначених для дробової частини числа.
Можливо також переповнення розрядної сітки при додаванні чисел з
фіксованою комою з однаковими знаками, кожне з яких по модулю менше 1, а
сума по модулю більше або дорівнює 1. Переповнення розрядної сітки можливо
також при розподілі, якщо модуль діленого більше або дорівнює модулю
подільника.
Переповнення розрядної сітки проявляється в тому, що результат операції
(сума чи приватне),
  1

, тобто старший розряд результату операції
виявляється в знаковому розряді, що неприпустимо і вимагає зупинки
обчислювального процесу.
Можливий також «машинний нуль», тобто вихід старшого розряду числа,
рівного 1, за межі молодшого розряду розрядної сітки.
Приклади використання базових команд AVR Assembler
Команда LDI – завантажити безпосереднє значення
Опис:
Завантажується 8-разрядна константа в регістр від 16 до 31
Операція:
(i) Rd<-- K
Синтаксис Операнди: Лічильник програм:
(i) LDI Rd, K
16 < Rd < 31, 0 < K <
255
PC<-- + 1
Приклад:
clr r31 ; Очистити старший байт Z
ldi r30, $F0 ; Встановити $F0 до молодшого байту Z
lpm ; Завантажити константу з програми
Слів: 1 (2 байти)
Циклів: 1
16
Команда MOV - копіювати регістр
Опис:
Команда створює копію одного регістра в іншому регістрі. Вихідний регістр Rr
залишається незмінним, в регістр призначення Rd завантажується копія вмісту регістра Rr.
Операція:
(i) Rd<-- Rr
Синтаксис Операнди: Лічильник програм:
(i) MOV Rd, Rr 0 < d < 31, 0 < r <31 PC<-- + 1
Приклад:
mov r16, r0 ; Копіювати r0 в r16
callcheck ; Викликати підпрограму
. . .
checkcpi r16, $11 ; Порівняти r16 с $11
. . .
ret ; Повернутись з підпрограми
Слів: 1 (2 байта)
Циклів: 1
Команда NOP – виконати холосту команду
Опис:
Команда виконується за один цикл без виконання операції
(i) NOP
Синтаксис Операнди: Лічильник програм:
(i) NOP None PC<-- + 1
Приклад:
clr r16 ; Очистити r16
ser r17 ; Встановити r17
out $18, r16 ; Записати 0 в Порт B
nop ; Очікувати (пуста Операція)
out $18, r17 ; Записати 1 в Порт B
Слів: 1 (2 байти)
Циклів: 1
17
Команда ADD - AddwithoutCarry – Скласти без переносу
Опис:
Додавання двох регістрів без додавання вмісту прапора перенесення (С), розміщення
результату в регістрі призначення Rd.
Операція:
(i) Rd<- Rd + Rr
Синтаксис Операнди: Лічильник програм:
(i) ADD Rd, Rr 0 < d < 31, 0 < r < 31 PC < PC + 1
Приклад:
add r1,r2 ; Скласти r2 з r1 (r1=r1+r2)
adc r28,r28 ; Скласти r28 з собою (r28=r28+r28)
Слів: 1 (2 байти)
Циклів: 1
Команда SUB - відняти без переносу
Опис:
Віднімання вмісту регістра-джерела Rr з вмісту регістра Rd, розміщення результату в
регістрі призначення Rd.
Операція:
(i) Rd<-- Rd – Rr
Синтаксис Операнди: Лічильник програм:
(i) SUB Rd, Rr 16 < d < 31, 0 < r < 31 PC <- PC + 1
Приклад:
sub r13, r12 ; Відняти r12 з r13
brne noteq ; Перейти якщо r12 <> r13
noteq: nop ; Перейти за призначенням (пуста Операція)
Слів: 1 (2 байти)
Циклів: 1
Команда CP – порівняти
18
Опис:
Команда виконує порівняння вмісту двох регістрів Rd і Rr. Вміст регістрів не змінюється.
Після цієї команди можна виконувати будь-які умовні переходи.
Операція:
(i) Rd = Rr
Синтаксис Операнди: Лічильник програм:
(i) Cp Rd, Rr 0 < d < 31,0 < r < 31 PC <- PC + 1
Приклад:
cp r4, r19 ; Порівняти r4 с r19
brne noteq ; Перейти якщо r4 <> r19
. . .
noteq: nop ; Перейти за призначенням (пуста Операція)
Слів: 1 (2 байти)
Циклів: 1
Команда CPI – порівняти з константою
Опис:
Команда виконує порівняння вмісту регістра Rd з константою. Вміст регістра не
змінюється. Після цієї команди можна виконувати будь-які умовні переходи.
Операція:
(i) Rd = K
Синтаксис Операнди: Лічильник програм:
(i) CPI Rd, K 16 =< d =< 31, 0 < K <255 PC <- PC + 1
Приклад:
cpi r19, 3 ; Порівняти r19 с 3
brne error ; Перейти якщо r4 <> 3
. . .
error: nop ; Перейти за призначенням (пуста Операція)
Слів: 1 (2 байти)
Циклів: 1

X1+X2-X3=C, ЯКЩО С>0 ТО V=C+X4-X5, ЯКЩО С=0 ТО V=C+X4+X5

P.S.:Викладач сказав все є с методичці(тобто весть текст, що зверху).Можливо я помиляюсь і тут все Є, але мені потрібен хоча би приклад, як його зробити в ідеалі у AVRStudio 4.0, але хоча би денебуть.

23

Re: Assembler математичні дії

P.Y. написав:

З мого досвіду навчання на заочці. Як правило, є частина студентів, які постійно спілкуються між собою — імовірно, ядро їх вже десь збирається. І є студенти, які взагалі нікого не знають — якщо в них нема контактів інших студентів, то в них нема контактів інших студентів, організатори спілкування теж цих студентів не знають і не шукають. Як правило, такі студенти для вирішення додаткових питань вишукували своїх викладачів на парах стаціонару, але в наш час, коли занять на стаціонарі може і не бути, не дуже уявляю, кого, де і як їм шукати.

На початку семестру притомний заочник ходитиме принаймні перші декілька тижнів офлайн, аби зрозуміти що й до чого, хто з ким бухає як звати викладачів, звідки походить кожен його одногрупник, з ким є спільні інтереси етц.

24

Re: Assembler математичні дії

Отже, ви вивчаєте асемблер для AVR.  З яким я незнайомий — в асемблері для інтелівських процесорів, який я знаю, система команд інша. Порада вище про cmp  та jmp на цьому асемблері не працюватиме.

25

Re: Assembler математичні дії

frz написав:
P.Y. написав:

З мого досвіду навчання на заочці. Як правило, є частина студентів, які постійно спілкуються між собою — імовірно, ядро їх вже десь збирається. І є студенти, які взагалі нікого не знають — якщо в них нема контактів інших студентів, то в них нема контактів інших студентів, організатори спілкування теж цих студентів не знають і не шукають. Як правило, такі студенти для вирішення додаткових питань вишукували своїх викладачів на парах стаціонару, але в наш час, коли занять на стаціонарі може і не бути, не дуже уявляю, кого, де і як їм шукати.

На початку семестру притомний заочник ходитиме принаймні перші декілька тижнів офлайн, аби зрозуміти що й до чого, хто з ким бухає як звати викладачів, звідки походить кожен його одногрупник, з ким є спільні інтереси етц.

Ну а реальний заочник може мати роботу, де саме під час установочної сесії аврал. В принципі, з тих кількох днів начитки користі небагато — головне роздобути завдання, методички, список літератури. А далі все від студента залежить.

Подякували: leofun011

26

Re: Assembler математичні дії

Система команд AVR (англ. вікі) — можливо, стане в пригоді.

Подякували: leofun011

27

Re: Assembler математичні дії

P.Y. написав:

Система команд AVR (англ. вікі) — можливо, стане в пригоді.

Дякую хоть за якийсь матеріал.Спробую.

28 Востаннє редагувалося Firefox is dead (27.03.2023 12:06:32)

Re: Assembler математичні дії

Олекссандрр написав:
P.Y. написав:

Система команд AVR (англ. вікі) — можливо, стане в пригоді.

Дякую хоть за якийсь матеріал.Спробую.

в своїй відповіді https://replace.org.ua/post/181279/#p181279 я вказав ChatGPT яка напише ваші завдання за вас, як одне з можливих варіантів виконання вашого завдання
я так зрозумів вам потрібно дати посилання, тому ось https://chat.openai.com/chat

та й вас що в гуглі забанили?
давайте я вам допоможу
перейдіть за посиланням: https://googlethatforyou.com?q=%D0%BC%D … 0%B9%D0%B4

якщо вас дійсно забанили, використовуйте bing/yahoo/duckduckgo
забанили у всіх них?
використовуйте мережу Tor

кажу ж, ви - не стараєтесь

X1+X2-X3=C, ЯКЩО С>0 ТО V=C+X4-X5, ЯКЩО С=0 ТО V=C+X4+X5

ldi r16, 0x00      ; Load the constant 0 into register r16
lds r17, X1        ; Load X1 from memory into register r17
add r16, r17       ; Add X1 to the constant in r16

lds r18, X2        ; Load X2 from memory into register r18
add r16, r18       ; Add X2 to the value in r16

lds r19, X3        ; Load X3 from memory into register r19
sub r16, r19       ; Subtract X3 from the value in r16

sts C, r16         ; Store the result in the memory location for C

lds r20, C         ; Load the value of C from memory into register r20
cpi r20, 0         ; Compare the value in r20 with 0

brge greater_than_zero  ; Branch to the label "greater_than_zero" if C is greater than or equal to 0

lds r22, X4        ; Load X4 from memory into register r22
lds r23, X5        ; Load X5 from memory into register r23
add r22, r23       ; Add X4 and X5 together
sub r20, r22       ; Subtract the result from r20
sts V, r20         ; Store the result in the memory location for V
rjmp end           ; Jump to the end of the program

greater_than_zero:
lds r22, X4        ; Load X4 from memory into register r22
lds r23, X5        ; Load X5 from memory into register r23
add r22, r23       ; Add X4 and X5 together
add r20, r22       ; Add the result to r20
sts V, r20         ; Store the result in the memory location for V

end:

скидаєте це викладачу, кажете "ось тримайте" і він вам ставить заслужену 3, 4, або 5 (всерівно перевіряти не буде)
коментарі перекладете гугл перекладачем
ось посилання https://translate.google.com/

29

Re: Assembler математичні дії

Firefox is dead написав:

всерівно перевіряти не буде

"Оскільки цю лабу все одно ніхто не читатиме, то як матеріал для підшипників пропоную використати пластилін" (с)

(дисклеймер: часом, під настрій, все ж можуть почитати)

30 Востаннє редагувалося Firefox is dead (27.03.2023 12:11:31)

Re: Assembler математичні дії

frz написав:
Firefox is dead написав:

всерівно перевіряти не буде

"Оскільки цю лабу все одно ніхто не читатиме, то як матеріал для підшипників пропоную використати пластилін" (с)

(дисклеймер: часом, під настрій, все ж можуть почитати)

Олекссандрр написав:

Моєї групи немає в навчальному закладі, я і ще 1 людина, яка поки нічого не робить.Хто кинув навчання, хто перевівся і не відповідає, хто виїхав за кордон.

в даному випадку, гадаю, викладач сам закинув це навчання, тому замість підшипників можна використовувати навіть "воздух"

Подякували: leofun011

31

Re: Assembler математичні дії

frz написав:
Firefox is dead написав:

всерівно перевіряти не буде

"Оскільки цю лабу все одно ніхто не читатиме, то як матеріал для підшипників пропоную використати пластилін" (с)

Ось це часом і бісить: цілий семестр доводиш до досконалості всі розрахунки, щоб воно справді працювало, а там тільки подивляться на обкладинку, вліплять щось у заліковку, і вже здав...

32

Re: Assembler математичні дії

P.Y. написав:
frz написав:
Firefox is dead написав:

всерівно перевіряти не буде

"Оскільки цю лабу все одно ніхто не читатиме, то як матеріал для підшипників пропоную використати пластилін" (с)

Ось це часом і бісить: цілий семестр доводиш до досконалості всі розрахунки, щоб воно справді працювало, а там тільки подивляться на обкладинку, вліплять щось у заліковку, і вже здав...

... це означає лише, що ви залежні від думки оточуючих; інакше вкладена праця в цю роботу тішила б вас сама по собі, без необхідності визнання від викладача.

33

Re: Assembler математичні дії

frz написав:
P.Y. написав:
frz написав:

"Оскільки цю лабу все одно ніхто не читатиме, то як матеріал для підшипників пропоную використати пластилін" (с)

Ось це часом і бісить: цілий семестр доводиш до досконалості всі розрахунки, щоб воно справді працювало, а там тільки подивляться на обкладинку, вліплять щось у заліковку, і вже здав...

... це означає лише, що ви залежні від думки оточуючих; інакше вкладена праця в цю роботу тішила б вас сама по собі, без необхідності визнання від викладача.

Ну, по-перше, це студентська робота, яка робиться саме для того, щоб її перевірила компетентна людина, можливо, вказала на ваші недоробки  — конструктивна критика піде вам на користь, справедлива похвала — також. А так у вас узагалі нема орієнтиру, чи правильно ви зробили свою роботу, якщо одну й ту ж оцінку в заліковці з однаковим успіхом можна отримати і за реальну роботу, і за стопку макулатури.

Подякували: leofun011

34 Востаннє редагувалося Droid 77 (27.03.2023 20:50:15)

Re: Assembler математичні дії

Олекссандрр написав:
P.Y. написав:

Система команд AVR (англ. вікі) — можливо, стане в пригоді.

Дякую хоть за якийсь матеріал.Спробую.

До розуміння AVR та будь яких інших МК поки що не лізьте.
Попередньо опануйте хочаб основи asm, іноді цього вистачає. Потім вже легше розуміти роботу МК, та програмувати (не обов'язково на asm).
ASM потрібен в програмуванні для забезпечення максимальної швидкодії розробленої системи. Або коли треба впихнути невпихаїме в МК.
Нафіга навчатися як навіть шукати інфо лінуєтесь?
Гадаю перелік літератури забули запитати у викладача?
То ось для початку:

Або запросіть у викладача перелік рекомендованої літератури.

Як цікаво програмувати саме AVR:

35 Востаннє редагувалося P.Y. (27.03.2023 22:30:35)

Re: Assembler математичні дії

Droid 77 написав:
Олекссандрр написав:
P.Y. написав:

Система команд AVR (англ. вікі) — можливо, стане в пригоді.

Дякую хоть за якийсь матеріал.Спробую.

До розуміння AVR та будь яких інших МК поки що не лізьте.
Попередньо опануйте хочаб основи asm, іноді цього вистачає. Потім вже легше розуміти роботу МК, та програмувати (не обов'язково на asm).
ASM потрібен в програмуванні для забезпечення максимальної швидкодії розробленої системи. Або коли треба впихнути невпихаїме в МК.
Нафіга навчатися як навіть шукати інфо лінуєтесь?
Гадаю перелік літератури забули запитати у викладача?
То ось для початку:

Сідайте й затніться. Ви рідкісна сволота, завжди готова підставити ногу, коли хтось спіткнеться. Шкодую, що був про Вас кращої думки.

Для тих, хто взагалі не шарить, пояснюю: асемблерами називають низькорівневі мови програмування, інструкції яких максимально наближені до безпосередньо машинного коду. Це не якась одна мова, а спільна назва для таких мов, і в кожної процесорної архітектури асемблер свій — між собою вони в загальному випадку несумісні. Якщо викладач вимагає виконати роботу на асемблері для AVR, а студент принесе йому код для інтелівського процесора, то, очевидно, здати лабу він зможе лише в тому випадку, якщо викладач приймає будь-яку макулатуру. Аналогічно — якщо вивчається інтелівський процесор, а студент принесе йому код для спектрума. І т.д., і т.п. У даному випадку, Ви радите вчити не той асемблер, який потрібен для виконання завдання. Це, звичайно, корисно для загального розвитку, але не більше. На якомусь рівні я розумію Ваше ідіотське бажання поприколюватись над студентом, який ще не розібрався, але я б на Вашому місці просто вибачився б перед ним за цю Вашу брехню, через яку в нього могли б виникнути проблеми.


Щось корисне починається з цього місця:

Droid 77 написав:

Або запросіть у викладача перелік рекомендованої літератури.

Як цікаво програмувати саме AVR:

36 Востаннє редагувалося Droid 77 (28.03.2023 00:08:47)

Re: Assembler математичні дії

Те що для кожної архітектури свій asm вперше від Вас чую.
Це теж саме що сказати що під кожен МК або МП свій Сі або свій Сі++.
Те що в кожній архітектурі своя система команд, так. В кожній архітектурі своя система команд. І ці команди треба знати працюючи з конкретним МК або МП.
Та перед тим як вивчати ті команди, треба ознайомитися з основами загальними. Це дає змогу легше зрозуміти специфічні команди під конкретний МК або МП. Це моя особиста думка, яку я висловив.

Стосовно перших двох речень з образами, написав Вам в п. п.. Не бажаю в темі срачі розводити.

37 Востаннє редагувалося ReAl (28.03.2023 01:15:59)

Re: Assembler математичні дії

Олекссандрр написав:

При роботі з фіксованою комою оперують з правильними дробами, тобто
з числами, які по модулю строго менше одиниці.
При цьому застосовується природний запис числа у вигляді послідовності
цифр, у якій кома фіксована перед першим (старшим) цифровим розрядом.
Зліва від коми відводиться розряд (або два розряду) для зображення знака
числа. Прийнято наступні позначення знака числа: "+" = 0; "-" = 1.
Таким чином, в знаковому розряді розташований 0, якщо число
позитивне, і 1, якщо число від’ємне.
Приклад:
0,101101 - додатне число;
1,101101 - від'ємне число, що збігається за модулем з наведеним вище
позитивним числом.

Перевагами такого уявлення чисел є прості арифметичні операції, що
забезпечують високу швидкодію ЕОМ.

(де тут смайлик "фейспалм")
Або це лабораторка з якогось умовного «Коледжу Інформаційних Технологій Та Землевпорядкування Національного Авіаційного Університету», або викладач дійсно мав на увазі такий формат чисел, але тоді не відповідає дійсності «перевагами такого» (уявлення? це гугл-транслейт від «прєдставлєнія»?) «чисел є прості арифметичні операції»

Що я маю на увазі.
Є така річ Доповняльний код, який зараз дійсно найпоширеніший. Гарний тим, що операції додавання/віднімання однаково вірні незалежно від того, n-бітне число ми розглядаємо як беззнакове у діапазоні 0..(2n-1), чи як знакове у діапазоні (-2n-1)..(2n-1-1).
І саме це використовується в AVR.
Але приклад в умові, який я виділив, це «Прямий код» (див. порівняльну таблицю). У ньому іноді працюють АЦП з двополярним входом, але я не зустрічав сучасних міркоконтролерів/мікропороцесорів з таким кодуванням цілих чисел.
З точки зору чисел з фіксованою комою у доповняльному форматі. Для додавання/віднімання можна використовувати звичайні команди асемблера, ті ж самі, що для «звичайних» цілих чисел, які по суті теж числа з фіксованою комою, зафіксованою відразу правіше молодшого розряду. Тобто «звичайне» число 5 це 00000101,, а 0,0000101 це число з фіксованою комою формату 1.7 (5/128).
При цьому
5 + (-1) = 00000101, + 11111111, = 00000100, = 4.
А у форматі 1.7
5/128 + (-1)/128 = 0,0000101 + 1,1111111 = 0,0000100 = 4/128.
Як бачимо, бітова картина однакова.
У цьому випадкові наведений вище розв'язок першого завдання від ChatGPT вірний, хоча і не оптимальний.

Але якщо дійсно використовується прямий код, то напряму команди асемблера використати неможливо. Треба спочатку перевести числа з прямого у доповняльний, зробити операції, потім результат перевести з доповняльного у прямий.

Щодо множення, то у системі команд AVR є команди групи FMUL*, які відразу працюють з числами з фіксованою комою формату 1.7 (результат у форматі 1.15), але теж у доповняльному коді, а не в отому, що в умові.

p.s Мені потрібні були числа у форматі 14.2, тому при потребі робити множення все акуратно вручну без використання FMUL*.

Подякували: wander, Firefox is dead, leofun013

38 Востаннє редагувалося P.Y. (28.03.2023 02:21:57)

Re: Assembler математичні дії

Droid 77 написав:

Те що для кожної архітектури свій asm вперше від Вас чую.
Це теж саме що сказати що під кожен МК або МП свій Сі або свій Сі++.

*FACEPALM*
Мови назразок Сі розроблялися спеціально для написання переносного коду — одна й та ж програма там справді може компілюватись для машин з різною архітектурою і успішно на них виконуватись.

Асемблери для різних архітектур не призначено для переносного коду — система команд різна, результат компіляції різний, модель роботи машини різна — що взагалі між ними спільного, крім загальної концепції низькорівневої мови? Так, і те, й те називається асемблером, але ні, асемблери для початково різних архітектур навіть «діалектами асемблера» ніхто не називає. З таким же успіхом, ми можемо вважати «одним і тим же» машинний код для цих неспоріднених архітектур.

Подякували: Tarpan87, ReAl, leofun013

39 Востаннє редагувалося ReAl (28.03.2023 21:10:14)

Re: Assembler математичні дії

P.Y. написав:
Droid 77 написав:

Те що для кожної архітектури свій asm вперше від Вас чую.
Це теж саме що сказати що під кожен МК або МП свій Сі або свій Сі++.

*FACEPALM*
...
Асемблери для різних архітектур не призначено для переносного коду — система команд різна, результат компіляції різний, модель роботи машини різна — що взагалі між ними спільного, крім загальної концепції низькорівневої мови? Так, і те, й те називається асемблером, але ні, асемблери для початково різних архітектур навіть «діалектами асемблера» ніхто не називає. З таким же успіхом, ми можемо вважати «одним і тим же» машинний код для цих неспоріднених архітектур.

1. Саме так. Асемблери для різних архітектур можуть мати різний набір директив, можуть мати різну поведінку однакових з виду директив, мають різні можливості і навіть різні концепції макропрограмування.

2. Навіть більше. Різні асемблери для однієї й тієї ж архітектури можуть мати різний синтаксис команд  (наприклад, "рідний інтелівський" та "at&t" для x86), кардинально різний набір мнемонік ("рідний мікрочіпівський" і "ubicom/scenix" для менших PIC), різну інтерпретацію адрес (для AVR у пам'яті коду адресація послівна у "рідному Atmel" і IAR, але побайтова в gnu as).

Тому «всі асемблери однакові» лише коли дивишся на них як на чужинців — зрідка і здаля.

p.s. Це теж асемблер. Кожен рядок це одна команда архітектури.

        MF=MX0 * MY1 (RND), MX0=DM(I2,M1);                 {MF=error * beta}
        MR=MX0 * MF (RND), AY0=PM(I6,M5);
        DO adapt UNTIL CE;
                AR=MR1+AY0, MX0=DM(I2,M1), AY0=PM(I6,M7);
adapt:          PM(I6,M6)= AR, MR=MX0 * MF (RND);
        MODIFY(I2,M3);                                     {Point to oldest data}
        MODIFY(I6,M7);                                     {Point to start of data}
Подякували: leofun011

40 Востаннє редагувалося Droid 77 (29.03.2023 22:31:54)

Re: Assembler математичні дії

Не згоден з Вами.
Мова то є мова.
А архітектура та інструкції для певної архітектури то вже не мова.

P. S.
Як з такої позиції дивитися на мови.
То і середовище для програмування готових плат Arduino можливо назвати мовою C, тільки особливою під певну архітектуру.
Це хибний напрям ...
При програмуванні МК тре чітко розуміти:
що таке мова програмування;
що таке лікер;
що таке компілятор;
що таке середовище розробки;
що таке мікроконтролер;
що таке мікропроцесор;
що таке архітектура;
що таке система команд;
що таке логічні стани;
т. т. і. ...