[ 教程 ] BTST和TST区别

  • 作者:分享
  • 2025-11-04 21:54:20

HI,各位HACK友,小编又来发教程水点文章了:BTST和TST区别。前些天QQ2群大家在讨论这个问题,我直接搬运重点了。

一个有B,一个没有B,Bit位测试。

TST是比较两个操作数是不是一样大,BTST是比较指一个操作数的指定Bit位是不是1。

核心区别:TST检测整个寄存器/内存单元是否为0,BTST检测指定bit位是否为1,仅影响CCR的Z位。

举例说明:

1. TST指令(检测整体是否为0):

move.w #$0001, d0 ; d0 = 0000 0000 0000 0001(二进制)

tst.w d0 ; 检测d0的16位是否全0 → 非0,Z=0 ; 若d0=$0000,tst后Z=1

2. BTST指令(检测指定bit位):

move.w #$0001, d0 ; d0 = 0000 0000 0000 0001

btst #0, d0 ; 检测bit0是否为1 → 是,Z=0

btst #1, d0 ; 检测bit1是否为1 → 否,Z=1

简单说:TST看“整体是不是空的”,BTST看“某个特定位置有没有标记”。

*_*
互动小天地
点击加载更多...
关闭 更换头像