From 98139ead42e8641f99eb98cbe7997493f03ae099 Mon Sep 17 00:00:00 2001 From: chriseth Date: Wed, 14 Jun 2017 15:46:16 +0200 Subject: [PATCH] Clarify functional style. --- docs/assembly.rst | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/docs/assembly.rst b/docs/assembly.rst index cd3ff4c03..9455dfb3c 100644 --- a/docs/assembly.rst +++ b/docs/assembly.rst @@ -318,8 +318,10 @@ would be written as follows mstore(0x80, add(mload(0x80), 3)) -Functional style and instructional style can be mixed, but any opcode inside a -functional style expression has to return exactly one stack slot (most of the opcodes do). +Functional style expressions cannot use instructional style internally, i.e. +``1 2 mstore(0x80, add)`` is not valid assembly, it has to be written as +``mstore(0x80, add(2, 1))``. For opcodes that do not take arguments, the +parentheses can be omitted. Note that the order of arguments is reversed in functional-style as opposed to the instruction-style way. If you use functional-style, the first argument will end up on the stack top.