Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Показано с 1 по 10 из 10
  1. #1
    Аватар для punkochel
    Пользователь

    Статус
    Оффлайн
    Регистрация
    08.12.2018
    Адрес
    Россия
    Сообщений
    146
    Репутация:
    25 ±

    Ассемблерные листинги

    Извиняюсь заранее, если не по теме. Где можно найти материал для изучения понимания и чтения ассемблерных листингов? Может кто-то знает хорошие источники?

  2. #2
    Аватар для SteveStage
    Пользователь

    Статус
    Оффлайн
    Регистрация
    05.10.2019
    Адрес
    Планета Земля
    Сообщений
    318
    Репутация:
    7 ±
    К слову вот: https://pro-pawn.ru/showthread.php?16966

    Человек также спрашивал про ассемблер, и ему дали нормальный понятный ответ:

    Цитата Сообщение от red.inc Посмотреть сообщение
    Приветствую всех! Есть вопрос такой, замечал ранее информацию про ассемблер, но вчера-позавчера заметил тему DC по pawn.cfg и воспользовался "-a" для просмотра кода в ассемблере.
    Базовые я смотрел на многих форумах по павн.

    PHP код:
    DATA 0    4724
    dump 0 

    CODE 0    
    22f8

        proc    
    OnPlayerCommandText
        
    line c
        
    ;$lcl cmdtext 10
        
    ;$lcl playerid c
        
    line d 
    Искал в интернете, возможно плохо искал, но итог - не нашёл. Обратился к Вами.
    Цитата Сообщение от Daniel_Cortez Посмотреть сообщение
    ... что искали-то? Сформулируйте свой вопрос.
    Цитата Сообщение от red.inc Посмотреть сообщение
    Код выше, DATA,$lcl, code, и 7fffffff dump понять не могу, для чего он используется.
    Цитата Сообщение от Daniel_Cortez Посмотреть сообщение
    Если вы только начинаете изучать Pawn, для вас эта информация точно будет лишней. Но раз просите...
    • "DATA" и "CODE" - предназначены для переключения ассемблера между режимами вывода в файл данных/кода скрипта. В предыдущих версиях компилятора были нужны, сейчас же они не делают ровным счётом ничего, ассемблер их игнорирует.
    • "proc ; OnPlayerCommandText" - с инструкции PROC начинается любая функция в Pawn (не считая state-функций, но то отдельная тема). В комментарии после инструкции (начинается с ";") для наглядности указано название функции.
    • "; line c" - служебный комментарий, в котором указан номер соответствующей строки из исходного кода. Номер указан в шестнадцатеричной системе, поэтому "c" означает, что это 12-я строка в исходном файле (".pwn"/".inc"). Тоже нужен чисто для чтения человеком, ассемблер его игнорирует.
    • ";$lcl cmdtext" - служебный комментарий, который обозначает создание локальной переменной или массива.
    • "7fffffff" - число в шестнадцатеричной системе. В переводе в десятеричную получится "2147483647".
    • "dump" - псевдо-инструкция, которая добавляет значения в секцию данных скрипта.

    Если вы не поняли даже и половины из того, что здесь написано, то вам лучше будет обойти стороной данную тему - порог вхождения в ней довольно высокий, т.к. кроме скудного описания в Pawn Implementer's Guide никакой специализированной литературы нет (лично я за эту тему брался уже после освоения ассемблера под x86), а пользы для обычного скриптера на практике очень мало. Иными словами, не стоит оно того.
    Но если вам это так нужно, то на сайте compu-chase валялась документация Implementer's Guide, хотя сейчас, поискав, я ее там не нашел. Да и DC говорил:

    Цитата Сообщение от Daniel_Cortez Посмотреть сообщение
    Если вы не поняли даже и половины из того, что здесь написано, то вам лучше будет обойти стороной данную тему - порог вхождения в ней довольно высокий, т.к. кроме скудного описания в Pawn Implementer's Guide никакой специализированной литературы нет (лично я за эту тему брался уже после освоения ассемблера под x86), а пользы для обычного скриптера на практике очень мало. Иными словами, не стоит оно того.
    Последний раз редактировалось SteveStage; 29.01.2020 в 22:44.

  3. #3
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Вот тут есть и Pawn Implementer's Guide, и Pawn Language Guide. Обе именно для той версии Pawn, которая используется в SA-MP.
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

  4. #4
    Аватар для SteveStage
    Пользователь

    Статус
    Оффлайн
    Регистрация
    05.10.2019
    Адрес
    Планета Земля
    Сообщений
    318
    Репутация:
    7 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    Вот тут есть и Pawn Implementer's Guide, и Pawn Language Guide. Обе именно для той версии Pawn, которая используется в SA-MP.
    О, спасибо. Но, как DC уже писал, профита от ассемблера мало.

  5. #5
    Аватар для red.inc
    Пользователь

    Статус
    Оффлайн
    Регистрация
    30.07.2019
    Адрес
    Беларусь, Витебск
    Сообщений
    23
    Репутация:
    0 ±
    Достаточно понять что ассемблер является низкоуровневый язык, и основная работа с ним - память

  6. #6
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Цитата Сообщение от red.inc Посмотреть сообщение
    Достаточно понять что ассемблер является низкоуровневый язык, и основная работа с ним - память
    Если рассматривать программирование с такой стороны, то все языки так или иначе работают только с памятью. Скажу даже больше: сам по себе компьютер бесполезен без хоть какой-либо памяти.
    В любом случае не думаю, что эта информация как-то поможет автору.
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

  7. #7
    Аватар для red.inc
    Пользователь

    Статус
    Оффлайн
    Регистрация
    30.07.2019
    Адрес
    Беларусь, Витебск
    Сообщений
    23
    Репутация:
    0 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    Если рассматривать программирование с такой стороны, то все языки так или иначе работают только с памятью. Скажу даже больше: сам по себе компьютер бесполезен без хоть какой-либо памяти.
    В любом случае не думаю, что эта информация как-то поможет автору.
    Возможно он сам не знает, зачем это ему. "Слышу звон, да не знаю, где он".

    Недавно и я попался на звон.

  8. #8
    Аватар для punkochel
    Пользователь

    Статус
    Оффлайн
    Регистрация
    08.12.2018
    Адрес
    Россия
    Сообщений
    146
    Репутация:
    25 ±
    Цитата Сообщение от red.inc Посмотреть сообщение
    Возможно он сам не знает, зачем это ему. "Слышу звон, да не знаю, где он".

    Недавно и я попался на звон.
    Мне интересна эта тема. Возможно вы правы, но для общего развития для меня важно понимать данный аспект.

  9. #9
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Цитата Сообщение от punkochel Посмотреть сообщение
    Мне интересна эта тема. Возможно вы правы, но для общего развития для меня важно понимать данный аспект.
    Тогда тебе нужно изучать ассемблер в отрыве от Pawn. И, опять же, если единственная цель - использовать emit при написании скриптов для SA-MP, то ты просто впустую потратишь кучу времени. И не только на изучение, но и на поддержку кода, ибо с emit гораздо легче создать проблем, так как нюансов в разы больше.
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

  10. #10
    Аватар для punkochel
    Пользователь

    Статус
    Оффлайн
    Регистрация
    08.12.2018
    Адрес
    Россия
    Сообщений
    146
    Репутация:
    25 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    Тогда тебе нужно изучать ассемблер в отрыве от Pawn. И, опять же, если единственная цель - использовать emit при написании скриптов для SA-MP, то ты просто впустую потратишь кучу времени. И не только на изучение, но и на поддержку кода, ибо с emit гораздо легче создать проблем, так как нюансов в разы больше.
    Спасибо за совет!) На сколько я понимаю, то ассемблер не ограничивается pawn, и некоторые моменты желательно знать, ну это как по мне)

 

 

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •