i32.const 0
i32.const 42
i32.store
а можно эдак:
(i32.store (i32.const 0) (i32.const 42))
словно они не определились, стековая они машина или не стековая. Или один из них легаси?
S-выражения лучше для восприятия (если нет опыта работы с ассемблером). Стековая она в любом случае
А Вы попробуйте арифметические выражения позаписывать, формулу корней квадратичного уравнения, например — вот и сравните. 😉
S-expressions считаются справа на лево и сверху вниз, когда обычный синтаксис только сверху вниз. Это меняет порядок вычисления, как скобки в арифметике 😁 Помогает избегать ошибок с порядком операций. Дисассемблер производит только обычный синтаксис, если я правильно помню.
Стикер
По умолчанию да, но есть флажок --folded
(Forth как постфикс с подвывертом)(Lisp префексные формы ) асм как лента изменения состояния (обычно)двух/трёх_адрессными инструкциями как то вот "обычный" синтаксис асма это op (arg)* что как уже отметили делает сложным восприятие структуры кода - см великое Goto плохо Дейкстры(там вовсе не про goto как таковое -ага) лисп - а точнее S-выражение - задаёт четче структуру дерева выражений - однако рак скобок постфиксное свободно от скобок однако приходится изголятся с открывающими набор аргументов способами:) - т.е везде свои трэйдоффы(sic)
Обсуждают сегодня