RosettaCodeData/Task/Four-bit-adder/EasyLang/four-bit-adder.easy

24 lines
504 B
Text
Raw Permalink Normal View History

2025-06-11 20:16:52 -04:00
proc xor a b &r .
2023-12-16 21:33:55 -08:00
na = bitand bitnot a 1
nb = bitand bitnot b 1
r = bitor bitand a nb bitand b na
.
2025-06-11 20:16:52 -04:00
proc half_add a b &s &c .
2023-12-16 21:33:55 -08:00
xor a b s
c = bitand a b
.
2025-06-11 20:16:52 -04:00
proc full_add a b c &s &g .
2023-12-16 21:33:55 -08:00
half_add a c x y
half_add x b s z
g = bitor y z
.
2025-06-11 20:16:52 -04:00
proc bit4add a4 a3 a2 a1 b4 b3 b2 b1 &s4 &s3 &s2 &s1 &c .
2023-12-16 21:33:55 -08:00
full_add a1 b1 0 s1 c
full_add a2 b2 c s2 c
full_add a3 b3 c s3 c
full_add a4 b4 c s4 c
.
write "1101 + 1011 = "
bit4add 1 1 0 1 1 0 1 1 s4 s3 s2 s1 c
print c & s4 & s3 & s2 & s1