專利名稱:計算機匯編語言的輔助分析裝置及分析方法
技術(shù)領域:
本發(fā)明涉及一種計算機匯編語言的輔助分析裝置及分析方法,有助于分析或編寫計算機匯編語目。
背景技術(shù):
對于初學者來說,計算機匯編語言晦澀難懂,程序運行過程中寄存器、存儲器、指針或位存儲器中數(shù)據(jù)的變化不直觀,不利于理解和記憶。此前,雖然在匯編語言開發(fā)軟件平臺上有過類似的數(shù)據(jù)分析過程,但是在匯編語言的分析和編寫時,作為一種輔助工具有意識地加以整理并明確提出的目前還沒有。
發(fā)明內(nèi)容
·
本發(fā)明的目的是提供一種計算機匯編語言的輔助分析裝置及分析方法,將匯編語言的指令、操作數(shù)、數(shù)據(jù)流等以表格形式直觀體現(xiàn),使得計算機匯編語言的分析過程變得輕松有效,便于匯編語言的初學者進行理解,從而在分析或編寫匯編語言時省時省力。為了達到上述目的,本發(fā)明的技術(shù)方案是提供一種計算機匯編語言的輔助分析裝置,其包含
控制器,其控制整個輔助分析裝置的工作運行,并提供與外部控制驅(qū)動系統(tǒng)通訊的接
Π ;
輸入裝置,其與所述控制器連接,將以匯編語言編寫的程序?qū)懭牖驅(qū)胨鲚o助分析
裝置;
程序分析器,其與所述控制器連接,對所述程序進行解析,并給出該程序中所使用的指令、操作數(shù)、數(shù)據(jù)單元,以及數(shù)據(jù)流的變化情況;
顯示裝置,其與所述控制器連接,輸出顯示一個與所述程序的指令、操作數(shù)、數(shù)據(jù)單元及數(shù)據(jù)流相匹配的表格;所述表格是一個M+3行、N+2列的表格,其中,M是該程序的指令數(shù),N是該程序中使用的數(shù)據(jù)單元的數(shù)量;所述數(shù)據(jù)單元包括寄存器、存儲器、指針、位存儲器及其任意組合。所述程序分析器進一步包含指令分析器,所述指令分析器對所述程序所使用的M條指令進行解析,并通知所述控制器,在所述輸出顯示裝置輸出的表格第一列的第三行到第M+2行依次填入這些指令,還在表格第一列的第一行填入“指令” 一詞作為標識。所述程序分析器進一步包含操作數(shù)分析器,所述操作數(shù)分析器解析該程序中與各條指令相對應的操作數(shù),并通知所述控制器,在所述輸出顯示裝置輸出的表格第二列的第三行到第M+ 2行依次填入這些操作數(shù),還在表格第二列的第一行填入“操作數(shù)” 一詞作為標識。所述程序分析器進一步包含數(shù)據(jù)流分析器,所述數(shù)據(jù)流分析器解析該程序中所使用的數(shù)據(jù)單元、及其中數(shù)據(jù)的初始值和變化情況,并通知所述控制器,在所述輸出顯示裝置輸出的表格第一行的第三列到第N+ 2列,分別填入各個數(shù)據(jù)單元的名稱作為標識;在所述表格第二行的第三列到第N+ 2列,對應填入這些數(shù)據(jù)單元中數(shù)據(jù)的初始值;在所述表格第三行到第M+2行、第三列到第N+ 2列的矩陣中,對應填入各個數(shù)據(jù)單元中根據(jù)相應指令及操作數(shù)而發(fā)生數(shù)值改變的數(shù)據(jù),若同一列的上下行之間數(shù)據(jù)不變,則使得下面一行保持空格狀態(tài);所述表格的最后一行,即M+3行,是結(jié)果行,在該行的第三列到第N+ 2列填入程序運行的最后結(jié)果。本發(fā)明的另一個技術(shù)方案是提供一種計算機匯編語言的輔助分析方法,使用上述的輔助分析裝置實現(xiàn),所述方法包含以下步驟
步驟I、通過輸入裝置,編寫或?qū)胍欢位趨R編語言的程序;
步驟2、使用程序分析器對該程序的內(nèi)容進行解析,給出該程序中所使用的指令、操作數(shù)、數(shù)據(jù)單元,以及數(shù)據(jù)流的變化情況,并通知控制器,在顯示裝置上輸出一個M+3行、N+2列的表格;
其中,M是該程序中使用的指令數(shù),N是該程序中使用的數(shù)據(jù)單元的數(shù)量;所述數(shù)據(jù)單 元包括寄存器、存儲器、指針、位存儲器及其任意組合。步驟2中進一步包含步驟2. 1,S卩,由指令分析器對所述程序所使用的M條指令進行解析,并通知所述控制器,在所述輸出顯示裝置輸出的表格第一列的第三行到第M+ 2行依次填入這些指令,還在表格第一列的第一行填入“指令”一詞作為標識。步驟2中進一步包含步驟2. 2,S卩,由操作數(shù)分析器解析該程序中與各條指令相對應的操作數(shù),并通知所述控制器,在所述輸出顯示裝置輸出的表格第二列的第三行到第M+2行依次填入這些操作數(shù),還在表格第二列的第一行填入“操作數(shù)” 一詞作為標識。步驟2中進一步包含步驟2. 3,S卩,由數(shù)據(jù)流分析器解析該程序中所使用的數(shù)據(jù)單元、及其中數(shù)據(jù)的初始值和變化情況,并通知所述控制器,在所述輸出顯示裝置輸出的表格第一行的第三列到第N+ 2列,分別填入各個數(shù)據(jù)單元的名稱作為標識;在所述表格第二行的第三列到第N+ 2列,對應填入這些數(shù)據(jù)單元中數(shù)據(jù)的初始值;在所述表格第三行到第M+2行、第三列到第N+ 2列的矩陣中,對應填入各個數(shù)據(jù)單元中根據(jù)相應指令及操作數(shù)而發(fā)生數(shù)值改變的數(shù)據(jù),若同一列的上下行之間數(shù)據(jù)不變,則使得下面一行保持空格狀態(tài);所述表格的最后一行,即第M+3行,是結(jié)果行,在該行的第三列到第N+ 2列填入程序運行的最后結(jié)果。使用本發(fā)明所述計算機匯編語言的輔助分析裝置及分析方法,其優(yōu)點在于本發(fā)明將匯編語言的指令、操作數(shù)、數(shù)據(jù)流等以表格形式直觀體現(xiàn),該表格的行列數(shù)分別根據(jù)程序的指令數(shù)及使用的寄存器、存儲器、指針、位存儲器等數(shù)據(jù)單元數(shù)來靈活設置;并且,僅僅在數(shù)據(jù)變化時才填入相應的數(shù)據(jù)單元格內(nèi),使得數(shù)據(jù)的流動變化狀態(tài)清楚,使得計算機匯編語言的分析過程變得輕松有效,便于匯編語言的初學者進行理解,從而在分析或編寫匯編語言時省時省力。
圖I是本發(fā)明所述輔助分析裝置的框架結(jié)構(gòu)示意圖。
具體實施例方式本發(fā)明基于計算機匯編語言的表格分析法,表格分析法是將一段由匯編語言編寫的程序,以表格形式直觀表現(xiàn)來進行輔助分析的方法。以下用表I提供的一個具體實例作為示范來說明。該程序首先是在寄存器的R6R7單元存放了一個16位無符號數(shù)5677H,并在R2R3單元和R4R5單元分別存放了另外兩個16位無符號數(shù)1354H和3A21H。之后,將R6R7單元存放的16位無符號數(shù)據(jù),先后減去R2R3單元和R4R5單元存放的16位無符號數(shù)據(jù),并將差值留在R6R7單元中。利用程序運行時數(shù)據(jù)流使用過的有關累加器A、寄存器R2 R7等,用列表的方法分析程序如下表I所示。表I本發(fā)明提供的一種計算機匯編語言的表格分析法的表格示例
權(quán)利要求
1.一種計算機匯編語言的輔助分析裝置,其特征在于,包含 控制器,其控制整個輔助分析裝置的工作運行,并提供與外部控制驅(qū)動系統(tǒng)通訊的接Π ; 輸入裝置,其與所述控制器連接,將以匯編語言編寫的程序?qū)懭牖驅(qū)胨鲚o助分析裝置; 程序分析器,其與所述控制器連接,對所述程序進行解析,并給出該程序中所使用的指令、操作數(shù)、數(shù)據(jù)單元,以及數(shù)據(jù)流的變化情況; 顯示裝置,其與所述控制器連接,輸出顯示一個與所述程序的指令、操作數(shù)、數(shù)據(jù)單元及數(shù)據(jù)流相匹配的表格;所述表格是ー個M+3行、N+2列的表格,其中,M是該程序的指令數(shù),N是該程序中使用的數(shù)據(jù)單元的數(shù)量;所述數(shù)據(jù)単元包括寄存器、存儲器、指針、位存儲器及其任意組合。
2.如權(quán)利要求I所述的輔助分析裝置,其特征在于,所述程序分析器進ー步包含指令分析器,所述指令分析器對所述程序所使用的M條指令進行解析,并通知所述控制器,在所述輸出顯示裝置輸出的表格第一列的第三行到第M+2行依次填入這些指令,還在表格第一列的第一行填入“指令” 一詞作為標識。
3.如權(quán)利要求2所述的輔助分析裝置,其特征在于,所述程序分析器進ー步包含操作數(shù)分析器,所述操作數(shù)分析器解析該程序中與各條指令相對應的操作數(shù),并通知所述控制器,在所述輸出顯示裝置輸出的表格第二列的第三行到第M+ 2行依次填入這些操作數(shù),還在表格第二列的第一行填入“操作數(shù)” 一詞作為標識。
4.如權(quán)利要求3所述的輔助分析裝置,其特征在干,所述程序分析器進ー步包含數(shù)據(jù)流分析器,所述數(shù)據(jù)流分析器解析該程序中所使用的數(shù)據(jù)單元、及其中數(shù)據(jù)的初始值和變化情況,并通知所述控制器,在所述輸出顯示裝置輸出的表格第一行的第三列到第N+ 2列,分別填入各個數(shù)據(jù)単元的名稱作為標識;在所述表格第二行的第三列到第N+ 2列,對應填入這些數(shù)據(jù)單元中數(shù)據(jù)的初始值;在所述表格第三行到第M+2行、第三列到第N+ 2列的矩陣中,對應填入各個數(shù)據(jù)単元中根據(jù)相應指令及操作數(shù)而發(fā)生數(shù)值改變的數(shù)據(jù),若同一列的上下行之間數(shù)據(jù)不變,則使得下面一行保持空格狀態(tài);所述表格的最后一行,即M+3行,是結(jié)果行,在該行的第三列到第N+ 2列填入程序運行的最后結(jié)果。
5.一種計算機匯編語言的輔助分析方法,使用如權(quán)利要求I所述的輔助分析裝置,其特征在于,所述方法包含以下步驟 步驟I、通過輸入裝置,編寫或?qū)胍欢位趨R編語言的程序; 步驟2、使用程序分析器對該程序的內(nèi)容進行解析,給出該程序中所使用的指令、操作數(shù)、數(shù)據(jù)單元,以及數(shù)據(jù)流的變化情況,并通知控制器,在顯示裝置上輸出ー個M+3行、N+2列的表格; 其中,M是該程序中使用的指令數(shù),N是該程序中使用的數(shù)據(jù)單元的數(shù)量;所述數(shù)據(jù)單元包括寄存器、存儲器、指針、位存儲器及其任意組合。
6.如權(quán)利要求5所述的輔助分析方法,其特征在于,步驟2中進ー步包含步驟2.1,即,由指令分析器對所述程序所使用的M條指令進行解析,并通知所述控制器,在所述輸出顯示裝置輸出的表格第一列的第三行到第M+ 2行依次填入這些指令,還在表格第一列的第一行填入“指令” 一詞作為標識。
7.如權(quán)利要求6所述的輔助分析方法,其特征在干,步驟2中進ー步包含步驟2.2,即,由操作數(shù)分析器解析該程序中與各條指令相對應的操作數(shù),并通知所述控制器,在所述輸出顯示裝置輸出的表格第二列的第三行到第M+ 2行依次填入這些操作數(shù),還在表格第二列的第一行填入“操作數(shù)” 一詞作為標識。
8.如權(quán)利要求7所述的輔助分析方法,其特征在干,步驟2中進ー步包含步驟2.3,即,由數(shù)據(jù)流分析器解析該程序中所使用的數(shù)據(jù)單元、及其中數(shù)據(jù)的初始值和變化情況,并通知所述控制器,在所述輸出顯示裝置輸出的表格第一行的第三列到第N+ 2列,分別填入各個數(shù)據(jù)単元的名稱作為標識;在所述表格第二行的第三列到第N+ 2列,對應填入這些數(shù)據(jù)単元中數(shù)據(jù)的初始值;在所述表格第三行到第M+2行、第三列到第N+ 2列的矩陣中,對應填入各個數(shù)據(jù)単元中根據(jù)相應指令及操作數(shù)而發(fā)生數(shù)值改變的數(shù)據(jù),若同一列的上下行之間數(shù)據(jù)不變,則使得下面一行保持空格狀態(tài);所述表格的最后一行,即第M+3行,是結(jié)果行,在該行的第三列到第N+ 2列填入程序運行的最后結(jié)果。
全文摘要
本發(fā)明涉及一種計算機匯編語言的輔助分析裝置及其分析方法,設置有控制器、輸入裝置、顯示裝置和程序分析器。先將以匯編語言編寫的程序?qū)懭牖驅(qū)?,?jīng)過程序解析后給出所使用的指令、操作數(shù)、數(shù)據(jù)單元,以及數(shù)據(jù)流的變化情況,并據(jù)此輸出顯示一個相匹配的表格用于分析。該表格的行列數(shù)分別根據(jù)程序的指令數(shù)及使用的寄存器、存儲器、指針、位存儲器等數(shù)據(jù)單元數(shù)來靈活設置。并且,僅僅在數(shù)據(jù)變化時才填入相應的數(shù)據(jù)單元格內(nèi),使得數(shù)據(jù)的流動變化狀態(tài)清楚,從而在分析或編寫匯編語言時便于理解、省時省力。
文檔編號G06F9/45GK102693147SQ201210193620
公開日2012年9月26日 申請日期2012年6月13日 優(yōu)先權(quán)日2012年6月13日
發(fā)明者劉敏, 談進 申請人:上海第二工業(yè)大學