亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種節(jié)省存儲(chǔ)空間的數(shù)據(jù)處理方法

文檔序號(hào):6518755閱讀:522來(lái)源:國(guó)知局
一種節(jié)省存儲(chǔ)空間的數(shù)據(jù)處理方法
【專利摘要】本發(fā)明公開(kāi)一種節(jié)省存儲(chǔ)空間的數(shù)據(jù)處理的方法,屬于計(jì)算機(jī)【技術(shù)領(lǐng)域】。所述方法包括,A:CPU用第一寄存器中的數(shù)據(jù)更新第一存儲(chǔ)區(qū)中的數(shù)據(jù);B:判斷第一寄存器中的數(shù)據(jù)是否為第一預(yù)設(shè)值,如果不是第一預(yù)設(shè)值,則從第四存儲(chǔ)區(qū)中獲取一個(gè)字節(jié)的數(shù)據(jù),保存在第三存儲(chǔ)區(qū)中,判斷第二寄存器中的數(shù)據(jù)是否為第二預(yù)設(shè)值,如果是,則將第二寄存器中的數(shù)據(jù)清零,然后調(diào)用第一數(shù)據(jù)處理模塊對(duì)第二存儲(chǔ)區(qū)中的數(shù)據(jù)進(jìn)行處理,用處理結(jié)果更新第二存儲(chǔ)區(qū),否則返回B;如果是第一預(yù)設(shè)值,則對(duì)第三存儲(chǔ)區(qū)中的數(shù)據(jù)進(jìn)行填充,用填充結(jié)果調(diào)用第一數(shù)據(jù)處理模塊,得到的結(jié)果即為最終結(jié)果。采用本發(fā)明的技術(shù)方案,實(shí)現(xiàn)了內(nèi)存的復(fù)用,減少了對(duì)空間的占用,提高了計(jì)算效率。
【專利說(shuō)明】ー種節(jié)省存儲(chǔ)空間的數(shù)據(jù)處理方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于計(jì)算機(jī)【技術(shù)領(lǐng)域】,尤其涉及一種節(jié)省存儲(chǔ)空間的數(shù)據(jù)處理的方法?!颈尘凹夹g(shù)】
[0002]數(shù)據(jù)處理是對(duì)數(shù)據(jù)的采集、存儲(chǔ)、檢索、加工、變換和傳輸,數(shù)據(jù)是對(duì)事實(shí)、概念或指令的一種表達(dá)形式,可由人工或自動(dòng)化裝置進(jìn)行處理,數(shù)據(jù)處理是系統(tǒng)工程和自動(dòng)控制的基本環(huán)節(jié),數(shù)據(jù)處理貫穿與社會(huì)生產(chǎn)和社會(huì)生活的各個(gè)領(lǐng)域,數(shù)據(jù)處理技術(shù)的發(fā)展及其應(yīng)用的廣度和深度,極大的影響這人類社會(huì)發(fā)展的進(jìn)程。
[0003]在現(xiàn)有技術(shù)中,在進(jìn)行散列算法計(jì)算時(shí),往往要占用很大的內(nèi)存空間,當(dāng)內(nèi)存空間較小時(shí),很難進(jìn)行散列計(jì)算。

【發(fā)明內(nèi)容】

[0004]本發(fā)明的目的是為了解決現(xiàn)有技術(shù)中存在的不足,提供了一種節(jié)省存儲(chǔ)空間的數(shù)據(jù)處理的方法。
[0005]本發(fā)明采用的技術(shù)方案是:一種節(jié)省存儲(chǔ)空間的數(shù)據(jù)處理的方法,包括:
[0006]步驟101:CPU調(diào)用初始化模塊,初始化第一存儲(chǔ)區(qū)、第二存儲(chǔ)區(qū)、第三存儲(chǔ)區(qū)、第五存儲(chǔ)區(qū)、第一寄存器和第二寄存器;其中,所述第一寄存器用于存儲(chǔ)第四存儲(chǔ)區(qū)中的數(shù)據(jù)的長(zhǎng)度;第二寄存器用于存儲(chǔ)所述第三存儲(chǔ)區(qū)中的數(shù)據(jù)的長(zhǎng)度;
[0007]步驟102:所述CPU獲取所述第一寄存器中的數(shù)據(jù),更新所述第一存儲(chǔ)區(qū)中的數(shù)據(jù);
[0008]步驟103:所述CPU判斷所述第一寄存器中的數(shù)據(jù)是否為第一預(yù)設(shè)值,如果是,則執(zhí)行步驟112,否則執(zhí)行步驟104 ;
[0009]步驟104:所述CPU根據(jù)所述第四存儲(chǔ)區(qū)的首地址和當(dāng)前偏移地址,從所述第四存儲(chǔ)區(qū)中獲取ー個(gè)字節(jié)的數(shù)據(jù),保存在所述第三存儲(chǔ)區(qū)中,更新所述第二寄存器中的數(shù)據(jù),更新所述當(dāng)前偏移地址,并更新所述第一寄存器中的數(shù)據(jù),判斷所述第二寄存器中的數(shù)據(jù)是否等于第二預(yù)設(shè)值,如果是,則將所述第二寄存器中的數(shù)據(jù)清零,執(zhí)行步驟105,否則返回步驟 103 ;
[0010]步驟105:所述CPU調(diào)用第一數(shù)據(jù)處理模塊,將所述第二存儲(chǔ)區(qū)中的數(shù)據(jù)存放在第五存儲(chǔ)區(qū)中,獲取循環(huán)計(jì)數(shù)器的當(dāng)前計(jì)數(shù)值;
[0011]步驟106:所述CPU對(duì)所述第二存儲(chǔ)區(qū)中的數(shù)據(jù)進(jìn)行處理,將處理結(jié)果保存在第三寄存器中;調(diào)用第二數(shù)據(jù)處理模塊,對(duì)所述當(dāng)前計(jì)數(shù)值與預(yù)設(shè)字節(jié)做與運(yùn)算,對(duì)所述當(dāng)前計(jì)數(shù)值加第三預(yù)設(shè)值的結(jié)果與所述預(yù)設(shè)字節(jié)做與運(yùn)算,根據(jù)兩個(gè)運(yùn)算結(jié)果分別從所述第三存儲(chǔ)區(qū)中獲取對(duì)應(yīng)的兩個(gè)數(shù)據(jù),對(duì)獲取到的兩個(gè)數(shù)據(jù)進(jìn)行異或處理,將結(jié)果保存在第四寄存器中;
[0012]步驟107:所述CPU對(duì)所述第三寄存器中的數(shù)據(jù)和所述第四寄存器中的數(shù)據(jù)進(jìn)行處理,將結(jié)果保存在第五寄存器中;[0013]步驟108:所述CPU判斷所述當(dāng)前計(jì)數(shù)值是否大于或等于第四預(yù)設(shè)值,如果是,則調(diào)用第三數(shù)據(jù)處理模塊,將處理結(jié)果保存在第六寄存器中,用所述第六寄存器中的數(shù)據(jù)更新所述第三存儲(chǔ)區(qū)中與所述當(dāng)前計(jì)數(shù)值對(duì)應(yīng)的數(shù)據(jù),執(zhí)行步驟109,否則直接執(zhí)行步驟109 ;
[0014]步驟109:所述CPU對(duì)所述第六寄存器中的數(shù)據(jù)和所述第二存儲(chǔ)區(qū)中的數(shù)據(jù)進(jìn)行處理,將結(jié)果保存在第七寄存器中,對(duì)所述第二存儲(chǔ)區(qū)中的數(shù)據(jù)進(jìn)行處理,并用所述第五寄存器中的數(shù)據(jù)更新所述第二存儲(chǔ)區(qū),根據(jù)第一移位寄存器中的數(shù)據(jù)對(duì)所述第七寄存器中數(shù)據(jù)執(zhí)行循環(huán)移位操作,將結(jié)果保存在第八寄存器中,根據(jù)第二移位寄存器中的數(shù)據(jù)對(duì)所述第八寄存器中的數(shù)據(jù)執(zhí)行循環(huán)移位操作,將結(jié)果保存在第九寄存器中,然后對(duì)所述第七寄存器中的數(shù)據(jù)、所述第八寄存器中的數(shù)據(jù)、所述第九寄存器中的數(shù)據(jù)進(jìn)行處理,將結(jié)果保存在第十寄存器中,用所述第十寄存器中的數(shù)據(jù)更新所述第二存儲(chǔ)區(qū);
[0015]步驟110:所述CPU判斷所述當(dāng)前計(jì)數(shù)值是否等于第五預(yù)設(shè)值,如果是,則執(zhí)行步驟111,否則更新所述當(dāng)前計(jì)數(shù)值,返回執(zhí)行步驟106 ;
[0016]步驟111:所述CPU對(duì)所述第二存儲(chǔ)區(qū)中的數(shù)據(jù)和所述第五存儲(chǔ)區(qū)中的數(shù)據(jù)做異或處理,用處理結(jié)果更新所述第二存儲(chǔ)區(qū),退出所述第一數(shù)據(jù)處理模塊,執(zhí)行步驟103 ;
[0017]步驟112:所述CPU調(diào)用填充模塊,對(duì)所述第三存儲(chǔ)區(qū)中的數(shù)據(jù)進(jìn)行填充,調(diào)用所述第一數(shù)據(jù)處理模塊對(duì)填充結(jié)果進(jìn)行處理,得到處理結(jié)果。
[0018]所述步驟101中,所述初始化第二寄存器,具體為:將所述第二寄存器中的數(shù)據(jù)初始化為所述第一寄存器中的數(shù)據(jù)左移3位,再與0x3F做與運(yùn)算的結(jié)果。
[0019]所述步驟102中,所述更新所述第一存儲(chǔ)區(qū)中的數(shù)據(jù),具體為:所述CPU將所述第一寄存器中的數(shù)據(jù)與所述第一存儲(chǔ)區(qū)中的數(shù)據(jù)相加,得到的結(jié)果保存在所述第一存儲(chǔ)區(qū)中。
[0020]所述步驟104中,所述更新所述第一寄存器中的數(shù)據(jù),具體為:所述CPU將所述第一寄存器中的數(shù)據(jù)減去預(yù)設(shè)步長(zhǎng)的結(jié)果或者將所述第一寄存器中的數(shù)據(jù)加上預(yù)設(shè)步長(zhǎng)的結(jié)果作為更新后的所述第一寄存器中的數(shù)據(jù)。
[0021]所述更新所述第二寄存器中的數(shù)據(jù),具體為:所述CPU將所述第二寄存器中的數(shù)據(jù)減去預(yù)設(shè)步長(zhǎng)的結(jié)果或者將所述第二寄存器中的數(shù)據(jù)加上預(yù)設(shè)步長(zhǎng)的結(jié)果作為更新后的所述第二寄存器中的數(shù)據(jù)。
[0022]所述步驟108中,所述調(diào)用第三數(shù)據(jù)處理模塊,將處理結(jié)果保存在第六寄存器中,用所述第六寄存器中的數(shù)據(jù)更新所述第三存儲(chǔ)區(qū)中與所述當(dāng)前計(jì)數(shù)值對(duì)應(yīng)的數(shù)據(jù),具體為:
[0023]步驟A:所述CPU調(diào)用所述第三數(shù)據(jù)處理模塊,將所述當(dāng)前計(jì)數(shù)值減去第六預(yù)設(shè)值再與所述預(yù)設(shè)字節(jié)做與運(yùn)算得到第二計(jì)數(shù)值,將所述當(dāng)前計(jì)數(shù)值減去第七預(yù)設(shè)值再與所述預(yù)設(shè)字節(jié)做與運(yùn)算得到第三計(jì)數(shù)值,將所述當(dāng)前計(jì)數(shù)值減去第八預(yù)設(shè)值再與所述預(yù)設(shè)字節(jié)做與運(yùn)算得到第四計(jì)數(shù)值,將所述當(dāng)前計(jì)數(shù)值減去第九預(yù)設(shè)值再與所述預(yù)設(shè)字節(jié)做與運(yùn)算得到第五計(jì)數(shù)值,將所述當(dāng)前計(jì)數(shù)值減去第十預(yù)設(shè)值再與所述預(yù)設(shè)字節(jié)做與運(yùn)算得到第六計(jì)數(shù)值,從所述第三存儲(chǔ)區(qū)中分別獲取與所述第二計(jì)數(shù)值、所述第三計(jì)數(shù)值、所述第四計(jì)數(shù)值、所述第五計(jì)數(shù)值和所述第六計(jì)數(shù)值對(duì)應(yīng)的第三數(shù)值、第四數(shù)值、第五數(shù)值、第六數(shù)值和第七數(shù)值;[0024]步驟B:所述CPU根據(jù)第三移位寄存器中的數(shù)據(jù)對(duì)所述第五數(shù)值執(zhí)行循環(huán)移位操作,對(duì)得到的循環(huán)移位結(jié)果、所述第三數(shù)值、所述第四數(shù)值做異或運(yùn)算,將結(jié)果保存在第十五寄存器中;
[0025]步驟C:所述CPU根據(jù)第五移位寄存器中的數(shù)據(jù)對(duì)所述第十五寄存器中的數(shù)據(jù)執(zhí)行循環(huán)移位操作,將該移位結(jié)果保存在第十七寄存器中;
[0026]步驟D:所述CPU根據(jù)第六移位寄存器中的數(shù)據(jù)對(duì)所述第十七寄存器中的數(shù)據(jù)執(zhí)行循環(huán)移位操作,將該移位結(jié)果保存在第十八寄存器中;
[0027]步驟E:所述CPU對(duì)所述第十五寄存器、所述第十七寄存器和所述第十八寄存器做異或運(yùn)算,將結(jié)果保存在第十六寄存器中;
[0028]步驟F:所述CPU根據(jù)第四移位寄存器中的數(shù)據(jù)對(duì)所述第六數(shù)值執(zhí)行循環(huán)移位操作,得到的循環(huán)移位結(jié)果與所述第七數(shù)值、所述第十六寄存器中的數(shù)據(jù)做異或運(yùn)算,將結(jié)果保存在第六寄存器中,將所述第三存儲(chǔ)區(qū)中與所述當(dāng)前計(jì)數(shù)值對(duì)應(yīng)的數(shù)據(jù)替換為所述第六寄存器中的數(shù)據(jù)。
[0029]所述步驟B中,所述根據(jù)第三移位寄存器中的數(shù)據(jù)對(duì)所述第五數(shù)值執(zhí)行循環(huán)移位操作,具體為:將所述第五數(shù)值循環(huán)左移2個(gè)字節(jié),再循環(huán)右移I位;
[0030]所述步驟C中,所述根據(jù)第五移位寄存器中的數(shù)據(jù)對(duì)所述第十五寄存器中的數(shù)據(jù)執(zhí)行循環(huán)移位操作,具體為:將所述第十五寄存器中的數(shù)據(jù)循環(huán)左移2個(gè)字節(jié),再循環(huán)左移I位;
[0031]所述步驟D中,所述根據(jù)第六移位寄存器中的數(shù)據(jù)對(duì)所述第十七寄存器中的數(shù)據(jù)執(zhí)行循環(huán)移位操作,具體為:將所述第十七寄存器中的數(shù)據(jù)循環(huán)左移I個(gè)字節(jié);
[0032]所述步驟F中,所述根據(jù)第四移位寄存器中的數(shù)據(jù)對(duì)所述第六數(shù)值執(zhí)行循環(huán)移位操作,具體為:將所述第六數(shù)值循環(huán)左移2個(gè)字節(jié),再循環(huán)右移I位。
[0033]所述步驟109中,所述根據(jù)第一移位寄存器中的數(shù)據(jù)對(duì)所述第七寄存器中數(shù)據(jù)執(zhí)行循環(huán)移位操作,具體為:將所述第七寄存器中數(shù)據(jù)循環(huán)左移I個(gè)字節(jié),再循環(huán)左移I位;
[0034]所述步驟109中,所述根據(jù)第二移位寄存器中的數(shù)據(jù)對(duì)所述第八寄存器中的數(shù)據(jù)執(zhí)行循環(huán)移位操作,具體為:將所述第八寄存器中的數(shù)據(jù)循環(huán)左移I個(gè)字節(jié)。
[0035]所述左移I個(gè)字節(jié),具體為:所述CPU將ー個(gè)字長(zhǎng)的數(shù)據(jù)中的各字節(jié)數(shù)據(jù)進(jìn)行循環(huán)移位,即對(duì)第一字節(jié)、第二字節(jié)、第三字節(jié)和第四字節(jié)進(jìn)行循環(huán)移位:所述CPU將所述第一字節(jié)的數(shù)據(jù)移至預(yù)設(shè)寄存器中,將所述第二字節(jié)的數(shù)據(jù)移至所述第一字節(jié)的位置,將所述第三字節(jié)的數(shù)據(jù)移至所述第二字節(jié)的位置,將所述第四字節(jié)的數(shù)據(jù)移至所述第三字節(jié)的位置,將所述預(yù)設(shè)寄存器中的數(shù)據(jù)移至所述第四字節(jié)的位置。
[0036]所述步驟B中,所述根據(jù)第三移位寄存器中的數(shù)據(jù)對(duì)所述第五數(shù)值執(zhí)行循環(huán)移位操作,具體為:將所述第三移位寄存器的位數(shù)與字長(zhǎng)做除法,得到商和余數(shù),判斷余數(shù)是否大于字長(zhǎng)與2相除的結(jié)果,如果是,則將商加I的結(jié)果作為要移動(dòng)的字節(jié)數(shù),將字長(zhǎng)與余數(shù)的差值作為要反向移動(dòng)的位數(shù),否則將商作為要移動(dòng)的字節(jié)數(shù),將余數(shù)作為要移動(dòng)的位數(shù);
[0037]所述步驟C中,所述根據(jù)第五移位寄存器中的數(shù)據(jù)對(duì)所述第十五寄存器中的數(shù)據(jù)執(zhí)行循環(huán)移位操作,具體為:將所述第五移位寄存器中的數(shù)據(jù)與字長(zhǎng)做除法,得到商和余數(shù),判斷余數(shù)是否大于字長(zhǎng)與2相除的結(jié)果,如果是,則將商加I的結(jié)果作為要移動(dòng)的字節(jié)數(shù),將字長(zhǎng)與余數(shù)的差值作為要反向移動(dòng)的位數(shù),否則將商作為要移動(dòng)的字節(jié)數(shù),將余數(shù)作為要移動(dòng)的位數(shù);
[0038]所述步驟D中,所述根據(jù)第六移位寄存器中的數(shù)據(jù)對(duì)所述第十七寄存器中的數(shù)據(jù)執(zhí)行循環(huán)移位操作,具體為:將所述第十七寄存器中的數(shù)據(jù)循環(huán)左移I個(gè)字節(jié);
[0039]所述步驟F中,所述根據(jù)第四移位寄存器中的數(shù)據(jù)對(duì)所述第六數(shù)值執(zhí)行循環(huán)移位操作,具體為:將所述第四移位寄存器中的位數(shù)與字長(zhǎng)做除法,得到商和余數(shù),判斷余數(shù)是否大于字長(zhǎng)與2相除的結(jié)果,如果是,則將商加I的結(jié)果作為要移動(dòng)的字節(jié)數(shù),將字長(zhǎng)與余數(shù)的差值作為要反向移動(dòng)的位數(shù),否則將商作為要移動(dòng)的字節(jié)數(shù),將余數(shù)作為要移動(dòng)的位數(shù)。
[0040]所述步驟109中,所述根據(jù)第一移位寄存器中的數(shù)據(jù)對(duì)所述第七寄存器中數(shù)據(jù)執(zhí)行循環(huán)移位操作,具體為:將所述第一移位寄存器中的數(shù)據(jù)與字長(zhǎng)做除法,得到商和余數(shù),判斷余數(shù)是否大于字長(zhǎng)與2相除的結(jié)果,如果是,則將商加I的結(jié)果作為要移動(dòng)的字節(jié)數(shù),將字長(zhǎng)與余數(shù)的差值作為要反向移動(dòng)的位數(shù),否則將商作為要移動(dòng)的字節(jié)數(shù),將余數(shù)作為要移動(dòng)的位數(shù);
[0041]所述步驟109中,所述根據(jù)第二移位寄存器中的數(shù)據(jù)對(duì)所述第八寄存器中的數(shù)據(jù)執(zhí)行循環(huán)移位操作,具體為:將所述所述第八寄存器中的數(shù)據(jù)循環(huán)左移I個(gè)字節(jié)。
[0042]所述步驟106中,所述CPU對(duì)所述第二存儲(chǔ)區(qū)中的數(shù)據(jù)進(jìn)行處理,將處理結(jié)果保存在第三寄存器中,具體為:
[0043]步驟A-Ol:所述CPU獲取所述第二存儲(chǔ)區(qū)中的第一數(shù)據(jù)和第五數(shù)據(jù),將所述第一數(shù)據(jù)循環(huán)左移4位,然后再循環(huán)左移I個(gè)字節(jié),得到的結(jié)果保存在第十一寄存器中;
[0044]步驟A-02:所述CPU獲取預(yù)設(shè)存儲(chǔ)區(qū)中與所述當(dāng)前計(jì)數(shù)值對(duì)應(yīng)的預(yù)設(shè)數(shù)據(jù),對(duì)所述預(yù)設(shè)數(shù)據(jù)、所述第五數(shù)據(jù)和所述第一數(shù)值做加法,將加法結(jié)果循環(huán)左移I個(gè)字節(jié),再循環(huán)右移I位,得到的結(jié)果保存在第十二寄存器中;
[0045]步驟A-03:所述CPU對(duì)所述第十一寄存器中的數(shù)據(jù)和所述第十二寄存器中的數(shù)據(jù)做異或運(yùn)算,得到的結(jié)果保存在所述第三寄存器中。
[0046]所述步驟106中,所述對(duì)所述當(dāng)前計(jì)數(shù)值與預(yù)設(shè)字節(jié)做與運(yùn)算,對(duì)所述當(dāng)前計(jì)數(shù)值加第三預(yù)設(shè)值的結(jié)果與所述預(yù)設(shè)字節(jié)做與運(yùn)算,根據(jù)兩個(gè)運(yùn)算結(jié)果分別從所述第三存儲(chǔ)區(qū)中獲取對(duì)應(yīng)的兩個(gè)數(shù)據(jù),對(duì)獲取到的兩個(gè)數(shù)據(jù)進(jìn)行異或處理,將結(jié)果保存在第四寄存器中,具體為:
[0047]步驟A-1l:所述CPU對(duì)所述當(dāng)前計(jì)數(shù)值和所述預(yù)設(shè)字節(jié)做與運(yùn)算,得到第一結(jié)果,從所述第三存儲(chǔ)區(qū)中獲取與所述第一結(jié)果對(duì)應(yīng)的第一數(shù)值;
[0048]步驟A-12:所述CPU將所述當(dāng)前計(jì)數(shù)值與所述第三預(yù)設(shè)值做加法運(yùn)算,得到第一計(jì)數(shù)值,對(duì)所述第一計(jì)數(shù)值和所述預(yù)設(shè)字節(jié)做與運(yùn)算,得到第二結(jié)果,從所述第三存儲(chǔ)區(qū)中獲取與所述第二結(jié)果對(duì)應(yīng)的第二數(shù)值;
[0049]步驟A-13:所述CPU對(duì)所述第三存儲(chǔ)區(qū)中的所述第一數(shù)值與所述第二數(shù)值做異或運(yùn)算,將結(jié)果保存在所述第四寄存器中。
[0050]所述步驟107,具體為:
[0051]步驟107-1:所述CPU獲取所述第二存儲(chǔ)區(qū)中的第一數(shù)據(jù)、第二數(shù)據(jù)和第三數(shù)據(jù),調(diào)用第六數(shù)據(jù)處理模塊,將得到的結(jié)果保存在第十三寄存器中,退出所述第六數(shù)據(jù)處理模塊;
[0052]步驟107-2:所述CPU從所述第二存儲(chǔ)區(qū)中獲取第四數(shù)據(jù),對(duì)所述第三寄存器中的數(shù)據(jù)、所述第四寄存器中的數(shù)據(jù)、所述第四數(shù)據(jù)和所述第十三寄存器中的數(shù)據(jù)做加法運(yùn)算,得到的運(yùn)算結(jié)果保存在第五寄存器中。
[0053]所述步驟107-1中,所述調(diào)用第六數(shù)據(jù)處理模塊,將得到的結(jié)果保存在第十三寄存器中,退出所述第六數(shù)據(jù)處理模塊,具體為:
[0054]步驟107-11:所述CPU判斷所述當(dāng)前計(jì)數(shù)值的范圍,如果所述當(dāng)前計(jì)數(shù)值大于等于第一限值且小于等于第二限值時(shí),執(zhí)行步驟107-12,如果所述當(dāng)前計(jì)數(shù)值大于等于第三限值且小于等于第四限值時(shí),執(zhí)行步驟107-13 ;
[0055]步驟107-12:所述CPU對(duì)所述第一數(shù)據(jù)、所述第二數(shù)據(jù)和所述第三數(shù)據(jù)做異或運(yùn)算,將運(yùn)算結(jié)果保存在第十三寄存器中,退出所述第六數(shù)據(jù)處理模塊,執(zhí)行步驟107-2 ;
[0056]步驟107-13 =CPU將第一數(shù)據(jù)與第二數(shù)據(jù)做與運(yùn)算的結(jié)果,再與第一數(shù)據(jù)和第三數(shù)據(jù)做與運(yùn)算的結(jié)果做或運(yùn)算,得到的結(jié)果再與第二數(shù)據(jù)和第三數(shù)據(jù)做與運(yùn)算的結(jié)果做或運(yùn)算,將運(yùn)算結(jié)果保存在所述第十三寄存器中,退出所述第六數(shù)據(jù)處理模塊,執(zhí)行步驟107-2。
[0057]所述步驟109中,所述CPU對(duì)所述第六寄存器中的數(shù)據(jù)和所述第二存儲(chǔ)區(qū)中的數(shù)據(jù)進(jìn)行處理,將結(jié)果保存在第七寄存器中,具體為:
[0058]步驟112-1:所述CPU根據(jù)所述第二存儲(chǔ)區(qū)中的第五數(shù)據(jù)、第六數(shù)據(jù)和第七數(shù)據(jù),調(diào)用第七數(shù)據(jù)處理模塊,將該調(diào)用結(jié)果保存在第十四寄存器中,退出所述第七數(shù)據(jù)處理模塊;
[0059]步驟112-2:所述CPU從所述第二存儲(chǔ)區(qū)中獲取第八數(shù)據(jù),對(duì)第十二寄存器中的數(shù)據(jù)、第六寄存器中的數(shù)據(jù)、所述第八數(shù)據(jù)和所述第十四寄存器中的數(shù)據(jù)做加法運(yùn)算,將結(jié)果保存在第七寄存器中。
[0060]所述步驟112-1中,所述調(diào)用第七數(shù)據(jù)處理模塊,將該調(diào)用結(jié)果保存在第十四寄存器中,退出所述第七數(shù)據(jù)處理模塊,具體為:
[0061]步驟112-11:所述CPU判斷所述當(dāng)前計(jì)數(shù)值的范圍,如果當(dāng)所述前計(jì)數(shù)值大于等于第一限值且小于等于第二限值,則執(zhí)行步驟112-12,如果所述當(dāng)前計(jì)數(shù)值大于等于第三限值且小于等于第四限值,則執(zhí)行步驟112-13 ;
[0062]步驟112-12:所述CPU對(duì)所述第五數(shù)據(jù)與所述第六數(shù)據(jù)做異或運(yùn)算,再與所述第七數(shù)據(jù)做異或運(yùn)算,將運(yùn)算結(jié)果保存在第十四寄存器中,退出所述第七數(shù)據(jù)處理模塊;
[0063]步驟112-13:所述CPU將所述第五數(shù)據(jù)與所述第六數(shù)據(jù)做與運(yùn)算的結(jié)果,和所述第五數(shù)據(jù)做非運(yùn)算再與所述第六數(shù)據(jù)做與運(yùn)算操作的結(jié)果做或運(yùn)算,將運(yùn)算結(jié)果保存在第十四寄存器中,退出所述第七數(shù)據(jù)處理模塊。
[0064]所述步驟109中,所述對(duì)所述第二存儲(chǔ)區(qū)中的數(shù)據(jù)進(jìn)行處理,并用所述第五寄存器中的數(shù)據(jù)更新所述第二存儲(chǔ)區(qū),具體為:
[0065]步驟A3:所述CPU將所述第二存儲(chǔ)區(qū)中的第四數(shù)據(jù)替換為第三數(shù)據(jù);將所述第二存儲(chǔ)區(qū)中的第二數(shù)據(jù)循環(huán)左移I位,再循環(huán)左移I個(gè)字節(jié),將第三數(shù)據(jù)替換為將該循環(huán)移位結(jié)果;將所述第二存儲(chǔ)區(qū)中的第二數(shù)據(jù)替換為第一數(shù)據(jù);將所述第二存儲(chǔ)區(qū)中的第一數(shù)據(jù)替換為第五寄存器中的數(shù)據(jù);;[0066]步驟B3:所述CPU將所述第二存儲(chǔ)區(qū)中的第八數(shù)據(jù)替換為第七數(shù)據(jù);將所述第二存儲(chǔ)區(qū)中的第六數(shù)據(jù)循環(huán)左移3位,再循環(huán)左移2個(gè)字節(jié),將第七數(shù)據(jù)替換為該循環(huán)移位結(jié)果;將所述第二存儲(chǔ)區(qū)中的第六數(shù)據(jù)替換為第五數(shù)據(jù);根據(jù)第七寄存器中的數(shù)據(jù),調(diào)用第四數(shù)據(jù)處理模塊,將得到的結(jié)果保存在第十寄存器中,將所述第二存儲(chǔ)區(qū)中的第五數(shù)據(jù)替換為所述第十寄存器中的數(shù)據(jù)。
[0067]所述步驟112中,所述CPU調(diào)用填充模塊,對(duì)所述第三存儲(chǔ)區(qū)中的數(shù)據(jù)進(jìn)行填充,具體為:CPU在所述第三存儲(chǔ)區(qū)中的數(shù)據(jù)后填充比特位1、填充512減去第二寄存器中的數(shù)據(jù)再減去I的長(zhǎng)度的O、填充所述第一存儲(chǔ)區(qū)中的數(shù)據(jù)。
[0068]本發(fā)明取得的有益效果是:采用本發(fā)明的技術(shù)方法,提供了一種很大程度上節(jié)省內(nèi)存空間的散列算法,實(shí)現(xiàn)了內(nèi)存的復(fù)用,減少了對(duì)空間的占用,提高了計(jì)算效率。
【專利附圖】

【附圖說(shuō)明】
[0069]為了更清楚的說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單的介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0070]圖1是本發(fā)明實(shí)施例1提供的一種節(jié)省存儲(chǔ)空間的數(shù)據(jù)處理的方法流程圖;
[0071]圖2是本發(fā)明實(shí)施例1提供的CPU調(diào)用第一數(shù)據(jù)處理模塊進(jìn)行處理的方法流程圖;
[0072]圖3是本發(fā)明實(shí)施例1提供的CPU執(zhí)行循環(huán)左移I個(gè)字節(jié)的操作流程圖;
[0073]圖4是本發(fā)明實(shí)施例1提供的CPU調(diào)用第二數(shù)據(jù)處理模塊進(jìn)行處理的流程圖;
[0074]圖5是本發(fā)明實(shí)施例1提供的CPU調(diào)用第三數(shù)據(jù)處理模塊進(jìn)行處理的流程圖;
[0075]圖6是本發(fā)明實(shí)施例1提供的CPU調(diào)用第四數(shù)據(jù)處理模塊進(jìn)行處理的流程圖;
[0076]圖7是本發(fā)明實(shí)施例1提供的CPU調(diào)用第五數(shù)據(jù)處理模塊進(jìn)行處理的流程圖。
【具體實(shí)施方式】
[0077]下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0078]實(shí)施例1
[0079]本發(fā)明實(shí)施例1提供的一種節(jié)省存儲(chǔ)空間的數(shù)據(jù)處理的方法,本實(shí)施例中,第一存儲(chǔ)區(qū)用于存儲(chǔ)運(yùn)算數(shù)據(jù)的長(zhǎng)度,第二存儲(chǔ)區(qū)用于存儲(chǔ)運(yùn)算過(guò)程中的操作結(jié)果,第三存儲(chǔ)區(qū)用于存儲(chǔ)運(yùn)算數(shù)據(jù),本實(shí)施例優(yōu)選的,I個(gè)字長(zhǎng)為32位;
[0080]如圖1所示,CPU執(zhí)行的一種節(jié)省存儲(chǔ)空間的數(shù)據(jù)處理的方法,包括以下步驟:
[0081]步驟A:CPU調(diào)用初始化模塊,初始化第一存儲(chǔ)區(qū)、第二存儲(chǔ)區(qū)、第三存儲(chǔ)區(qū)、第五存儲(chǔ)區(qū)、第一寄存器和第二寄存器;
[0082]本實(shí)施例中,優(yōu)選的,將第二存儲(chǔ)區(qū)存儲(chǔ)的第一數(shù)據(jù)初始化為0X7380166f、第二數(shù)據(jù)初始化為0x4914b2b9、第三數(shù)據(jù)初始化為0xl72442d7、第四數(shù)據(jù)初始化為0xda8a0600、第五數(shù)據(jù)初始化為0xa96f30bc、第六數(shù)據(jù)初始化為0xl63138aa、第七數(shù)據(jù)初始化為0xe38dee4d、第八數(shù)據(jù)初始化為0Xb0fb0e4e,將第一存儲(chǔ)區(qū)、第三存儲(chǔ)區(qū)、第五存儲(chǔ)區(qū)及第一寄存器中的數(shù)據(jù)初始化為O,將第二寄存器初始化為第一寄存器中的數(shù)據(jù)左移3位,再與0x3f做與運(yùn)算的結(jié)果;
[0083]步驟B:CPU獲取第一寄存器中的數(shù)據(jù),更新所述第一存儲(chǔ)區(qū)中的數(shù)據(jù);
[0084]本實(shí)施例中,第一寄存器用于存放第四存儲(chǔ)區(qū)中的數(shù)據(jù)的長(zhǎng)度;
[0085]所述更新所述第一存儲(chǔ)區(qū)中的數(shù)據(jù),具體為:CPU將第一寄存器中的數(shù)據(jù)與所述第一存儲(chǔ)區(qū)中的數(shù)據(jù)相加,得到的結(jié)果保存在所述第一存儲(chǔ)區(qū)中;
[0086]例如,第四存儲(chǔ)區(qū)中的數(shù)據(jù)為:0001020304050607 08090A0B 0C0D0E0F1011121314151617 18191A1B 1C1D1E1F 20212223 24252627 28292A2B 2C2D2E2F3031323334353637 38393A3B 3C3D3E3F 40414243 44454647 48494A4B 4C4D4E4F5051525354555657 58595A5B 5C5D5E5F 60616263 64656667 68696A6B 6C6D6E6F7071727374757677 78797A7B 7C7D7E7F 80818283 84858687 88898A8B 8C8D8E8F9091929394959697 98999A9B 9C9D9E9F A0A1A2A3 A4A5A6A7 A8A9AAAB ACADAEAFB0B1B2B3B4B5B6B7 B8B9BABB BCBDBEBF C0C1C2C3 C4C5C6C7 C8C9CACB CCCDCECFD0D1D2D3 D4D5D6D7D8D9DADB DCDDDEDF E0E1E2E3 E4E5E6E7 E8E9EAEBECEDEEEF F0F1F2F3 F4F5F6F7F8F9FAFB FCFDFEFF ;第一寄存器中的數(shù)據(jù)為256 ;
[0087]步驟C =CPU判斷所述第一寄存器中的數(shù)據(jù)是否為第一預(yù)設(shè)值,如果是,則執(zhí)行步驟G,否則執(zhí)行步驟D ;
[0088]本實(shí)施例中,優(yōu)選的,所述第一預(yù)設(shè)值為0 ;
[0089]所述更新所述第一寄存器中的數(shù)據(jù),具體為:將所述第一寄存器中的數(shù)據(jù)減去預(yù)設(shè)步長(zhǎng)或者將所述第一寄存器中的數(shù)據(jù)加上預(yù)設(shè)步長(zhǎng);
[0090]步驟D =CPU從第四存儲(chǔ)區(qū)中獲取ー個(gè)字節(jié)的數(shù)據(jù),保存在所述第三存儲(chǔ)區(qū)中,并更新所述第一寄存器中的數(shù)據(jù);
[0091]具體的,CPU根據(jù)第四存儲(chǔ)區(qū)的首地址和當(dāng)前偏移地址,從第四存儲(chǔ)區(qū)中獲取ー個(gè)字節(jié)的數(shù)據(jù),然后再更新當(dāng)前偏移地址,具體為:將當(dāng)前偏移地址更新為當(dāng)前偏移地址加上一個(gè)字節(jié)的長(zhǎng)度;
[0092]步驟E:CPU根據(jù)所述第三存儲(chǔ)區(qū)中的數(shù)據(jù)變化,更新第二寄存器中的數(shù)據(jù),判斷第二寄存器中的數(shù)據(jù)是否等于第二預(yù)設(shè)值,如果是,則CPU將第二寄存器中的數(shù)據(jù)清零,執(zhí)行步驟F,否則返回執(zhí)行步驟C ;
[0093]本實(shí)施例中,優(yōu)選的,所述第二預(yù)設(shè)值為64 ;
[0094]本實(shí)施例中,所述第二寄存器用于存放第三存儲(chǔ)區(qū)中的數(shù)據(jù)的長(zhǎng)度;
[0095]所述更新所述第二寄存器中的數(shù)據(jù),具體為:將所述第二寄存器中的數(shù)據(jù)減去預(yù)設(shè)步長(zhǎng)或者將所述第二寄存器中的數(shù)據(jù)加上預(yù)設(shè)步長(zhǎng);
[0096]所述步驟C、步驟D和步驟E還可以為:
[0097]步驟C’:CPU用第二預(yù)設(shè)值減去第二寄存器中的數(shù)據(jù),得到的結(jié)果保存在臨時(shí)寄存器中;
[0098]步驟D’:CPU判斷臨時(shí)寄存器中的數(shù)據(jù)是否大于第一寄存器中的數(shù)據(jù),如果是,則將第四存儲(chǔ)區(qū)中的數(shù)據(jù)按字節(jié)依次寫(xiě)入第三存儲(chǔ)區(qū)中,執(zhí)行步驟H,否則從第四存儲(chǔ)區(qū)中獲取與第一寄存器中的數(shù)據(jù)相同長(zhǎng)度的字節(jié)數(shù),并按字節(jié)依次寫(xiě)入第三存儲(chǔ)區(qū)中,執(zhí)行步-F;
[0099]步驟F:CPU調(diào)用第一數(shù)據(jù)處理模塊對(duì)第三存儲(chǔ)區(qū)中的數(shù)據(jù)進(jìn)行運(yùn)算,用運(yùn)算得到的結(jié)果更新第二存儲(chǔ)區(qū),退出第一數(shù)據(jù)處理模塊,執(zhí)行步驟C ;
[0100]步驟G:CPU調(diào)用填充模塊,對(duì)所述第三存儲(chǔ)區(qū)中的數(shù)據(jù)進(jìn)行填充,調(diào)用所述第一數(shù)據(jù)處理模塊對(duì)填充結(jié)果進(jìn)行處理,用處理結(jié)果更新所述第二存儲(chǔ)區(qū);
[0101]本實(shí)施例中,所述CPU按照預(yù)設(shè)填充格式對(duì)第三存儲(chǔ)區(qū)中的數(shù)據(jù)進(jìn)行填充,具體為:CPU在第三存儲(chǔ)區(qū)中的數(shù)據(jù)后填充比特位1、填充512減去第二寄存器中的數(shù)據(jù)再減去I的長(zhǎng)度的O、填充所述第一存儲(chǔ)區(qū)中的數(shù)據(jù);本實(shí)施例中,調(diào)用第一數(shù)據(jù)處理模塊對(duì)填充結(jié)果進(jìn)行計(jì)算,得到的運(yùn)算結(jié)果即為最終結(jié)果。
[0102]參見(jiàn)圖2,所述CPU調(diào)用第一數(shù)據(jù)處理模塊對(duì)第三存儲(chǔ)區(qū)中的數(shù)據(jù)進(jìn)行運(yùn)算,用運(yùn)算得到的結(jié)果更新第二存儲(chǔ)區(qū),退出第一數(shù)據(jù)處理模塊,具體為,
[0103]步驟101:CPU將第二存儲(chǔ)區(qū)中的數(shù)據(jù)存放在第五存儲(chǔ)區(qū)中,獲取循環(huán)計(jì)數(shù)器的值,作為當(dāng)前計(jì)數(shù)值;
[0104]本實(shí)施例中,當(dāng)循環(huán)計(jì)數(shù)器的值為0時(shí),第五存儲(chǔ)區(qū)中的值為:0x7380166f0x4914b2b9 0xl72442d7 0xda8a0600 0xa96f30bc 0xl63138aa 0xe38dee4d0xb0fb0e4e ;
[0105]本實(shí)施例中,循環(huán)計(jì)數(shù)區(qū)的初始值為0,本實(shí)施例以當(dāng)前計(jì)數(shù)值為0來(lái)說(shuō)明;
[0106]步驟102:CPU獲取第二存儲(chǔ)區(qū)中的第一數(shù)據(jù)和第五數(shù)據(jù),將第一數(shù)據(jù)循環(huán)左移4位,然后再循環(huán)左移I個(gè)字節(jié),得到的結(jié)果保存在第十一寄存器中;獲取預(yù)設(shè)存儲(chǔ)區(qū)中與當(dāng)前計(jì)數(shù)值對(duì)應(yīng)的預(yù)設(shè)數(shù)據(jù),對(duì)預(yù)·設(shè)數(shù)據(jù)、第五數(shù)據(jù)和第十一寄存器中的數(shù)據(jù)做加法,將得到的加法結(jié)果循環(huán)右移I位,再循環(huán)左移I個(gè)字節(jié),得到的結(jié)果保存在第十二寄存器中;
[0107]本實(shí)施例中,所述將第一數(shù)據(jù)循環(huán)左移4位,然后再循環(huán)左移I個(gè)字節(jié),還可以為:將要循環(huán)移位的位數(shù)與字長(zhǎng)做除法,得到商和余數(shù),判斷余數(shù)是否大于字長(zhǎng)與2相除的結(jié)果,如果是,則將商加I的結(jié)果作為要移動(dòng)的字節(jié)數(shù),將字長(zhǎng)與余數(shù)的差值作為要反向移動(dòng)的位數(shù),否則將商作為要移動(dòng)的字節(jié)數(shù),將余數(shù)作為要移動(dòng)的位數(shù);本步驟中,要循環(huán)移位的位數(shù)為12,將12除以字長(zhǎng)8,得到商為I,余數(shù)為4,4不大于字長(zhǎng)8與2相除的結(jié)果4,所述商I為要移動(dòng)的字節(jié)數(shù),余數(shù)4為要移動(dòng)的位數(shù),即循環(huán)左移I個(gè)字節(jié),再循環(huán)左移4位;
[0108]例如,獲取到的預(yù)設(shè)數(shù)據(jù)為79cc4519,第五數(shù)據(jù)為A96F30BC,第一數(shù)據(jù)為7380166F,對(duì)第一數(shù)據(jù)循環(huán)左移4位,得到380166F7,再循環(huán)左移I個(gè)字節(jié),得到的結(jié)果0166F738保存在第十一寄存器中,對(duì)預(yù)設(shè)數(shù)據(jù)、第五數(shù)據(jù)和第十一寄存器中的數(shù)據(jù)做加法,得到的加法結(jié)果為24A26D0D,將加法結(jié)果循環(huán)右移I位,得到92513686,再循環(huán)左移I個(gè)字節(jié),得到的結(jié)果51368692保存在第十二寄存器中;
[0109]本實(shí)施例中,預(yù)設(shè)存儲(chǔ)區(qū)中存放的預(yù)設(shè)數(shù)據(jù),具體為:預(yù)先將與當(dāng)前計(jì)數(shù)值對(duì)應(yīng)的數(shù)據(jù)再循環(huán)左移當(dāng)前計(jì)數(shù)值位的預(yù)設(shè)數(shù)據(jù)保存在預(yù)設(shè)存儲(chǔ)區(qū)中。
[0110]步驟103:CPU對(duì)第十一寄存器中的數(shù)據(jù)和第十二寄存器中的數(shù)據(jù)做異或運(yùn)算,得到的結(jié)果保存在第三寄存器中;
[0111]將第十一寄存器中的數(shù)據(jù)0X0166F738和第十二寄存器中的數(shù)據(jù)0x51368692做異或運(yùn)算,得到的結(jié)果0x505071AA保存在第三寄存器中;[0112]步驟104:CPU調(diào)用第二數(shù)據(jù)處理模塊,將調(diào)用結(jié)果保存在第四寄存器中,退出第二數(shù)據(jù)處理模塊,對(duì)第二存儲(chǔ)區(qū)中的第一數(shù)據(jù)、第二數(shù)據(jù)和第三數(shù)據(jù),調(diào)用第六數(shù)據(jù)處理模塊,將得到的結(jié)果保存在第十三寄存器中,退出第六數(shù)據(jù)處理模塊;
[0113]本實(shí)施例中,經(jīng)調(diào)用第二數(shù)據(jù)處理模塊,得到的結(jié)果為0x10101010,保存在第四寄存器中;
[0114]本實(shí)施例中,所述CPU調(diào)用第六數(shù)據(jù)處理模塊,將調(diào)用結(jié)果保存在第十三寄存器中,具體為:
[0115]步驟1:CPU判斷當(dāng)前計(jì)數(shù)值的范圍,如果當(dāng)前計(jì)數(shù)值大于等于O且小于等于15時(shí),執(zhí)行步驟2,如果當(dāng)前計(jì)數(shù)值大于等于16且小于等于63時(shí),執(zhí)行步驟3 ;
[0116]步驟2:CPU對(duì)第一數(shù)據(jù)、第二數(shù)據(jù)和第三數(shù)據(jù)做異或運(yùn)算,將運(yùn)算結(jié)果保存在第十三寄存器中,退出第六數(shù)據(jù)處理模塊;
[0117]對(duì)第一數(shù)據(jù)7380166F、第二數(shù)據(jù)4914B2B9、第三數(shù)據(jù)172442D7做異或運(yùn)算,將得到的結(jié)果2DB0E601保存在第十三寄存器中;
[0118]步驟3:CPU將第一數(shù)據(jù)與第二數(shù)據(jù)做與運(yùn)算的結(jié)果,再與第一數(shù)據(jù)和第三數(shù)據(jù)做與運(yùn)算的結(jié)果做或運(yùn)算,得到的結(jié)果再與第二數(shù)據(jù)和第三數(shù)據(jù)做與運(yùn)算的結(jié)果做或運(yùn)算,將運(yùn)算結(jié)果保存在第十三寄存器中,退出第六數(shù)據(jù)處理模塊。
[0119]步驟105:CPU從第二存儲(chǔ)區(qū)中獲取第四數(shù)據(jù),對(duì)第三寄存器中的數(shù)據(jù)、第四寄存器中的數(shù)據(jù)、第四數(shù)據(jù)和第十三寄存器中的數(shù)據(jù)做加法運(yùn)算,得到的運(yùn)算結(jié)果保存在第五寄存器中;
[0120]對(duì)第三寄存器中的數(shù)據(jù)505071AA、第四數(shù)據(jù)DA8A0600、第四寄存器中的數(shù)據(jù)10101010、第十三寄存器中的數(shù)據(jù)2DB0E601相加,得到的運(yùn)算結(jié)果689B6DBB保存在第五寄
存器中。
[0121]步驟106:CPU調(diào)用第三數(shù)據(jù)處理模塊,將該調(diào)用結(jié)果保存在第六寄存器中,退出第三數(shù)據(jù)處理模塊,根據(jù)第二存儲(chǔ)區(qū)中的第五數(shù)據(jù)、第六數(shù)據(jù)和第七數(shù)據(jù),調(diào)用第七數(shù)據(jù)處理模塊,將該調(diào)用結(jié)果保存在第十四寄存器中,退出第七數(shù)據(jù)處理模塊;
[0122]本實(shí)施例中,經(jīng)調(diào)用第三數(shù)據(jù)處理模塊,得到的調(diào)用結(jié)果為00010203,保存在第六寄存器中;
[0123]本實(shí)施例中,所述CPU調(diào)用第七數(shù)據(jù)處理模塊,將該調(diào)用結(jié)果保存在第十四寄存器中,具體為:
[0124]步驟1:判斷當(dāng)前計(jì)數(shù)值的范圍,如果當(dāng)前計(jì)數(shù)值大于等于O且小于等于15,則執(zhí)行步驟2,如果當(dāng)前計(jì)數(shù)值大于等于16且小于等于63,則執(zhí)行步驟3 ;
[0125]步驟2:對(duì)第五數(shù)據(jù)與第六數(shù)據(jù)做異或運(yùn)算,再與第七數(shù)據(jù)做異或運(yùn)算,將運(yùn)算結(jié)果保存在第十四寄存器中,退出第七數(shù)據(jù)處理模塊;
[0126]本實(shí)施例中,對(duì)第五數(shù)據(jù)A96F30BC、第六數(shù)據(jù)163138AA和第七數(shù)據(jù)E38DEE4D,進(jìn)行異或運(yùn)算,得到的運(yùn)算結(jié)果5⑶3E65B保存在第十四寄存器中;
[0127]步驟3:CPU將第五數(shù)據(jù)與第六數(shù)據(jù)做與運(yùn)算的結(jié)果,和第五數(shù)據(jù)做非運(yùn)算再與第六數(shù)據(jù)做與運(yùn)算操作的結(jié)果做或運(yùn)算,將運(yùn)算結(jié)果保存在第十四寄存器中,退出第七數(shù)據(jù)處理模塊。
[0128]步驟107:CPU從第二存儲(chǔ)區(qū)中獲取第八數(shù)據(jù),對(duì)第十二寄存器中的數(shù)據(jù)、第六寄存器中的數(shù)據(jù)、第八數(shù)據(jù)和第十四寄存器中的數(shù)據(jù)做加法運(yùn)算,將結(jié)果保存在第七寄存器中;
[0129]本實(shí)施例中,對(duì)第十二寄存器中的數(shù)據(jù)51368692、第六寄存器中的數(shù)據(jù)00010203、第八數(shù)據(jù)B0FB0E4E、第十四寄存器中的數(shù)據(jù)5CD3E65B相加,得到結(jié)果5F067D3E
保存在第七寄存器中。
[0130]步驟108:CPU將第二存儲(chǔ)區(qū)中的第四數(shù)據(jù)替換為第三數(shù)據(jù);將第二存儲(chǔ)區(qū)中的第ニ數(shù)據(jù)循環(huán)左移I位,再循環(huán)左移I個(gè)字節(jié),將第三數(shù)據(jù)替換為將該循環(huán)移位結(jié)果;將第二存儲(chǔ)區(qū)中的第二數(shù)據(jù)替換為第一數(shù)據(jù);將第二存儲(chǔ)區(qū)中的第一數(shù)據(jù)替換為第五寄存器中的數(shù)據(jù);
[0131]本實(shí)施例中,所述將第二存儲(chǔ)區(qū)中的第二數(shù)據(jù)循環(huán)左移I位,再循環(huán)左移I個(gè)字節(jié),還可以為:將要循環(huán)移位的位數(shù)與字長(zhǎng)做除法,得到商和余數(shù),判斷余數(shù)是否大于字長(zhǎng)與2相除的結(jié)果,如果是,則將商加I的結(jié)果作為要移動(dòng)的字節(jié)數(shù),將字長(zhǎng)與余數(shù)的差值作為要反向移動(dòng)的位數(shù),否則將商作為要移動(dòng)的字節(jié)數(shù),將余數(shù)作為要移動(dòng)的位數(shù);本步驟中,要循環(huán)移位的位數(shù)為9,將9除以字長(zhǎng)8,得到商為I,余數(shù)為I,I不大于字長(zhǎng)8與2相除的結(jié)果4,所述商I為要移動(dòng)的字節(jié)數(shù),余數(shù)I為要移動(dòng)的位數(shù),即循環(huán)左移I個(gè)字節(jié),再循環(huán)左移I位;
[0132]本實(shí)施例中,將第四數(shù)據(jù)置為172442D7 ;將第二數(shù)據(jù)4914B2B9循環(huán)左移I位,得到92296572,再循環(huán)左移I個(gè)字節(jié),得到循環(huán)移位結(jié)果29657292,將第ニ存儲(chǔ)區(qū)中的第三數(shù)據(jù)置為29657292 ;將第二數(shù)據(jù)置為7380166F ;將第一數(shù)據(jù)置為第五寄存器中的數(shù)據(jù)689B6DBB。
[0133]步驟109:CPU將第二存儲(chǔ)區(qū)中的第八數(shù)據(jù)替換為第七數(shù)據(jù);將第二存儲(chǔ)區(qū)中的第六數(shù)據(jù)循環(huán)左移3位,再循環(huán)左移2個(gè)字節(jié),將第七數(shù)據(jù)替換為該循環(huán)移位結(jié)果;將第二存儲(chǔ)區(qū)中的第六數(shù)據(jù)替換為第五數(shù)據(jù);根據(jù)第七寄存器中的數(shù)據(jù),調(diào)用第四數(shù)據(jù)處理模塊,將得到的結(jié)果保存在第十寄存器中,退出第四數(shù)據(jù)處理模塊,將第二存儲(chǔ)區(qū)中的第五數(shù)據(jù)替換為第十寄存器中的數(shù)據(jù);
[0134]本實(shí)施例中,所述將第二存儲(chǔ)區(qū)中的第六數(shù)據(jù)循環(huán)左移3位,再循環(huán)左移2個(gè)字節(jié),還可以為:將要循環(huán)移位的位數(shù)與字長(zhǎng)做除法,得到商和余數(shù),判斷余數(shù)是否大于字長(zhǎng)與2相除的結(jié)果,如果是,則將商加I的結(jié)果作為要移動(dòng)的字節(jié)數(shù),將字長(zhǎng)與余數(shù)的差值作為要反向移動(dòng)的位數(shù),否則將商作為要移動(dòng)的字節(jié)數(shù),將余數(shù)作為要移動(dòng)的位數(shù);本步驟中,要循環(huán)移位的位數(shù)為19,將19除以字長(zhǎng)8,得到商為2,余數(shù)為3,3不大于字長(zhǎng)8與2相除的結(jié)果4,所述商2為要移動(dòng)的字節(jié)數(shù),余數(shù)3為要移動(dòng)的位數(shù),即循環(huán)左移2個(gè)字節(jié),再循環(huán)左移3位;
[0135]本實(shí)施例中,將第八數(shù)據(jù)置為E38DEE4D ;將第六數(shù)據(jù)163138AA循環(huán)左移3位,得到B189C550,再循環(huán)左移2個(gè)字節(jié),得到循環(huán)移位結(jié)果C550B189,將第七數(shù)據(jù)置為C550B189 ;將第六數(shù)據(jù)置為A96F30BC ;根據(jù)第七寄存器中的數(shù)據(jù)5F067D3E,調(diào)用第四數(shù)據(jù)處理模塊,得到A980BF8C保存在第十寄存器中,將第五數(shù)據(jù)置為第十寄存器中的數(shù)據(jù)A980BF8C ;
[0136]本實(shí)施例中,步驟109與步驟108無(wú)先后順序,可以調(diào)換執(zhí)行;
[0137]本實(shí)施例中,得到的第二存儲(chǔ)區(qū)中的數(shù)據(jù)為:0x689B6DBB 0x7380166F0x29657292 0xl72442D7 0xA980BF8C 0xA96F30BC 0xC550B189 0xE38DEE4D ;
[0138]步驟110:CPU判斷當(dāng)前計(jì)數(shù)值是否等于第五預(yù)設(shè)值,如果是,則執(zhí)行步驟111,否則更新當(dāng)前計(jì)數(shù)值,執(zhí)行步驟102 ;
[0139]步驟111:CPU對(duì)第二存儲(chǔ)區(qū)中的數(shù)據(jù)和第四存儲(chǔ)區(qū)中的數(shù)據(jù)做異或運(yùn)算,將第二存儲(chǔ)區(qū)中的數(shù)據(jù)替換為該異或運(yùn)算結(jié)果,退出第一數(shù)據(jù)處理模塊。
[0140]參見(jiàn)圖3,以CPU執(zhí)行循環(huán)左移I個(gè)字節(jié)的操作為例來(lái)說(shuō)明,CPU將32位的數(shù)據(jù)按照字節(jié)進(jìn)行循環(huán)移位,即對(duì)第一字節(jié)、第二字節(jié)、第三字節(jié)和第四字節(jié)進(jìn)行循環(huán)移位,具體為:(例如,對(duì)第一數(shù)據(jù)循環(huán)左移I個(gè)字節(jié))
[0141]步驟SO1:CPU將第一字節(jié)的數(shù)據(jù)移至預(yù)設(shè)寄存器中;
[0142]例如,待循環(huán)移位的數(shù)據(jù)為0x7380166F,則第一字節(jié)為0x73、第二字節(jié)為0x80、第三字節(jié)為0x16、第四字節(jié)為0x6F ;將預(yù)設(shè)寄存器中的數(shù)據(jù)置為0x73 ;
[0143]步驟S02 =CPU將第二字節(jié)的數(shù)據(jù)移至第一字節(jié)的位置;
[0144]例如,將第一字節(jié)的位置對(duì)應(yīng)的數(shù)據(jù)置為0x80 ;
[0145]步驟S03 =CPU將第三字節(jié)的數(shù)據(jù)移至第二字節(jié)的位置;
[0146]例如,將第二字節(jié)的位置對(duì)應(yīng)的數(shù)據(jù)置為0x16 ;
[0147]步驟S04:CPU將第四字節(jié)的數(shù)據(jù)移至第三字節(jié)的位置;
[0148]例如,將第二字節(jié)的位置對(duì)應(yīng)的數(shù)據(jù)置為0x6F ;
[0149]步驟S05:CPU將預(yù)設(shè)寄存器中的數(shù)據(jù)移至第四字節(jié)的位置;
[0150]例如,將第四字節(jié)的位置對(duì)應(yīng)的數(shù)據(jù)置為0x73;得到的第一、第二、第三、第四字節(jié)上的數(shù)據(jù)為0x80166F73,實(shí)現(xiàn)了循環(huán)移動(dòng)一個(gè)字節(jié),即循環(huán)移動(dòng)8位。
[0151]參見(jiàn)圖4:步驟104中,所述CPU調(diào)用第二數(shù)據(jù)處理模塊,將調(diào)用結(jié)果保存在第四寄存器中,退出第二數(shù)據(jù)處理模塊,具體為:
[0152]步驟Sll:CPU對(duì)當(dāng)前計(jì)數(shù)值和預(yù)設(shè)字節(jié)做與運(yùn)算,得到第一結(jié)果,從第三存儲(chǔ)區(qū)中獲取與所述第一結(jié)果對(duì)應(yīng)的第一數(shù)值;
[0153]本實(shí)施例中,預(yù)設(shè)字節(jié)為OxOf ;
[0154]步驟S12 =CPU將當(dāng)前計(jì)數(shù)值與第三預(yù)設(shè)值做加法運(yùn)算,得到第一計(jì)數(shù)值,對(duì)第一計(jì)數(shù)值和預(yù)設(shè)字節(jié)做與運(yùn)算,得到第二結(jié)果,從第三存儲(chǔ)區(qū)中獲取與所述第二結(jié)果對(duì)應(yīng)的第二數(shù)值;
[0155]優(yōu)選的,第三預(yù)設(shè)值為4 ;
[0156]本實(shí)施例中,當(dāng)前計(jì)數(shù)值為0,從第三存儲(chǔ)區(qū)中找到對(duì)應(yīng)的第O個(gè)數(shù),即第一數(shù)值為00010203,第一計(jì)數(shù)值為4與OxOf做與運(yùn)算,得到的第二結(jié)果仍為4,從第三存儲(chǔ)區(qū)中找到第4個(gè)數(shù),即第二數(shù)值為10111213 ;
[0157]步驟S13:CPU對(duì)第三存儲(chǔ)區(qū)中的第一數(shù)值與第二數(shù)值做異或運(yùn)算,將結(jié)果保存在第四寄存器中,退出第二數(shù)據(jù)處理模塊;
[0158]對(duì)第三存儲(chǔ)區(qū)中的第一數(shù)值00010203和第二數(shù)值10111213做異或運(yùn)算,得到結(jié)果10101010,保存在第四寄存器中。
[0159]參見(jiàn)圖5:步驟106中,CPU調(diào)用第三數(shù)據(jù)處理模塊,將該調(diào)用結(jié)果保存在第六寄存器中,退出第三數(shù)據(jù)處理模塊,具體為:
[0160]步驟S21:CPU判斷當(dāng)前計(jì)數(shù)值是否大于或等于第四預(yù)設(shè)值,如果是,則執(zhí)行步驟S22,否則退出第三數(shù)據(jù)處理模塊;
[0161]優(yōu)選的,第四預(yù)設(shè)值為16;
[0162]具體的,更新當(dāng)前計(jì)數(shù)值即為將當(dāng)前計(jì)數(shù)值加I ;
[0163]本實(shí)施例中,還可以為:先判斷當(dāng)前計(jì)數(shù)值是否大于或等于第四預(yù)設(shè)值,如果是,則調(diào)用第三數(shù)據(jù)處理模塊,否則執(zhí)行步驟106中根據(jù)第二存儲(chǔ)區(qū)中的第五數(shù)據(jù)、第六數(shù)據(jù)和第七數(shù)據(jù),調(diào)用第七數(shù)據(jù)處理模塊,將該調(diào)用結(jié)果保存在第十四寄存器中;
[0164]步驟S22 =CPU將當(dāng)前計(jì)數(shù)值減去第六預(yù)設(shè)值再與預(yù)設(shè)字節(jié)做與運(yùn)算得到第二計(jì)數(shù)值,將當(dāng)前計(jì)數(shù)值減去第七預(yù)設(shè)值再與預(yù)設(shè)字節(jié)做與運(yùn)算得到第三計(jì)數(shù)值,將當(dāng)前計(jì)數(shù)值減去第八預(yù)設(shè)值再與預(yù)設(shè)字節(jié)做與運(yùn)算得到第四計(jì)數(shù)值,將當(dāng)前計(jì)數(shù)值減去第九預(yù)設(shè)值再與預(yù)設(shè)字節(jié)做與運(yùn)算得到第五計(jì)數(shù)值,將當(dāng)前計(jì)數(shù)值減去第十預(yù)設(shè)值再與預(yù)設(shè)字節(jié)做與運(yùn)算得到第六計(jì)數(shù)值,從第三存儲(chǔ)區(qū)中分別獲取與第二計(jì)數(shù)值、第三計(jì)數(shù)值、第四計(jì)數(shù)值、第五計(jì)數(shù)值和第六計(jì)數(shù)值對(duì)應(yīng)的第三數(shù)值、第四數(shù)值、第五數(shù)值、第六數(shù)值和第七數(shù)值;
[0165]優(yōu)選的,本實(shí)施例中,第六預(yù)設(shè)值為16、第七預(yù)設(shè)值為9、第八預(yù)設(shè)值為3、第九預(yù)設(shè)值為13,第十預(yù)設(shè)值為6;
[0166]步驟S23 =CPU根據(jù)第三移位寄存器中的數(shù)據(jù)將第五數(shù)值循環(huán)左移2個(gè)字節(jié),再循環(huán)右移I位,對(duì)得到的循環(huán)移位結(jié)果、第三數(shù)值、第四數(shù)值做異或運(yùn)算,將結(jié)果保存在第十五寄存器中,根據(jù)第十五寄存器中的數(shù)據(jù)調(diào)用第五數(shù)據(jù)處理模塊,將該調(diào)用結(jié)果保存在第十六寄存器中;
[0167]本實(shí)施例中,所述將第五數(shù)值循環(huán)左移2個(gè)字節(jié),再循環(huán)右移I位,還可以為:將第三移位寄存器的位數(shù)與字長(zhǎng)做除法,得到商和余數(shù),判斷余數(shù)是否大于字長(zhǎng)與2相除的結(jié)果,如果是,則將商加I的結(jié)果作為要移動(dòng)的字節(jié)數(shù),將字長(zhǎng)與余數(shù)的差值作為要反向移動(dòng)的位數(shù),否則將商作為要移動(dòng)的字節(jié)數(shù),將余數(shù)作為要移動(dòng)的位數(shù);本步驟中,要循環(huán)移位的位數(shù)為15,將15除以字長(zhǎng)8,得到商為1,余數(shù)為7,7大于字長(zhǎng)8與2相除的結(jié)果4,所述將商加I即2為要移動(dòng)的字節(jié)數(shù),字長(zhǎng)8減7即I為要移動(dòng)的位數(shù),即循環(huán)左移2個(gè)字節(jié),再循環(huán)右移I位;
[0168]步驟S24:CPU根據(jù)第四移位寄存器中的數(shù)據(jù)將第六數(shù)值循環(huán)左移I個(gè)字節(jié),再循環(huán)右移I位,得到的循環(huán)移位結(jié)果與第七數(shù)值、第十六寄存器中的數(shù)據(jù)做異或運(yùn)算,將結(jié)果保存在第六寄存器中,將第三存儲(chǔ)區(qū)中與當(dāng)前計(jì)數(shù)值對(duì)應(yīng)的數(shù)據(jù)替換為第六寄存器中的數(shù)據(jù),退出第三數(shù)據(jù)處理模塊;
[0169]所述第四移位寄存器中的數(shù)據(jù)為8 ;
[0170]本實(shí)施例中,所述將第六數(shù)值循環(huán)左移I個(gè)字節(jié),再循環(huán)右移I位,還可以為:將第四移位寄存器中的位數(shù)與字長(zhǎng)做除法,得到商和余數(shù),判斷余數(shù)是否大于字長(zhǎng)與2相除的結(jié)果,如果是,則將商加I的結(jié)果作為要移動(dòng)的字節(jié)數(shù),將字長(zhǎng)與余數(shù)的差值作為要反向移動(dòng)的位數(shù),否則將商作為要移動(dòng)的字節(jié)數(shù),將余數(shù)作為要移動(dòng)的位數(shù);本步驟中,要循環(huán)移位的位數(shù)為7,將7除以字長(zhǎng)8,得到商為0,余數(shù)為7,7大于字長(zhǎng)8與2相除的結(jié)果4,所述將商加I即I為要移動(dòng)的字節(jié)數(shù),字長(zhǎng)8減7即I為要移動(dòng)的位數(shù),即循環(huán)左移I個(gè)字節(jié),再循環(huán)右移I位;
[0171]本實(shí)施例中,因?yàn)榈谌鎯?chǔ)區(qū)中當(dāng)前的數(shù)據(jù)只在計(jì)算時(shí)用過(guò)一次,后面再需要,因此執(zhí)行完步驟S24得到的運(yùn)算結(jié)果替換掉第三存儲(chǔ)區(qū)中對(duì)應(yīng)的數(shù)據(jù),無(wú)需再為該調(diào)用結(jié)果分配新的空間,實(shí)現(xiàn)了內(nèi)存的復(fù)用。
[0172]參見(jiàn)圖6,步驟109中,所述CPU根據(jù)第七寄存器中的數(shù)據(jù),調(diào)用第四數(shù)據(jù)處理模塊,將得到的結(jié)果保存在第十寄存器中,退出第四數(shù)據(jù)處理模塊,具體為:
[0173]步驟S31:CPU根據(jù)第一移位寄存器中的數(shù)據(jù)將第七寄存器中的數(shù)據(jù)循環(huán)左移I位,再循環(huán)左移I個(gè)字節(jié),得到結(jié)果保存在第八寄存器中;
[0174]所述第一移位寄存器中的數(shù)據(jù)為9 ;
[0175]本實(shí)施例中,所述將第七寄存器中的數(shù)據(jù)循環(huán)左移I位,再循環(huán)左移I個(gè)字節(jié),還可以為:將第一移位寄存器中的數(shù)據(jù)與字長(zhǎng)做除法,得到商和余數(shù),判斷余數(shù)是否大于字長(zhǎng)與2相除的結(jié)果,如果是,則將商加I的結(jié)果作為要移動(dòng)的字節(jié)數(shù),將字長(zhǎng)與余數(shù)的差值作為要反向移動(dòng)的位數(shù),否則將商作為要移動(dòng)的字節(jié)數(shù),將余數(shù)作為要移動(dòng)的位數(shù);本步驟中,第一移位寄存器中的數(shù)據(jù)為9,將9除以字長(zhǎng)8,得到商為1,余數(shù)為1,I不大于字長(zhǎng)8與2相除的結(jié)果4,所述將商I為要移動(dòng)的字節(jié)數(shù),余數(shù)I為要移動(dòng)的位數(shù),即循環(huán)左移I個(gè)字節(jié),再循環(huán)左移I位;
[0176]步驟S32 =CPU根據(jù)第二移位寄存器中的數(shù)據(jù)將第八寄存器中的數(shù)據(jù)循環(huán)左移I個(gè)字節(jié),將移位結(jié)果保存在第九寄存器中;
[0177]所述第二移位寄存器中的數(shù)據(jù)為8 ;
[0178]步驟S33:CPU對(duì)第七寄存器中的數(shù)據(jù)、第八寄存器中的數(shù)據(jù)、第九寄存器中的數(shù)據(jù)做異或運(yùn)算,將得到的結(jié)果保存在第十寄存器中,退出第四數(shù)據(jù)處理模塊。
[0179]本實(shí)施例在調(diào)用第四數(shù)據(jù)處理模塊時(shí),采用的是將第七寄存器中的數(shù)據(jù)循環(huán)移位后,保存,再直接對(duì)保存的數(shù)據(jù)直接循環(huán)移位即可,無(wú)需重新用第七寄存器中的數(shù)據(jù)多次循環(huán)移位,加快了數(shù)據(jù)處理的速率。
[0180]參見(jiàn)圖7,步驟S23中,所述CPU根據(jù)第十五寄存器中的數(shù)據(jù)調(diào)用第五數(shù)據(jù)處理模塊,將該調(diào)用結(jié)果保存在第十六寄存器中,退出第五數(shù)據(jù)處理模塊,具體為:
[0181]步驟S41:CPU根據(jù)第五移位寄存器中的數(shù)據(jù)將第十五寄存器中的數(shù)據(jù)循環(huán)左移2個(gè)字節(jié),再循環(huán)右移I位,將該移位結(jié)果保存在第十七寄存器中;
[0182]所述第四移位寄存器中的數(shù)據(jù)為17 ;
[0183]本實(shí)施例中,所述將第十五寄存器中的數(shù)據(jù)循環(huán)左移2個(gè)字節(jié),再循環(huán)右移I位,還可以為:將第五移位寄存器中的數(shù)據(jù)與字長(zhǎng)做除法,得到商和余數(shù),判斷余數(shù)是否大于字長(zhǎng)與2相除的結(jié)果,如果是,則將商加I的結(jié)果作為要移動(dòng)的字節(jié)數(shù),將字長(zhǎng)與余數(shù)的差值作為要反向移動(dòng)的位數(shù),否則將商作為要移動(dòng)的字節(jié)數(shù),將余數(shù)作為要移動(dòng)的位數(shù);本步驟中,第五移位寄存器中的數(shù)據(jù)為15,將15除以字長(zhǎng)8,得到商為I,余數(shù)為7,7大于字長(zhǎng)8與2相除的結(jié)果4,所述將商加I即2為要移動(dòng)的字節(jié)數(shù),字長(zhǎng)8減7即I為要反向移動(dòng)的位數(shù),即循環(huán)左移I個(gè)字節(jié),再循環(huán)右移I位;
[0184]步驟S42:CPU根據(jù)第六移位寄存器中的數(shù)據(jù)將第十七寄存器中的數(shù)據(jù)循環(huán)左移I個(gè)字節(jié),將該移位結(jié)果保存在第十八寄存器中;
[0185]所述第六移位寄存器中的數(shù)據(jù)為8 ;
[0186]步驟S43 =CPU對(duì)第十五寄存器、第十七寄存器和第十八寄存器做異或運(yùn)算,將結(jié)果保存在第十六寄存器中,退出第五數(shù)據(jù)處理模塊。
[0187]本實(shí)施例在調(diào)用第五數(shù)據(jù)處理模塊時(shí),采用的是將第十五寄存器中的數(shù)據(jù)循環(huán)移位后,保存,再直接對(duì)保存的數(shù)據(jù)直接循環(huán)移位即可,無(wú)需重新用第十五寄存器中的數(shù)據(jù)多次循環(huán)移位,加快了數(shù)據(jù)處理的速率。
[0188] 以上所述,僅為本發(fā)明較佳的【具體實(shí)施方式】,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本【技術(shù)領(lǐng)域】的技術(shù)人員在本發(fā)明公開(kāi)的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)該以權(quán)利要求的保護(hù)范圍為準(zhǔn)。
【權(quán)利要求】
1.一種節(jié)省存儲(chǔ)空間的數(shù)據(jù)處理的方法,其特征在于,包括: 步驟101:CPU調(diào)用初始化模塊,初始化第一存儲(chǔ)區(qū)、第二存儲(chǔ)區(qū)、第三存儲(chǔ)區(qū)、第五存儲(chǔ)區(qū)、第一寄存器和第二寄存器;其中,所述第一寄存器用于存儲(chǔ)第四存儲(chǔ)區(qū)中的數(shù)據(jù)的長(zhǎng)度;第二寄存器用于存儲(chǔ)所述第三存儲(chǔ)區(qū)中的數(shù)據(jù)的長(zhǎng)度; 步驟102:所述CPU獲取所述第一寄存器中的數(shù)據(jù),更新所述第一存儲(chǔ)區(qū)中的數(shù)據(jù);步驟103:所述CPU判斷所述第一寄存器中的數(shù)據(jù)是否為第一預(yù)設(shè)值,如果是,則執(zhí)行步驟112,否則執(zhí)行步驟104 ; 步驟104:所述CPU根據(jù)所述第四存儲(chǔ)區(qū)的首地址和當(dāng)前偏移地址,從所述第四存儲(chǔ)區(qū)中獲取一個(gè)字節(jié)的數(shù)據(jù),保存在所述第三存儲(chǔ)區(qū)中,并更新所述第二寄存器中的數(shù)據(jù),更新所述當(dāng)前偏移地址,更新所述第一寄存器中的數(shù)據(jù),判斷所述第二寄存器中的數(shù)據(jù)是否等于第二預(yù)設(shè)值,如果是,則將所述第二寄存器中的數(shù)據(jù)清零,執(zhí)行步驟105,否則返回步驟103 ; 步驟105:所述CPU調(diào)用第一數(shù)據(jù)處理模塊,將所述第二存儲(chǔ)區(qū)中的數(shù)據(jù)存放在第五存儲(chǔ)區(qū)中,獲取循環(huán)計(jì)數(shù)器的當(dāng)前計(jì)數(shù)值; 步驟106:所述CPU對(duì)所述第二存儲(chǔ)區(qū)中的數(shù)據(jù)進(jìn)行處理,將處理結(jié)果保存在第三寄存器中;調(diào)用第二數(shù)據(jù)處理模塊,對(duì)所述當(dāng)前計(jì)數(shù)值與預(yù)設(shè)字節(jié)做與運(yùn)算,對(duì)所述當(dāng)前計(jì)數(shù)值加第三預(yù)設(shè)值的結(jié)果與所述預(yù)設(shè)字節(jié)做與運(yùn)算,根據(jù)兩個(gè)運(yùn)算結(jié)果分別從所述第三存儲(chǔ)區(qū)中獲取對(duì)應(yīng)的兩個(gè)數(shù)據(jù),對(duì)獲取到的兩個(gè)數(shù)據(jù)進(jìn)行異或處理,將結(jié)果保存在第四寄存器中; 步驟107:所述CPU對(duì)所述第三寄存器中的數(shù)據(jù)和所述第四寄存器中的數(shù)據(jù)進(jìn)行處理,將結(jié)果保存在第五寄存器中; 步驟108:所述CPU判斷所述當(dāng)前計(jì)數(shù)值是否大于或等于第四預(yù)設(shè)值,如果是,則調(diào)用第三數(shù)據(jù)處理模塊,將處理結(jié)果保存在第六寄存器中,用所述第六寄存器中的數(shù)據(jù)更新所述第三存儲(chǔ)區(qū)中與所述當(dāng)前計(jì)數(shù)值對(duì)應(yīng)的數(shù)據(jù),執(zhí)行步驟109,否則直接執(zhí)行步驟109 ;步驟109:所述CPU對(duì)所述第六寄存器中的數(shù)據(jù)和所述第二存儲(chǔ)區(qū)中的數(shù)據(jù)進(jìn)行處理,將結(jié)果保存在第七寄存器中,對(duì)所述第二存儲(chǔ)區(qū)中的數(shù)據(jù)進(jìn)行處理,并用所述第五寄存器中的數(shù)據(jù)更新所述第二存儲(chǔ)區(qū),根據(jù)第一移位寄存器中的數(shù)據(jù)對(duì)所述第七寄存器中數(shù)據(jù)執(zhí)行循環(huán)移位操作,將結(jié)果保存在第八寄存器中,根據(jù)第二移位寄存器中的數(shù)據(jù)對(duì)所述第八寄存器中的數(shù)據(jù)執(zhí)行循環(huán)移位操作,將結(jié)果保存在第九寄存器中,然后對(duì)所述第七寄存器中的數(shù)據(jù)、所述第八寄存器中的數(shù)據(jù)、所述第九寄存器中的數(shù)據(jù)進(jìn)行處理,將結(jié)果保存在第十寄存器中,用所述第十寄存器中的數(shù)據(jù)更新所述第二存儲(chǔ)區(qū); 步驟110:所述CPU判斷所述當(dāng)前計(jì)數(shù)值是否等于第五預(yù)設(shè)值,如果是,則執(zhí)行步驟111,否則更新所述當(dāng)前計(jì)數(shù)值,返回執(zhí)行步驟106 ; 步驟111:所述CPU對(duì)所述第二存儲(chǔ)區(qū)中的數(shù)據(jù)和所述第五存儲(chǔ)區(qū)中的數(shù)據(jù)做異或處理,用處理結(jié)果更新所述第二存儲(chǔ)區(qū),退出所述第一數(shù)據(jù)處理模塊,執(zhí)行步驟103 ; 步驟112:所述CPU調(diào)用填充模塊,對(duì)所述第三存儲(chǔ)區(qū)中的數(shù)據(jù)進(jìn)行填充,調(diào)用所述第一數(shù)據(jù)處理模塊對(duì)填充結(jié)果進(jìn)行處理,得到處理結(jié)果。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟101中,所述初始化第二寄存器,具體為:將所述第二寄存器中的數(shù)據(jù)初始化為所述第一寄存器中的數(shù)據(jù)左移3位,再與0x3F做與運(yùn)算的結(jié)果。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟102中,所述更新所述第一存儲(chǔ)區(qū)中的數(shù)據(jù),具體為:所述CPU將所述第一寄存器中的數(shù)據(jù)與所述第一存儲(chǔ)區(qū)中的數(shù)據(jù)相カロ,得到的結(jié)果保存在所述第一存儲(chǔ)區(qū)中。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟104中,所述更新所述第一寄存器中的數(shù)據(jù),具體為:所述CPU將所述第一寄存器中的數(shù)據(jù)減去預(yù)設(shè)步長(zhǎng)的結(jié)果或者將所述第一寄存器中的數(shù)據(jù)加上預(yù)設(shè)步長(zhǎng)的結(jié)果作為更新后的所述第一寄存器中的數(shù)據(jù)。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟104中,所述更新所述第二寄存器中的數(shù)據(jù),具體為:所述CPU將所述第二寄存器中的數(shù)據(jù)減去預(yù)設(shè)步長(zhǎng)的結(jié)果或者將所述第二寄存器中的數(shù)據(jù)加上預(yù)設(shè)步長(zhǎng)的結(jié)果作為更新后的所述第二寄存器中的數(shù)據(jù)。
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟108中,所述調(diào)用第三數(shù)據(jù)處理模塊,將處理結(jié)果保存在第六寄存器中,用所述第六寄存器中的數(shù)據(jù)更新所述第三存儲(chǔ)區(qū)中與所述當(dāng)前計(jì)數(shù)值對(duì)應(yīng)的數(shù)據(jù),具體為: 步驟A:所述CPU調(diào)用所述第三數(shù)據(jù)處理模塊,將所述當(dāng)前計(jì)數(shù)值減去第六預(yù)設(shè)值再與所述預(yù)設(shè)字節(jié)做與運(yùn)算得到第二計(jì)數(shù)值,將所述當(dāng)前計(jì)數(shù)值減去第七預(yù)設(shè)值再與所述預(yù)設(shè)字節(jié)做與運(yùn)算得到第三計(jì)數(shù)值,將所述當(dāng)前計(jì)數(shù)值減去第八預(yù)設(shè)值再與所述預(yù)設(shè)字節(jié)做與運(yùn)算得到第四計(jì)數(shù)值,將所述當(dāng)前計(jì)數(shù)值減去第九預(yù)設(shè)值再與所述預(yù)設(shè)字節(jié)做與運(yùn)算得到第五計(jì)數(shù)值,將所述當(dāng)前計(jì)數(shù)值減去第十預(yù)設(shè)值再與所述預(yù)設(shè)字節(jié)做與運(yùn)算得到第六計(jì)數(shù)值,從所述第三存儲(chǔ)區(qū)中分別獲取與所述第二計(jì)數(shù)值、所述第三計(jì)數(shù)值、所述第四計(jì)數(shù)值、所述第五計(jì)數(shù)值和所述第六計(jì)數(shù)值對(duì)應(yīng)的第三數(shù)值、第四數(shù)值、第五數(shù)值、第六數(shù)值和第七數(shù)值; 步驟B:所述CPU根據(jù)第三移位寄存器中的數(shù)據(jù)對(duì)所述第五數(shù)值執(zhí)行循環(huán)移位操作,對(duì)得到的循環(huán)移位結(jié)果、所述第·三數(shù)值、所述第四數(shù)值做異或運(yùn)算,將結(jié)果保存在第十五寄存器中; 步驟C:所述CPU根據(jù)第五移位寄存器中的數(shù)據(jù)對(duì)所述第十五寄存器中的數(shù)據(jù)執(zhí)行循環(huán)移位操作,將該移位結(jié)果保存在第十七寄存器中; 步驟D:所述CPU根據(jù)第六移位寄存器中的數(shù)據(jù)對(duì)所述第十七寄存器中的數(shù)據(jù)執(zhí)行循環(huán)移位操作,將該移位結(jié)果保存在第十八寄存器中; 步驟E:所述CPU對(duì)所述第十五寄存器、所述第十七寄存器和所述第十八寄存器做異或運(yùn)算,將結(jié)果保存在第十六寄存器中; 步驟F:所述CPU根據(jù)第四移位寄存器中的數(shù)據(jù)對(duì)所述第六數(shù)值執(zhí)行循環(huán)移位操作,得到的循環(huán)移位結(jié)果與所述第七數(shù)值、所述第十六寄存器中的數(shù)據(jù)做異或運(yùn)算,將結(jié)果保存在第六寄存器中,將所述第三存儲(chǔ)區(qū)中與所述當(dāng)前計(jì)數(shù)值對(duì)應(yīng)的數(shù)據(jù)替換為所述第六寄存器中的數(shù)據(jù)。
7.根據(jù)權(quán)利要求6所述的方法,其特征在干, 所述步驟B中,所述根據(jù)第三移位寄存器中的數(shù)據(jù)對(duì)所述第五數(shù)值執(zhí)行循環(huán)移位操作,具體為:將所述第五數(shù)值循環(huán)左移2個(gè)字節(jié),再循環(huán)右移I位; 所述步驟C中,所述根據(jù)第五移位寄存器中的數(shù)據(jù)對(duì)所述第十五寄存器中的數(shù)據(jù)執(zhí)行循環(huán)移位操作,具體為:將所述第十五寄存器中的數(shù)據(jù)循環(huán)左移2個(gè)字節(jié),再循環(huán)左移I位; 所述步驟D中,所述根據(jù)第六移位寄存器中的數(shù)據(jù)對(duì)所述第十七寄存器中的數(shù)據(jù)執(zhí)行循環(huán)移位操作,具體為:將所述第十七寄存器中的數(shù)據(jù)循環(huán)左移I個(gè)字節(jié); 所述步驟F中,所述根據(jù)第四移位寄存器中的數(shù)據(jù)對(duì)所述第六數(shù)值執(zhí)行循環(huán)移位操作,具體為:將所述第六數(shù)值循環(huán)左移2個(gè)字節(jié),再循環(huán)右移I位。
8.根據(jù)權(quán)利要求1所述的方法,其特征在于, 所述步驟109中,所述根據(jù)第一移位寄存器中的數(shù)據(jù)對(duì)所述第七寄存器中數(shù)據(jù)執(zhí)行循環(huán)移位操作,具體為:將所述第七寄存器中數(shù)據(jù)循環(huán)左移I個(gè)字節(jié),再循環(huán)左移I位; 所述步驟109中,所述根據(jù)第二移位寄存器中的數(shù)據(jù)對(duì)所述第八寄存器中的數(shù)據(jù)執(zhí)行循環(huán)移位操作,具體為:將所述第八寄存器中的數(shù)據(jù)循環(huán)左移I個(gè)字節(jié)。
9.根據(jù)權(quán)利要求7或8所述的方法,其特征在于,所述左移I個(gè)字節(jié),具體為:所述CPU將一個(gè)字長(zhǎng)的數(shù)據(jù)中的各字節(jié)數(shù)據(jù)進(jìn)行循環(huán)移位,即對(duì)第一字節(jié)、第二字節(jié)、第三字節(jié)和第四字節(jié)進(jìn)行循環(huán)移位:所述CPU將所述第一字節(jié)的數(shù)據(jù)移至預(yù)設(shè)寄存器中,將所述第二字節(jié)的數(shù)據(jù)移至所述第一字節(jié)的位置,將所述第三字節(jié)的數(shù)據(jù)移至所述第二字節(jié)的位置,將所述第四字節(jié)的數(shù)據(jù)移至所述第三字節(jié)的位置,將所述預(yù)設(shè)寄存器中的數(shù)據(jù)移至所述第四字節(jié)的位置。
10.根據(jù)權(quán)利要求6所述的方法,其特征在于, 所述步驟B中,所述根據(jù)第三移位寄存器中的數(shù)據(jù)對(duì)所述第五數(shù)值執(zhí)行循環(huán)移位操作,具體為:將所述第三移位寄存器的位數(shù)與字長(zhǎng)做除法,得到商和余數(shù),判斷余數(shù)是否大于字長(zhǎng)與2相除的結(jié)果,如果是,則將商加I的結(jié)果作為要移動(dòng)的字節(jié)數(shù),將字長(zhǎng)與余數(shù)的差值作為要反向移動(dòng)的位數(shù),否則將商作為要移動(dòng)的字節(jié)數(shù),將余數(shù)作為要移動(dòng)的位數(shù); 所述步驟C中,所述根據(jù)第五移位寄`存器中的數(shù)據(jù)對(duì)所述第十五寄存器中的數(shù)據(jù)執(zhí)行循環(huán)移位操作,具體為:將所述第五移位寄存器中的數(shù)據(jù)與字長(zhǎng)做除法,得到商和余數(shù),判斷余數(shù)是否大于字長(zhǎng)與2相除的結(jié)果,如果是,則將商加I的結(jié)果作為要移動(dòng)的字節(jié)數(shù),將字長(zhǎng)與余數(shù)的差值作為要反向移動(dòng)的位數(shù),否則將商作為要移動(dòng)的字節(jié)數(shù),將余數(shù)作為要移動(dòng)的位數(shù); 所述步驟D中,所述根據(jù)第六移位寄存器中的數(shù)據(jù)對(duì)所述第十七寄存器中的數(shù)據(jù)執(zhí)行循環(huán)移位操作,具體為:將所述第十七寄存器中的數(shù)據(jù)循環(huán)左移I個(gè)字節(jié); 所述步驟F中,所述根據(jù)第四移位寄存器中的數(shù)據(jù)對(duì)所述第六數(shù)值執(zhí)行循環(huán)移位操作,具體為:將所述第四移位寄存器中的位數(shù)與字長(zhǎng)做除法,得到商和余數(shù),判斷余數(shù)是否大于字長(zhǎng)與2相除的結(jié)果,如果是,則將商加I的結(jié)果作為要移動(dòng)的字節(jié)數(shù),將字長(zhǎng)與余數(shù)的差值作為要反向移動(dòng)的位數(shù),否則將商作為要移動(dòng)的字節(jié)數(shù),將余數(shù)作為要移動(dòng)的位數(shù)。
11.根據(jù)權(quán)利要求1所述的方法,其特征在于, 所述步驟109中,所述根據(jù)第一移位寄存器中的數(shù)據(jù)對(duì)所述第七寄存器中數(shù)據(jù)執(zhí)行循環(huán)移位操作,具體為:將所述第一移位寄存器中的數(shù)據(jù)與字長(zhǎng)做除法,得到商和余數(shù),判斷余數(shù)是否大于字長(zhǎng)與2相除的結(jié)果,如果是,則將商加I的結(jié)果作為要移動(dòng)的字節(jié)數(shù),將字長(zhǎng)與余數(shù)的差值作為要反向移動(dòng)的位數(shù),否則將商作為要移動(dòng)的字節(jié)數(shù),將余數(shù)作為要移動(dòng)的位數(shù); 所述步驟109中,所述根據(jù)第二移位寄存器中的數(shù)據(jù)對(duì)所述第八寄存器中的數(shù)據(jù)執(zhí)行循環(huán)移位操作,具體為:將所述所述第八寄存器中的數(shù)據(jù)循環(huán)左移I個(gè)字節(jié)。
12.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟106中,所述CPU對(duì)所述第二存儲(chǔ)區(qū)中的數(shù)據(jù)進(jìn)行處理,將處理結(jié)果保存在第三寄存器中,具體為: 步驟A-Ol:所述CPU獲取所述第二存儲(chǔ)區(qū)中的第一數(shù)據(jù)和第五數(shù)據(jù),將所述第一數(shù)據(jù)循環(huán)左移4位,然后再循環(huán)左移I個(gè)字節(jié),得到的結(jié)果保存在第十一寄存器中; 步驟A-02:所述CPU獲取預(yù)設(shè)存儲(chǔ)區(qū)中與所述當(dāng)前計(jì)數(shù)值對(duì)應(yīng)的預(yù)設(shè)數(shù)據(jù),對(duì)所述預(yù)設(shè)數(shù)據(jù)、所述第五數(shù)據(jù)和所述第一數(shù)值做加法,將加法結(jié)果循環(huán)左移I個(gè)字節(jié),再循環(huán)右移I位,得到的結(jié)果保存在第十二寄存器中; 步驟A-03:所述CPU對(duì)所述第十一寄存器中的數(shù)據(jù)和所述第十二寄存器中的數(shù)據(jù)做異或運(yùn)算,得到的結(jié)果保存在所述第三寄存器中。
13.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟106中,所述對(duì)所述當(dāng)前計(jì)數(shù)值與預(yù)設(shè)字節(jié)做與運(yùn)算,對(duì)所述當(dāng)前計(jì)數(shù)值加第三預(yù)設(shè)值的結(jié)果與所述預(yù)設(shè)字節(jié)做與運(yùn)算,根據(jù)兩個(gè)運(yùn)算結(jié)果分別從所述第三存儲(chǔ)區(qū)中獲取對(duì)應(yīng)的兩個(gè)數(shù)據(jù),對(duì)獲取到的兩個(gè)數(shù)據(jù)進(jìn)行異或處理,將結(jié)果保存在第四寄存器中,具體為: 步驟A-1l:所述CPU對(duì)所述當(dāng)前計(jì)數(shù)值和所述預(yù)設(shè)字節(jié)做與運(yùn)算,得到第一結(jié)果,從所述第三存儲(chǔ)區(qū)中獲取與所述第一結(jié)果對(duì)應(yīng)的第一數(shù)值; 步驟A-12:所述CPU將所述當(dāng)前計(jì)數(shù)值與所述第三預(yù)設(shè)值做加法運(yùn)算,得到第一計(jì)數(shù)值,對(duì)所述第一計(jì)數(shù)值和所述預(yù)設(shè)字節(jié)做與運(yùn)算,得到第二結(jié)果,從所述第三存儲(chǔ)區(qū)中獲取與所述第二結(jié)果對(duì)應(yīng) 的第二數(shù)值; 步驟A-13:所述CPU對(duì)所述第三存儲(chǔ)區(qū)中的所述第一數(shù)值與所述第二數(shù)值做異或運(yùn)算,將結(jié)果保存在所述第四寄存器中。
14.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟107,具體為: 步驟107-1:所述CPU獲取所述第二存儲(chǔ)區(qū)中的第一數(shù)據(jù)、第二數(shù)據(jù)和第三數(shù)據(jù),調(diào)用第六數(shù)據(jù)處理模塊,將得到的結(jié)果保存在第十三寄存器中,退出所述第六數(shù)據(jù)處理模塊;步驟107-2:所述CPU從所述第二存儲(chǔ)區(qū)中獲取第四數(shù)據(jù),對(duì)所述第三寄存器中的數(shù)據(jù)、所述第四寄存器中的數(shù)據(jù)、所述第四數(shù)據(jù)和所述第十三寄存器中的數(shù)據(jù)做加法運(yùn)算,得到的運(yùn)算結(jié)果保存在第五寄存器中。
15.根據(jù)權(quán)利要求14所述的方法,其特征在于,所述步驟107-1中,所述調(diào)用第六數(shù)據(jù)處理模塊,將得到的結(jié)果保存在第十三寄存器中,退出所述第六數(shù)據(jù)處理模塊,具體為: 步驟107-11:所述CPU判斷所述當(dāng)前計(jì)數(shù)值的范圍,如果所述當(dāng)前計(jì)數(shù)值大于等于第一限值且小于等于第二限值時(shí),執(zhí)行步驟107-12,如果所述當(dāng)前計(jì)數(shù)值大于等于第三限值且小于等于第四限值時(shí),執(zhí)行步驟107-13 ; 步驟107-12:所述CPU對(duì)所述第一數(shù)據(jù)、所述第二數(shù)據(jù)和所述第三數(shù)據(jù)做異或運(yùn)算,將運(yùn)算結(jié)果保存在第十三寄存器中,退出所述第六數(shù)據(jù)處理模塊,執(zhí)行步驟107-2 ; 步驟107-13:CPU將第一數(shù)據(jù)與第二數(shù)據(jù)做與運(yùn)算的結(jié)果,再與第一數(shù)據(jù)和第三數(shù)據(jù)做與運(yùn)算的結(jié)果做或運(yùn)算,得到的結(jié)果再與第二數(shù)據(jù)和第三數(shù)據(jù)做與運(yùn)算的結(jié)果做或運(yùn)算,將運(yùn)算結(jié)果保存在所述第十三寄存器中,退出所述第六數(shù)據(jù)處理模塊,執(zhí)行步驟107-2。
16.根據(jù)權(quán)利要求12所述的方法,其特征在于,所述步驟109中,所述CPU對(duì)所述第六寄存器中的數(shù)據(jù)和所述第二存儲(chǔ)區(qū)中的數(shù)據(jù)進(jìn)行處理,將結(jié)果保存在第七寄存器中,具體為: 步驟112-1:所述CPU根據(jù)所述第二存儲(chǔ)區(qū)中的第五數(shù)據(jù)、第六數(shù)據(jù)和第七數(shù)據(jù),調(diào)用第七數(shù)據(jù)處理模塊,將該調(diào)用結(jié)果保存在第十四寄存器中,退出所述第七數(shù)據(jù)處理模塊; 步驟112-2:所述CPU從所述第二存儲(chǔ)區(qū)中獲取第八數(shù)據(jù),對(duì)第十二寄存器中的數(shù)據(jù)、第六寄存器中的數(shù)據(jù)、所述第八數(shù)據(jù)和所述第十四寄存器中的數(shù)據(jù)做加法運(yùn)算,將結(jié)果保存在第七寄存器中。
17.根據(jù)權(quán)利要求16所述的方法,其特征在于,所述步驟112-1中,所述調(diào)用第七數(shù)據(jù)處理模塊,將該調(diào)用結(jié)果保存在第十四寄存器中,退出所述第七數(shù)據(jù)處理模塊,具體為: 步驟112-11:所述CPU判斷所述當(dāng)前計(jì)數(shù)值的范圍,如果當(dāng)所述前計(jì)數(shù)值大于等于第一限值且小于等于第二限值,則執(zhí)行步驟112-12,如果所述當(dāng)前計(jì)數(shù)值大于等于第三限值且小于等于第四限值,則執(zhí)行步驟112-13 ; 步驟112-12:所述CPU對(duì)所述第五數(shù)據(jù)與所述第六數(shù)據(jù)做異或運(yùn)算,再與所述第七數(shù)據(jù)做異或運(yùn)算,將運(yùn)算結(jié)果保存在第十四寄存器中,退出所述第七數(shù)據(jù)處理模塊; 步驟112-13:所述CPU將所述第五數(shù)據(jù)與所述第六數(shù)據(jù)做與運(yùn)算的結(jié)果,和所述第五數(shù)據(jù)做非運(yùn)算再與所述第六數(shù)據(jù)做與運(yùn)算操作的結(jié)果做或運(yùn)算,將運(yùn)算結(jié)果保存在第十四寄存器中,退出所述第七數(shù)據(jù)處理模塊。
18.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟109中,所述對(duì)所述第二存儲(chǔ)區(qū)中的數(shù)據(jù)進(jìn)行處理,并用所述第五寄存器中的數(shù)據(jù)更新所述第二存儲(chǔ)區(qū),具體為: 步驟A3:所述CPU將所述第二存儲(chǔ)區(qū)中的第四數(shù)據(jù)替換為第三數(shù)據(jù);將所述第二存儲(chǔ)區(qū)中的第二數(shù)據(jù)循環(huán)左移I位,再循環(huán)左移I個(gè)字節(jié),將第三數(shù)據(jù)替換為將該循環(huán)移位結(jié)果;將所述第二存儲(chǔ)區(qū)中的第二數(shù)據(jù)替換為第一數(shù)據(jù);將所述第二存儲(chǔ)區(qū)中的第一數(shù)據(jù)替換為第五寄存器中的數(shù)據(jù);; 步驟B3:所述CPU將所述第二存儲(chǔ)區(qū)中的第八數(shù)據(jù)替換為第七數(shù)據(jù);將所述第二存儲(chǔ)區(qū)中的第六數(shù)據(jù)循環(huán)左移3位,再循環(huán)左移2個(gè)字節(jié),將第七數(shù)據(jù)替換為該循環(huán)移位結(jié)果;將所述第二存儲(chǔ)區(qū)中的第六數(shù)據(jù)替換為第五數(shù)據(jù);根據(jù)第七寄存器中的數(shù)據(jù),調(diào)用第四數(shù)據(jù)處理模塊,將得到的結(jié)果保存在第十寄存器中,將所述第二存儲(chǔ)區(qū)中的第五數(shù)據(jù)替換為所述第十寄存器中的數(shù)據(jù)。
19.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟112中,所述CPU調(diào)用填充模塊,對(duì)所述第三存儲(chǔ)區(qū)中的數(shù)據(jù)進(jìn)行填充,具體為=CPU在所述第三存儲(chǔ)區(qū)中的數(shù)據(jù)后填充比特位1、填充512減去第二寄存器中的數(shù)據(jù)再減去I的長(zhǎng)度的O、填充所述第一存儲(chǔ)區(qū)中的數(shù)據(jù)。
【文檔編號(hào)】G06F12/02GK103593299SQ201310562145
【公開(kāi)日】2014年2月19日 申請(qǐng)日期:2013年11月12日 優(yōu)先權(quán)日:2013年11月12日
【發(fā)明者】陸舟, 于華章 申請(qǐng)人:飛天誠(chéng)信科技股份有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1