飞思卡尔数据和位操作指令
发表:2023-08-29 12:01:26 阅读:88

飞思卡尔数据和位操作指令: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

 

更多精彩请您关注:

飞思卡尔加/减1指令

飞思卡尔清零、求反、取负指令

飞思卡尔数据传送指令

freescale代理

推荐品牌: