Install Steam
login
|
language
简体中文 (Simplified Chinese)
繁體中文 (Traditional Chinese)
日本語 (Japanese)
한국어 (Korean)
ไทย (Thai)
Български (Bulgarian)
Čeština (Czech)
Dansk (Danish)
Deutsch (German)
Español - España (Spanish - Spain)
Español - Latinoamérica (Spanish - Latin America)
Ελληνικά (Greek)
Français (French)
Italiano (Italian)
Bahasa Indonesia (Indonesian)
Magyar (Hungarian)
Nederlands (Dutch)
Norsk (Norwegian)
Polski (Polish)
Português (Portuguese - Portugal)
Português - Brasil (Portuguese - Brazil)
Română (Romanian)
Русский (Russian)
Suomi (Finnish)
Svenska (Swedish)
Türkçe (Turkish)
Tiếng Việt (Vietnamese)
Українська (Ukrainian)
Report a translation problem
this is my solution for push and pop:
-----------------------------------------------------------
const disk REG0
label main
ADDi INPUT 0 disk
IF_EQUALi disk 0 pop
IF_NOT_EQi disk 0 push
CALL main _ _
label push
PUSH disk _ _
ANDi disk 0 disk
IF_EQUAL 0 0 main # always return to main
label pop
POP _ _ disk
ADDi disk 0 OUTPUT
IF_EQUAL 0 0 main # always return to main
---------------------------------------------------------
------------------------------------------------
label loop
ADDi RAM_ADDRESS 1 RAM_ADDRESS
RAM_SAVE INPUT _ _
ADDi REG0 1 REG0
IF_LESS_EQi REG0 32 loop
SUB RAM_ADDRESS RAM_ADDRESS RAM_ADDRESS
SUB REG0 REG0 REG0
label read
ADDi RAM_ADDRESS 1 RAM_ADDRESS
RAM_LOAD _ _ OUTPUT
ADDi REG0 1 REG0
IF_LESS_EQi REG0 32 read
------------------------------------------
REQUIREMENTS:
- Make sure that it is built properly
- Make sure that all your Asembly codes MATCH the 32bit CPU instruction set
- Add a new Assebly code as followed: '00000000' named as '_'
NOTE: This worked for ME following the same Diagram as depicted on the RAM level. It might NOT work for you. This is also probably poor design and falued but idc. Enjoy.
https://test-steamproxy.haloskins.io/sharedfiles/filedetails/?id=2929885231
Division is possible using only hardware, with the designs from my Reddit post:
https://www.reddit.com/r/TuringComplete/comments/xt817z/divide_but_without_looping/
My solution: (unoptimized)
https://preview.redd.it/xushx2mis9r91.jpg?width=1707&format=pjpg&auto=webp&v=enabled&s=2c60f69718ea88d4bfcc2aa4c30321641c6638fa
FatTomIV's solution: (optimized)
https://i.imgur.com/JOGK8g7.png
Sorry for not telling you earlier, I forgot to.
私のReddit投稿からの設計により、ハードウェアのみを使用して分割が可能です。
https://www.reddit.com/r/TuringComplete/comments/xt817z/divide_but_without_looping/
私の解決策:(最適化されていません)
https://preview.redd.it/xushx2mis9r91.jpg?width=1707&format=pjpg&auto=webp&v=enabled&s=2c60f69718ea88d4bfcc2aa4c30321641c6638fa
FatTomIV のソリューション: (最適化)
https://i.imgur.com/JOGK8g7.png
先に言わなくてすみません、言い忘れました。
could be a speedrun strat...
> 水谷雫
There is no need to connect to equal. Because NOT LESS = GREATER OR EQUAL.
For example, less than 0 means -1,-2,-3... and its inversion, not less than 0, means 0,1,2,3... .
Similarly, NOT GREATER = LESS OR EQUAL.
> Gato Donald
In this implementation, it is necessary to specify the RAM write address in REG5.
As shown in the "32-bit CPU Instruction Set" section, REG5 is assigned the name "RAM_ADDRESS".
Therefore, the following code will work.
ADDi RAM_ADDRESS 5 RAM_ADDRESS
RAM_SAVE INPUT _ _
SUB RAM_ADDRESS RAM_ADDRESS RAM_ADDRESS // set RAM_ADDRESS 0
ADDi RAM_ADDRESS 5 RAM_ADDRESS
RAM_LOAD _ _ REG1