2012-01-22 148 views
-1

我需要計算將爲簡單彙編語言代碼生成的指令數。因此,即使有任何循環,我也可以計算循環中的指令數量。我只需要它,這樣我就可以確定我可以使用-p選項來指定每條指令在代碼中的次數。我在widows xp電腦上使用masm。計算X86彙編語言代碼中的指令數

+0

目前尚不清楚爲什麼源代碼不夠用。你能給個例子嗎?另外,'-p'選項是做什麼的? –

+0

@alex -p選項。就像編譯器中的選項一樣。它有助於逐行跟蹤代碼。當我給這個命令調試program.exe與-p選項。它爲我提供了該指令的所有寄存器的內容。如果再次按下-p,它將移動到代碼中的第二條指令,並向我提供該指令執行的寄存器內容。就像明智的我需要確定多少次我需要給予-p選項。我可以計算不包含分支和循環的簡單代碼的行數。但是帶有循環的代碼很難確定 –

+0

這不僅僅是「困難」,而且是棘手的。 – StilesCrisis

回答

3

這實際上比您想象的要困難得多。 (有人會說不可能 - 見http://en.wikipedia.org/wiki/Halting_problem

如果代碼依賴於任何類型的數據(例如從RAM加載值),其行爲可能會根據數據包含的內容大幅改變,這將影響指令執行。例如如果它是一個循環,它可能會從內存某處加載它的迭代計數。所以它可以執行100條指令,或100000000條指令。