2010-04-26 78 views
0

你好,大家好, 有人能幫我擺脫我的處境,即時尋找一名在Assembler中執行JMP(Jump)指令的指導員。我發現它可能是Flex/Bison的goto函數,但我真的不知道該怎麼做。有任何想法。我非常感謝你的幫助。謝謝。Flex/bison中的JMP指令

下面是它的樣子。與JMP教練一起,他去了標籤L1。

:L1 
IF FLAG AND X"0001" 
EVT 23; 
ELSE 
WAIT 500 ms; 
JMP L1; 
END IF; 
+1

不太清楚你在說什麼,但* while *循環會很好地代替你在那裏的代碼位。 – slugster 2010-04-26 11:02:00

+0

Hallo slugster,我的意思是,它的全面語法分析,我希望我建立的解釋器應該承認JMP教練,當我給出像頂部的輸入,並讓我回來,使用JMP和它跳起來到標籤L1。我已經構建了一個語法樹,在那裏他可以識別和while語句操作符和更大的lower equal操作符現在我需要JMP相同的,如果你去問這個問題,我如何在flex/bison中實現ifstatement,你會發現代碼。看看它,如果你有一個想法,我將非常感激。 – Imran 2010-04-27 06:58:15

回答

1

要實現你需要添加標籤

label: ':' NAME { /* code to store the label */ }; 

和一些語法文法支持解析跳轉命令

jmp: JMP NAME { /* code to look-up label and go there */ }; 

請記住,推遲檢查的跳轉指令所有跳轉目標直到解析結束,否則你無法跳轉到前面。