DCPU-16에 FizzBuzz를 구현하려고했습니다. 이 웹 에뮬레이터를 사용합니다 : http://mappum.github.com/DCPU-16/ (저장소 : https://github.com/mappum/DCPU-16).DCPU-16 FizzBuzz 최적화
루프 종료 전에 중지됩니다. 왜?
어떻게 최적화 할 수 있습니까? 나는 asm에 관해서 아무 것도 모르는 고급 언어 프로그래머이다. 이 부분에 리소스가 있습니까? DCPU-16에
더 많은 정보를 정기적으로 공식 사양 : http://0x10c.com/doc/dcpu-16.txt - 비공식 사양 : http://0x10.cc/
코드 :
; FizzBuzz in DCPU-16
SET Z, 0x8000
SET I, 1
:loop
JSR print
ADD I, 1
IFN I, 100
SET PC, loop
BRK
:print
ADD Z, 1
SET [Z], 10
SET A, I
MOD A, 3
IFE A, 0
JSR printFizz
SET B, I
MOD B, 5
IFE B, 0
JSR printBuzz
SET C, A
IFG B, A
SET C, B
ADD A, B
IFG A, C
JSR printNumber
SET PC, POP
:printNumber
SET A, I
IFG I, 9
DIV A, 10
JSR printDigit
IFG 10, I
SET PC, POP
SET A, I
MOD A, 10
JSR printDigit
SET PC, POP
:printDigit
ADD A, 48
ADD Z, 1
SET [Z], A
SET PC, POP
:printFizz
ADD Z, 1
SET [Z], 70
ADD Z, 1
SET [Z], 105
ADD Z, 1
SET [Z], 122
ADD Z, 1
SET [Z], 122
SET PC, POP
:printBuzz
ADD Z, 1
SET [Z], 66
ADD Z, 1
SET [Z], 117
ADD Z, 1
SET [Z], 122
ADD Z, 1
SET [Z], 122
SET PC, POP
fizzbuzz 최적화에 대한 몇 가지 아이디어가 필요하다면, 내 C fizzbuzz를 최대한 (네이티브 함수를 사용하지 않고) 만들 수 있습니다 : http://pastie.org/3739291. 사용 된 주요 기술은 루프 언 롤링입니다. – Matt
DCPU16의 컨텍스트에서 "최적화"란 무엇입니까? 지시 사항이 덜 있습니까? – lunixbochs
@lunixbochs,주기가 짧습니다. 사이클은 이미 문서화되어 있습니다. – Matt