邏輯運算和移位指令共有25條,有與、或、異或、求反、左右移位、清0等邏輯操作,有直接、寄存器和寄存器間址等尋址方式。這類指令一般不影響程序狀態(tài)字(PSW)標志。
????[1].?循環(huán)移位指令(4條)
????這4條指令的作用是將累加器中的內(nèi)容循環(huán)左或右移一位,后兩條指令是連同進位位CY一起移位。
????????RL ?A ????;累加器A中的內(nèi)容左移一位
????????RR ?A ????;累加器A中的內(nèi)容右移一位
????????RLC ?A ?? ;累加器A中的內(nèi)容連同進位位CY左移一位
????????RRC ?A ?? ;累加器A中的內(nèi)容連同進位位CY右移一位
????[2].?累加器半字節(jié)交換指令(1條)
????這條指令是將累加器中的內(nèi)容高低半字節(jié)互換,這在上一節(jié)中內(nèi)容已有介紹。
????????SWAP ?A??; 累加器中的內(nèi)容高低半字節(jié)互換
????[3].?求反指令(1條)
????這條指令將累加器中的內(nèi)容按位取反。
????????CPL ?A????; 累加器中的內(nèi)容按位取反
????[4].?清零指令(1條)
????這條指令將累加器中的內(nèi)容清0。
????????CLR ?A????; 0→(A),累加器中的內(nèi)容清0
????[5].? 邏輯與操作指令(6條)
????這組指令的作用是將兩個單元中的內(nèi)容執(zhí)行邏輯與操作。如果直接地址是I/O地址,則為“讀—修改—寫”操作。
????????ANL ?A,data????;累加器A中的內(nèi)容和直接地址單元中的內(nèi)容執(zhí)行與邏輯操作。結(jié)果存在寄存器A中。
????????ANL ?data,#data??;直接地址單元中的內(nèi)容和立即數(shù)執(zhí)行與邏輯操作。結(jié)果存在直接地址單元中。
????????ANL ?A,#data???;累加器A的內(nèi)容和立即數(shù)執(zhí)行與邏輯操作。結(jié)果存在累加器A中。
????????ANL ?A,Rn??????;累加器A的內(nèi)容和寄存器Rn中的內(nèi)容執(zhí)行與邏輯操作。結(jié)果存在累加器A中。
????????ANL ?data,A????;直接地址單元中的內(nèi)容和累加器A的內(nèi)容執(zhí)行與邏輯操作。結(jié)果存在直接地址單元中。
????????ANL ?A,@Ri????;累加器A的內(nèi)容和工作寄存器Ri指向的地址單元中的內(nèi)容執(zhí)行與邏輯操作。結(jié)果存在累加器A中。
????[6].? 邏輯或操作指令(6條)
????這組指令的作用是將兩個單元中的內(nèi)容執(zhí)行邏輯或操作。如果直接地址是I/O地址,則為“讀—修改—寫”操作。
????????ORL ?A,data????;累加器A中的內(nèi)容和直接地址單元中的內(nèi)容執(zhí)行邏輯或操作。結(jié)果存在寄存器A中。
????????ORL ?data,#data??;直接地址單元中的內(nèi)容和立即數(shù)執(zhí)行邏輯或操作。結(jié)果存在直接地址單元中。
????????ORL ?A,#data???;累加器A的內(nèi)容和立即數(shù)執(zhí)行邏輯或操作。結(jié)果存在累加器A中。
????????ORL ?A,Rn??????;累加器A的內(nèi)容和寄存器Rn中的內(nèi)容執(zhí)行邏輯或操作。結(jié)果存在累加器A中。
????????ORL ?data,A????;直接地址單元中的內(nèi)容和累加器A的內(nèi)容執(zhí)行邏輯或操作。結(jié)果存在直接地址單元中。
????????ORL ?A,@Ri????;累加器A的內(nèi)容和工作寄存器Ri指向的地址單元中的內(nèi)容執(zhí)行邏輯或操作。結(jié)果存在累加器A中。
????[7].? 邏輯異或操作指令(6條)
????這組指令的作用是將兩個單元中的內(nèi)容執(zhí)行邏輯異或操作。如果直接地址是I/O地址,則為“讀—修改—寫”操作。
????????XRL ?A,data????;累加器A中的內(nèi)容和直接地址單元中的內(nèi)容執(zhí)行邏輯異或操作。結(jié)果存在寄存器A中。
????????XRL ?data,#data??;直接地址單元中的內(nèi)容和立即數(shù)執(zhí)行邏輯異或操作。結(jié)果存在直接地址單元中。
????????XRL ?A,#data???;累加器A的內(nèi)容和立即數(shù)執(zhí)行邏輯異或操作。結(jié)果存在累加器A中。
????????XRL ?A,Rn??????;累加器A的內(nèi)容和寄存器Rn中的內(nèi)容執(zhí)行邏輯異或操作。結(jié)果存在累加器A中。
????????XRL ?data,A????;直接地址單元中的內(nèi)容和累加器A的內(nèi)容執(zhí)行邏輯異或操作。結(jié)果存在直接地址單元中。
????????XRL ?A,@Ri????;累加器A的內(nèi)容和工作寄存器Ri指向的地址單元中的內(nèi)容執(zhí)行邏輯異或操作。結(jié)果存在累加器A中。
????[1].?循環(huán)移位指令(4條)
????這4條指令的作用是將累加器中的內(nèi)容循環(huán)左或右移一位,后兩條指令是連同進位位CY一起移位。
????????RL ?A ????;累加器A中的內(nèi)容左移一位
????????RR ?A ????;累加器A中的內(nèi)容右移一位
????????RLC ?A ?? ;累加器A中的內(nèi)容連同進位位CY左移一位
????????RRC ?A ?? ;累加器A中的內(nèi)容連同進位位CY右移一位
????[2].?累加器半字節(jié)交換指令(1條)
????這條指令是將累加器中的內(nèi)容高低半字節(jié)互換,這在上一節(jié)中內(nèi)容已有介紹。
????????SWAP ?A??; 累加器中的內(nèi)容高低半字節(jié)互換
????[3].?求反指令(1條)
????這條指令將累加器中的內(nèi)容按位取反。
????????CPL ?A????; 累加器中的內(nèi)容按位取反
????[4].?清零指令(1條)
????這條指令將累加器中的內(nèi)容清0。
????????CLR ?A????; 0→(A),累加器中的內(nèi)容清0
????[5].? 邏輯與操作指令(6條)
????這組指令的作用是將兩個單元中的內(nèi)容執(zhí)行邏輯與操作。如果直接地址是I/O地址,則為“讀—修改—寫”操作。
????????ANL ?A,data????;累加器A中的內(nèi)容和直接地址單元中的內(nèi)容執(zhí)行與邏輯操作。結(jié)果存在寄存器A中。
????????ANL ?data,#data??;直接地址單元中的內(nèi)容和立即數(shù)執(zhí)行與邏輯操作。結(jié)果存在直接地址單元中。
????????ANL ?A,#data???;累加器A的內(nèi)容和立即數(shù)執(zhí)行與邏輯操作。結(jié)果存在累加器A中。
????????ANL ?A,Rn??????;累加器A的內(nèi)容和寄存器Rn中的內(nèi)容執(zhí)行與邏輯操作。結(jié)果存在累加器A中。
????????ANL ?data,A????;直接地址單元中的內(nèi)容和累加器A的內(nèi)容執(zhí)行與邏輯操作。結(jié)果存在直接地址單元中。
????????ANL ?A,@Ri????;累加器A的內(nèi)容和工作寄存器Ri指向的地址單元中的內(nèi)容執(zhí)行與邏輯操作。結(jié)果存在累加器A中。
????[6].? 邏輯或操作指令(6條)
????這組指令的作用是將兩個單元中的內(nèi)容執(zhí)行邏輯或操作。如果直接地址是I/O地址,則為“讀—修改—寫”操作。
????????ORL ?A,data????;累加器A中的內(nèi)容和直接地址單元中的內(nèi)容執(zhí)行邏輯或操作。結(jié)果存在寄存器A中。
????????ORL ?data,#data??;直接地址單元中的內(nèi)容和立即數(shù)執(zhí)行邏輯或操作。結(jié)果存在直接地址單元中。
????????ORL ?A,#data???;累加器A的內(nèi)容和立即數(shù)執(zhí)行邏輯或操作。結(jié)果存在累加器A中。
????????ORL ?A,Rn??????;累加器A的內(nèi)容和寄存器Rn中的內(nèi)容執(zhí)行邏輯或操作。結(jié)果存在累加器A中。
????????ORL ?data,A????;直接地址單元中的內(nèi)容和累加器A的內(nèi)容執(zhí)行邏輯或操作。結(jié)果存在直接地址單元中。
????????ORL ?A,@Ri????;累加器A的內(nèi)容和工作寄存器Ri指向的地址單元中的內(nèi)容執(zhí)行邏輯或操作。結(jié)果存在累加器A中。
????[7].? 邏輯異或操作指令(6條)
????這組指令的作用是將兩個單元中的內(nèi)容執(zhí)行邏輯異或操作。如果直接地址是I/O地址,則為“讀—修改—寫”操作。
????????XRL ?A,data????;累加器A中的內(nèi)容和直接地址單元中的內(nèi)容執(zhí)行邏輯異或操作。結(jié)果存在寄存器A中。
????????XRL ?data,#data??;直接地址單元中的內(nèi)容和立即數(shù)執(zhí)行邏輯異或操作。結(jié)果存在直接地址單元中。
????????XRL ?A,#data???;累加器A的內(nèi)容和立即數(shù)執(zhí)行邏輯異或操作。結(jié)果存在累加器A中。
????????XRL ?A,Rn??????;累加器A的內(nèi)容和寄存器Rn中的內(nèi)容執(zhí)行邏輯異或操作。結(jié)果存在累加器A中。
????????XRL ?data,A????;直接地址單元中的內(nèi)容和累加器A的內(nèi)容執(zhí)行邏輯異或操作。結(jié)果存在直接地址單元中。
????????XRL ?A,@Ri????;累加器A的內(nèi)容和工作寄存器Ri指向的地址單元中的內(nèi)容執(zhí)行邏輯異或操作。結(jié)果存在累加器A中。
評論