1.一種順序匯編指令程序驗(yàn)證方法,其特征是包括如下步驟:
建立指令語義規(guī)則:對(duì)指令系統(tǒng)中用匯編語句表示的每一條指令建立一個(gè)語義規(guī)則;
建立順序匯編指令程序狀態(tài)空間:依次獲取順序匯編指令程序中操作數(shù)的地址a1,a2,…,aM、長度l1,l2,…,lM和初始數(shù)值x1,x2,…,xM;獲取的所有操作數(shù)的集合作為程序的工作集,程序的工作集中每個(gè)操作數(shù)都獲得一個(gè)數(shù)值后作為程序的一個(gè)狀態(tài)向量,程序的工作集中所有操作數(shù)的初始數(shù)值是程序的初始狀態(tài)向量,所有狀態(tài)向量構(gòu)成程序的狀態(tài)向量空間;
順序匯編指令程序語義規(guī)約:對(duì)于程序的每一條指令依次進(jìn)行語義規(guī)約;對(duì)于第j條指令,根據(jù)指令的指令助記符、源操作數(shù)和目標(biāo)操作數(shù)將程序的工作集中所有操作數(shù)的值都規(guī)約成由程序的初始狀態(tài)向量表示的新的狀態(tài)向量,并將新的狀態(tài)向量記為ej,1,ej,2,……,ej,M,其中j表示指令序號(hào),j取值從1到N,N為指令總數(shù),M表示所有操作數(shù)的總數(shù);
語義證明腳本生成:依次對(duì)順序匯編指令程序中的指令根據(jù)指令的語義規(guī)則、指令執(zhí)行前的程序的狀態(tài)向量,生成指令執(zhí)行后新的狀態(tài)向量為規(guī)約出來的狀態(tài)向量ej,1,ej,2,……,ej,M的證明腳本。
2.根據(jù)權(quán)利要求1所述的一種順序匯編指令程序驗(yàn)證方法,其特征是,建立指令語義規(guī)則方法如下:
指令I(lǐng)表達(dá)式如下:
指令助記符源操作數(shù),目標(biāo)操作數(shù)
指令執(zhí)行前的狀態(tài)向量s0表示為:s0.aj=x0,j,j=1,2,…,M;
指令執(zhí)行后的狀態(tài)向量s1表示為:s1.aj=x1,j,j=1,2,…,M;
其中aj程序的工作集中第j個(gè)操作數(shù)的地址,x0,j表示指令執(zhí)行前地址為aj的操作數(shù)的值,x1,j表示指令執(zhí)行后地址為aj的操作數(shù)的值,M是操作數(shù)的總數(shù);
則指令I(lǐng)的語義規(guī)則為:
I∧s1→(s1.aj=s0.aj=x0,j,j=1,2,…,M,j≠v)∧s1.av=exp(x0,u,x0,v),其中u和v分別是指令的源操作數(shù)與目標(biāo)操作數(shù)的下標(biāo);exp(x0,u,x0,v)表示由指令I(lǐng)執(zhí)行前s0的狀態(tài)分量x0,u,x0,v構(gòu)成的表達(dá)式,表達(dá)式exp是根據(jù)指令I(lǐng)的指令助記符確定,“∧”是數(shù)理邏輯中的“合取”連接詞,“→”是“隱含”連接詞。
3.根據(jù)權(quán)利要求1所述的一種順序匯編指令程序驗(yàn)證方法,其特征是,順序匯編指令程序語義規(guī)約的方法如下: