觸點比較指令和比較指令的應(yīng)用非常的廣泛,一般的程序就有這2個指令的其中一條。我將說說他們的不同之處和應(yīng)用方法。
觸點比較的指令格式為:ld<> d0 d2這條指令的指令的含義是當數(shù)據(jù)寄存器d0里面的值不等于數(shù)據(jù)寄存器d2里值的時候?qū)ā?br>
ld<= d0 d2這條指令的含義是數(shù)據(jù)寄存器d0里面的值小于或者等于數(shù)據(jù)寄存器d2里面的值導(dǎo)通。
ld>= d0 d2這條指令的含義是數(shù)據(jù)寄存器d0里面的值大于或者等于數(shù)據(jù)寄存器d2里面的值導(dǎo)通。
ld= d0 d2這條指令的含義是數(shù)據(jù)寄存器d0里面的值等于數(shù)據(jù)寄存器d2里面的值導(dǎo)通。
什么ld表示在左母線開始,如果是串聯(lián)ld的地方則為and,并聯(lián)則為or。需注意的是這條指令可以是16位和32位運算,但不能位脈沖執(zhí)行型。
比較指令cmp的應(yīng)用:
這條指令格式為 cmp d0 d2 m0 他的含義是把d0和d2做比較,然后通過m0,m1,m2這3個輸出,當d0里面的數(shù)據(jù)大于d2里面的數(shù)據(jù)則mo導(dǎo)通。當d0里面的數(shù)據(jù)等于d2里面的數(shù)據(jù)則m1導(dǎo)通。當d0里面的數(shù)據(jù)小于d2里面的數(shù)據(jù)則m2導(dǎo)通。這條指令可以為16位和32位運算也可以是脈沖執(zhí)行型。如果是32位運算則dcmp d0 d2 m0. 如果為32位脈沖執(zhí)行型則dcmp d0 d2 m0,須注意的是32位運算的時候占用的數(shù)據(jù)寄存器是4個數(shù)據(jù)寄存器,他們是d0.d1.d2.d3因為一個數(shù)據(jù)寄存器是16位連續(xù)2個數(shù)據(jù)寄存器才是32位。一旦作32位運算他會自動占用d0.d1.d2.d3這4個數(shù)據(jù)寄存器,因此特別注意不要在其他程序里不要向這4個數(shù)據(jù)寄存器里面寫入數(shù)據(jù),否則會出現(xiàn)未知的錯誤。還有一點注意的是脈沖執(zhí)行型,如果是脈沖執(zhí)行型則當執(zhí)行條件滿足時只執(zhí)行這條指令1次,如果是連續(xù)執(zhí)行型則每個掃描周期都執(zhí)行所以必須注意。