41 Востаннє редагувалося wander (30.03.2023 12:08:42)

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

Droid 77 написав:

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

Так, мова - це мова. Але ви, здається, плутаєте мову як мову програмування, у широкому сенсі та її окремі підмножини, якими є, наприклад, assembly. І їх поділу на так звані мови високого та низького рівня. Assembly є мовою низького рівня, С - високого. Мова низького рівня за визначенням дуже близька до машинних кодів та набору інструкцій використовуваного процесора. Так, мова assembly - все ще мова написана на папері й може не бути репрезентацією 1:1 до набору інструкцій. Зазвичай assembly має деякі додаткові фічі, як от макроси (які не є частиною набору інструкцій) або іноді одне мнемонічне позначення відповідає цілій групі процесорних інструкцій. Проте, ця прив’язаність є все ще дуже міцною, відповідно і мов асемлера є багато, для кожного окремого набору інструкцій процесора.

Компанія, яка створила процесор, визначає набір інструкцій і машинних кодів або кодів операцій або будь-який інший термін, який вони або ви використовуєте для бітів і байтів, які процесор декодує та виконує. Дуже часто ця компанія створює документ, специфікацію мови асемблера для цих інструкцій, синтаксис. Часто ця компанія також створює програму асемблера для компіляції/збирання цієї мови асемблера, використовуючи цей синтаксис.

Подякували: leofun01, Tarpan87, ReAl3

42 Востаннє редагувалося ReAl (30.03.2023 12:57:38)

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

Droid 77 написав:

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

Так, архітектура та інструкції то ще/вже не мова (залено у якому напрямку рухатися).
А от мнемоніки асемблера, то вже не інструкції.
Навіть «мнемокод», де треба було вручну розподіляти адреси пам'яті і самому їх вказувати, вже було не зовсім інструкції процесора (які є наборами значень бітів).
А от асемблери це вже далеко не лише мнемоніки.

Маю що порівнювати.
HP2100 (у вигляді радянських клонів), PDP-11 (також клони, мав там два різні по підходах асемблери), i8080, x86, MCS51 (два різних по підходах, в одному навіть можливість регістри переміщувати була, конкретні підставлялися згодом), MCS96, PIC16, AVR (вже писав про різні по підходах), ARM32 (от тут дійсно схожий з одним з AVR, бо обидва gnu as).

Ще був 1-бітний технологічний контролер стекової архітектури з 8-бітною командою, але то був таки мнемокод а не асемблер, і воно не тягнуло навіть на 4-бітовий Atmel MARC4, асемблером для якого був діалект FORTH (так, він мав набір інструкцій двостекової машини, але асемблером для нього — діалект FORTH).

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

43

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

Я вдячний Вам усім за допомогу(особливо P.Y.).Дякую також Firefox is dead за приклад.Я подивився і зрозумів, що таке я не зміг би навіть і придумати не те, щоб написати.Все таки цю мову потрібно вчити, бо навіть уроки, далекі від мого завдання, на Ютубі я би не зміг написати.Велика Вам спасибі.
P.S.:Щоб хтось розв'язав мій приклад я навіть не сподівався.На 1 проблему у навчанні стане менше))))

44

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

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

Я вдячний Вам усім за допомогу(особливо P.Y.).Дякую також Firefox is dead за приклад.Я подивився і зрозумів, що таке я не зміг би навіть і придумати не те, щоб написати.Все таки цю мову потрібно вчити, бо навіть уроки, далекі від мого завдання, на Ютубі я би не зміг написати.Велика Вам спасибі.
P.S.:Щоб хтось розв'язав мій приклад я навіть не сподівався.На 1 проблему у навчанні стане менше))))

Отже подяка тим хто сперечався з тим хто порадив для початку вчити саме мову.
Дякую за ігнор порад. ))