複数回評価するマクロを作ろうとしているのですが、
教えて頂けないでしょうか

具体的には
(setq a 'b b 'c c 'd)
この状態で、(s a)を実行後Aを評価するとcやdを返すようなマクロsを定義したい。
aとbを返す版は作れました
a版1:(defmacro s(x) (setq A x))
a版2:(defmacro s(x) `,(setq A x))
b版:(defmacro s(x) `(setq A ,x))
こんな感じのコードを試してみましたがcではなく、bや一部が評価された版が返ってきます
(defmacro s(x) `(setq A ,`,x))
(defmacro s(x) ``(setq A ,,x))

また、a版1とa版2は、実質全く同じものと思っていても良いでしょうか