飞思卡尔数据和位操作指令:1)比较指令:比较指令用于将寄存器A、X或者H:X中的值与立即数或者存储单元的值进行比较,它执行减法操作但不改变任何原操作数的值,只是根据运算结果改变CCR寄存器中的V、N、Z、C标志位,对H、I无影响。
CMP Compare A to memory (A)一(M)
CPHX Compare X to memory(16一bit) (X)一(M:M+1)
CPX Compare X to memory(8一bit) (X)一(M)
2)零测试指令TST:零测试指令用于测试A、x存储单元的值是否小于等于 ,它执行减00 U操作但不改变原操作数的值,只是根据结果改变N、Z标志位。测试字节是否为零的指令:
TST Test memory for zero or Hlinus (M)一$00
TSTA Test A for zero or minus (A)一$00
TSTX Test X for zem or minus (X)一$00
例如:
若A=#FFHH,40H=#00H,H:X=0000H,则TSTA:A-#00,指令执行后,A中的值不变,N=1,z=0
TSTX;X一#00.指令执行后,X中的值不变,N=0,z=1
TST 40H,x;(40H)-#00,指令执行后,40H单元中的值不变,N=0,Z=1
3)位测试指令与位操作指令
BCLR Clear bits in memory O→Mn
例如:BCLR 4,$F3;将地址为$F3单元的第4位清零。
BSET Set bits in memory l→Mn
位测试指令BIT用于测试A中的值与操作数的各位是否一致,它将累加器A中的值与对应的操作数进行与运算,运算的结果不送回到A,也不影响原来的操作数,仅根据运算结果改变N、Z标志位,并清零V标志位,对其他标志位无影响。
BIT Bit test A (A)→(M)
例如:
若A=#FFH,100H=#FOH,90H=#OOH,H:X=#0O00H,则
BIT #0FFH;指令执行后,A中的内容不变,V=0,N-,-1,Z=0
BIT IOOH;指令执行后,100H中的内容不变,V=0,N=1,Z=0
BIT 90H,X;指令执行后,90H中的内容不变,V=0,N=0,Z=1
更多精彩请您关注: