가능한 한 데이터 기반 설계를 권장합니다. 가능한 한 데이터에서 FSM을 설명합니다.
2 차원 상태 및 다음 상태 테이블로 DFA를 구현하고이 테이블에 따라 입력을 읽고 상태를 변경하는 간단한 반복 모터를 만들었습니다.
이 테이블 (FASM) 어떻게 생겼는지입니다 :
dfa_chars db '=','<','>','!','/',',','*','(',')','{','}','+','-',' ',';',TAB, CR, LF; N, A
dfa db $07,$04,$05,$06,$0a,$10,$11,$12,$13,$14,$15,$16,$17,$00,$18,$00,$0b,$1d,$08,$09; 0 WS
db $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$0b,$1d,$01,$01; 1 //
db $02,$02,$02,$02,$02,$02,$03,$02,$02,$02,$02,$02,$02,$02,$02,$02,$02,$02,$02,$02; 2 /*
db $02,$02,$02,$02,$1d,$02,$03,$02,$02,$02,$02,$02,$02,$02,$02,$02,$02,$02,$02,$02; 3 /**
db $19,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20; 4 <
db $1a,$21,$21,$21,$21,$21,$21,$21,$21,$21,$21,$21,$21,$21,$21,$21,$21,$21,$21,$21; 5 >
db $1b,$22,$22,$22,$22,$22,$22,$22,$22,$22,$22,$22,$22,$22,$22,$22,$22,$22,$22,$22; 6 !
db $1c,$23,$23,$23,$23,$23,$23,$23,$23,$23,$23,$23,$23,$23,$23,$23,$23,$23,$23,$23; 7 =
db $24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$08,$24; 8 N
db $25,$25,$25,$25,$25,$25,$25,$25,$25,$25,$25,$25,$25,$25,$25,$25,$25,$25,$09,$09; 9 A+N
db $26,$26,$26,$26,$01,$26,$02,$26,$26,$26,$26,$26,$26,$26,$26,$26,$26,$26,$26,$26; a/
db $27,$27,$27,$27,$27,$27,$27,$27,$27,$27,$27,$27,$27,$27,$27,$27,$27,$1d,$27,$27; b CR
이 질문은 중복 인 경우 내가 죄송하지만 이미이 사이트에 게시 된 것과 관련이 없습니다, 그들은 매우 다른 것 같다. –
도움이된다면 먼저 다른 언어로 FSM을 구현하십시오. 또한 항상 FSM을 그려야합니다. 시각적 다이어그램은 매우 유용합니다. –
고마워요. 파이썬을 사용해보십시오. 어셈블리에서 재귀 사용 팁을 주시겠습니까? –