示范程序

差異處

這裏顯示兩個版本的差異處。

連向這個比對檢視

兩邊的前次修訂版前次修改
下次修改
前次修改
wiki:自动化与科技指导:minecoprocessors:示范程序 [2023/12/07 17:06] – [「标准库」] nikoqwwiki:自动化与科技指导:minecoprocessors:示范程序 [2023/12/08 10:43] (目前版本) nikoqw
行 1: 行 1:
 ====== 示范程序 ====== ====== 示范程序 ======
-===== 「标准库」 ===== 
-提供一些通用的功能,如延时等。 
-<code ASM> 
-; 【作用】 
-;  延时 
-; 【参数】 
-;  a[I][int]:延时的 cycles 数目,>0 
-; 【内部使用的寄存器】 
-;  b[int]:延时计数 
-sleep: 
-; Init reg 
-PUSH b 
-MOV b, 0 
- 
-; Main logic 
-sleep__loop: 
-ADD b, 1 
-CMP b, a 
-JNZ sleep_loop 
- 
-; Exit 
-POP b 
-RET 
- 
- 
-; 【作用】 
-;  等待某个红石输入寄存器得到高电平 
-; 【参数】 
-;  a[I][int]:红石寄存器 ID 
-wait_in_high: 
-CMP a, 0 
-JZ wait_in_high__pf 
-CMP a, 1 
-JZ wait_in_high__pb 
-CMP a, 2 
-JZ wait_in_high__pl 
-CMP a, 3 
-JZ wait_in_high__pr 
-HLT  ; a 非法 
- 
-wait_in_high__pf: 
-CMP pf, 0x00 
-JZ wait_in_high__pf 
-RET 
- 
-wait_in_high__pb: 
-CMP pb, 0x00 
-JZ wait_in_high__pf 
-RET 
- 
-wait_in_high__pl: 
-CMP pl, 0x00 
-JZ wait_in_high__pf 
-RET 
- 
-wait_in_high__pr: 
-CMP pr, 0x00 
-JZ wait_in_high__pf 
-RET 
-</code> 
- 
- 
- 
 ===== 延时器 ===== ===== 延时器 =====
-类似于中继器,但得到高电平输入时,立刻输出高电平。+类似于中继器,但区别在于:得到高电平输入时,立刻输出高电平而不等待,只在已输出高电平和恢复输出低电平之间等待固定时长
  
 **引脚作用**(trispc) 后引脚:输入,前引脚:输出 **引脚作用**(trispc) 后引脚:输入,前引脚:输出
  
-<code ASM>+<code-splitter> 
 +_start:
 MOV ports, 0010b MOV ports, 0010b
  
-_start+wait_in
-; wait_in_high(1) {+; wait_in_high(1) 
 +{
 MOV a, 1 MOV a, 1
 CALL wait_in_high CALL wait_in_high
行 82: 行 21:
 ; }; ; };
 MOV pf, 0x00 MOV pf, 0x00
-JMP _start +JMP wait_in 
-</code>+</code-splitter>
wiki/自动化与科技指导/minecoprocessors/示范程序.1701939978.txt.gz · 上一次變更: 2023/12/07 17:06 由 nikoqw
GNU Free Documentation License 1.3 若無特別註明,本 wiki 上的內容都是採用以下授權方式: GNU Free Documentation License 1.3