Size: a a a

Ассемблер

2020 December 15

DR

Dima Richev in Ассемблер
В чём интерес писать на ассемблере, который очень похож на Си, и в котором мало настоящего ассемблера (invoke и пр. директив)
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
Aiwan ╭∩╮ (òÓ,) ╭∩╮bot
ну он тот же masm (может работатть с теми же либами и инклудами), только осовремененный (открыты исходники). посмотри какие там конструкции встроены, офигеешь, там больше как на си пишешь
вот несколько скринов его синтаксиса

https://t.me/ChatAssembler/28617
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
Dima Richev
В чём интерес писать на ассемблере, который очень похож на Си, и в котором мало настоящего ассемблера (invoke и пр. директив)
в чем интерес писать на асме используя api системы, когда есть си?
источник

DR

Dima Richev in Ассемблер
Aiwan ╭∩╮ (òÓ,) ╭∩╮bot
в чем интерес писать на асме используя api системы, когда есть си?
А на Си не используется API системы?
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
Dima Richev
А на Си не используется API системы?
ну какже, используется. но можно ведь писать на си и делать вставки на асме (хитрозакрученные асмовские оптимизации для ускорения), чем полностью писать все на асме
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
Dima Richev
В чём интерес писать на ассемблере, который очень похож на Си, и в котором мало настоящего ассемблера (invoke и пр. директив)
как раз наоброт, он настоящий, тебя никто не принуждает использовать его возможности по полной. можешь вообще без всяких макросов и инклудов писать. но ведь в ккаждый (почти) асм встроен свой макроязык, и это не спроста, а для облегчения\ускорения однотипной всем известной писанины (частично для визуального понимания\восприятия кода, как в том же си)
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
мы ведь предоставляем асму считать за нас адреса меток? и этим все пользуются, мы же предоставляем асму за нас вставлять в бинарник hex код иснтукции которые пишем? асм то только инстумент, и от тебя зависит какими опциями\возмжностями его ты будешь пользоваться
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
да и получается что "настоящего" ассемблера то и нет. все делает макросы или их встроенные аналоги (подсчет адреса меток, высчитывание смещений, замена зарезервированного слова на инструкцию или группу инструкций)
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
.if в масме зарезервированное слово\директива, в фасме это макрос. поэтому фасм считают более чистым асмом, но возможности его макроязыка очень обширны
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
в итоге получается, что совсем не важно на каком асме написано програ, многие просто заморачиваются в выборе между мноочисленными асмами. а понять нужно то насколько разнообразных фишек встроено в этот асм, и насколько просто ими можно овладеть
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
еще сделаю небольшую ремарку.
то что в masm (uasm) его ифы и инвоки встроены дают нам преимущество в том что , при возникновении каких либо ошибок связанных с этими директивами асм выдает ошибку четко и понятно (не проверял, но думаю так и есть, это внутрение команды самого асма). для фасма же выдает ошибки в самих макросах, что порой вбивает в ступор "что не так и как это исправить"
источник

ST

Saenro T in Ассемблер
Да учите все асмы, не зацикливайтесь на каком-то одном. Всё равно пригодятся все.
источник

DR

Dima Richev in Ассемблер
Ну я бы не сказал))
источник

D

Den in Ассемблер
привет! такой вот вопрос родился, эксперементирую с вызовом сишных функций, и не совсем понятно почему в 32битной версии где у меня glibc 2.0 код скажем вот такой:

  push ebp
   mov ebp, esp
   sub esp, 10
   mov DWORD [ebp-4], 0xfff
   push DWORD [ebp-4]
   push DWORD msg
   call printf

а при 64 бит компиляции (версия glibc правда 2.2.5) надо еще вот это добавлять перед вызовом printf:
  mov rdi, msg
   mov rsi, [rbp]
   mov al,0
иначе segmentation fault и ничего не работает. Другой стандарт вызова или что?
источник

A

Aleksandr in Ассемблер
именно что другой
источник

D

Den in Ассемблер
Aleksandr
именно что другой
это как то от версии к версии гуляет ?
источник

A

Aleksandr in Ассемблер
от архитектуры к архитектуре, в первую очередь
источник

A

Aleksandr in Ассемблер
но и внутри одной архитектуры могут быть разные
источник

A

Aleksandr in Ассемблер
но в твоем случае - другая архитектура. x86-64 не то же, что x86
источник

D

Den in Ассемблер
Aleksandr
но и внутри одной архитектуры могут быть разные
гемор какой, придется под что-то затачиваться, по 32 как то инфы больше, я весь мозг сломал пока по 64 стандарту эту инфу нашел, думал у меня глюки с компиляцией из за разножопицы с версиями libc для 32 и 64
источник