Стереть бы два моих предыдущих поста, что-то "затормозил" я совсем. Евгений же идентификаторами переменных на их тип указывал.
Код:
(* ==================================================================
MODULE   HelloWorld;
VAR
   n :INTEGER;
   s :SET;
   b :BOOLEAN;
      
BEGIN
   n := 33;
   s := {1};
   b := n IN s;
      
END   HelloWorld.
================================================================== *)
Oberon -> ARMv7-M Compiler  13.4.2017
HelloWorld    20    12 DFDC2123
OARMv7MLinker 11.1.2017
linking HelloWorld Ok
   HelloWorld   256
ROM: 584 B; RAM: 20 B
O7ARMv7MTool 19.9.2014
decode HelloWorld.hex
 00400000H:
   0    00003FEC   SUBS r7, #236
   1    00002000   MOVS r0, #0
   2    00000229   LSLS r1, r5, #8
   3    00000040   LSLS r0, r0, #1
 256    0000BF00   NOP
 257    0000B500   PUSH {LR}
 258    00002021   MOVS r0, #33
 259    0000F8D6   ...
 260    00003000   LDR.W r3, [r6]
 261    00006018   STR r0, [r3]      (* n := 33 -- 4 команды *)
 262    00002002   MOVS r0, #2
 263    00006058   STR r0, [r3, #1] ; 4   (* s := {1} -- 2 команды *)
 264    00006858   LDR r0, [r3, #1] ; 4   (* R0 <- s *)
 265    00006819   LDR r1, [r3]      (* R1 <- n *)
 266    00001C49   ADDS r1, r1, #1      (* R1 <- 34 *)
 267    000041C8   RORS r0, r1      (* 34 сдвига вправо числа 2 --> 80000000H и выставлены флаги рез-та команды N = 1 *)
 268    0000D501   BPL 1 ; 2      (* ветвление если рез-тат положительный, те флаг N = 0 *)
 269    00002001   MOVS r0, #1      (* тк флаг N = 1, то R0 <- 1 *)
 270    0000E000   B 0 ; 1
 271    00002000   MOVS r0, #0      
 272    0000F8D6   ...
 273    00003000   LDR.W r3, [r6]
 274    00007218   STRB r0, [r3, #8]   (* результат сохранён в ОЗУ *)
 275    0000BD00   POP {PC}      (* That's all folks *)
 276    0000F643   ...
 277    000076FC   MOVW r6, #16380 ; 0x3FFC
 278    0000F2C2   ...
 279    00000600   MOVT r6, #8192 ; 0x2000
 280    00001F30   SUBS r0, r6, #4
 281    00002100   MOVS r1, #0
 282    00006001   STR r1, [r0]
 283    0000F643   ...
 284    000070EC   MOVW r0, #16364 ; 0x3FEC
 285    0000F2C2   ...
 286    00000000   MOVT r0, #8192 ; 0x2000
 287    00006030   STR r0, [r6]
 288    0000F7FF   ...
 289    0000FFDF   BL -66 ; -33
 290    0000E7FE   B -2 ; -1
 291    0000BF00   NOP
start linear address:  00400001H
 Проц в данный момент недоступен, посему не обессудьте: "пешим по-конному".
Вот как-то так…