Data update
This commit is contained in:
parent
35bcdeebf8
commit
74c69a0df6
2427 changed files with 31826 additions and 3468 deletions
23
Task/Four-bit-adder/EasyLang/four-bit-adder.easy
Normal file
23
Task/Four-bit-adder/EasyLang/four-bit-adder.easy
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
proc xor a b . r .
|
||||
na = bitand bitnot a 1
|
||||
nb = bitand bitnot b 1
|
||||
r = bitor bitand a nb bitand b na
|
||||
.
|
||||
proc half_add a b . s c .
|
||||
xor a b s
|
||||
c = bitand a b
|
||||
.
|
||||
proc full_add a b c . s g .
|
||||
half_add a c x y
|
||||
half_add x b s z
|
||||
g = bitor y z
|
||||
.
|
||||
proc bit4add a4 a3 a2 a1 b4 b3 b2 b1 . s4 s3 s2 s1 c .
|
||||
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
|
||||
50
Task/Four-bit-adder/Quackery/four-bit-adder.quackery
Normal file
50
Task/Four-bit-adder/Quackery/four-bit-adder.quackery
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
[ over not
|
||||
over and
|
||||
unrot not
|
||||
and or ] is xor ( a b --> a^b )
|
||||
|
||||
[ 2dup and
|
||||
dip xor ] is halfadder ( a b --> s c )
|
||||
|
||||
[ halfadder
|
||||
dip halfadder or ] is fulladder ( a b c --> s c )
|
||||
|
||||
[ 4 pack reverse unpack
|
||||
4 times [ temp put ]
|
||||
4 pack reverse
|
||||
0 swap witheach
|
||||
[ temp take fulladder ]
|
||||
5 pack reverse unpack ] is 4bitadder ( b3 b2 b1 b0 a3 a2 a1 a0 --> c s3 s2 s1 s0 )
|
||||
|
||||
say "1100 + 1100 = "
|
||||
1 1 0 0 1 1 0 0 4bitadder
|
||||
5 pack witheach echo
|
||||
cr
|
||||
say "1100 + 1101 = "
|
||||
1 1 0 0 1 1 0 1 4bitadder
|
||||
5 pack witheach echo
|
||||
cr
|
||||
say "1100 + 1110 = "
|
||||
1 1 0 0 1 1 1 0 4bitadder
|
||||
5 pack witheach echo
|
||||
cr
|
||||
say "1100 + 1111 = "
|
||||
1 1 0 0 1 1 1 1 4bitadder
|
||||
5 pack witheach echo
|
||||
cr
|
||||
say "1101 + 0000 = "
|
||||
1 1 0 1 0 0 0 0 4bitadder
|
||||
5 pack witheach echo
|
||||
cr
|
||||
say "1101 + 0001 = "
|
||||
1 1 0 1 0 0 0 1 4bitadder
|
||||
5 pack witheach echo
|
||||
cr
|
||||
say "1101 + 0010 = "
|
||||
1 1 0 1 0 0 1 0 4bitadder
|
||||
5 pack witheach echo
|
||||
cr
|
||||
say "1101 + 0011 = "
|
||||
1 1 0 1 0 0 1 1 4bitadder
|
||||
5 pack witheach echo
|
||||
cr
|
||||
Loading…
Add table
Add a link
Reference in a new issue