ARM的汇编指令问题TST指令bit23是怎么回事 100

使用TST指令测试R5的bit23是否为1,若是则将bit6位清零(使用BIC指令)这两段代码虽然大体能看懂,但是还是会有很多欠缺,希望能得到细致的自信的解释,有没有牛人... 使用TST指令测试R5的bit23是否为1,若是则将bit6位清零(使用BIC指令)
这两段代码虽然大体能看懂,但是还是会有很多欠缺,希望能得到细致的自信的解释,有没有牛人?
TST R5,#BIT23
BICNER5,R5,#0x00000040
展开
 我来答
shencanzhijian
2015-02-16 · TA获得超过2447个赞
知道小有建树答主
回答量:440
采纳率:66%
帮助的人:136万
展开全部
首先,TST指令是位测试指令,其将寄存器Rn值与操作数2的值按位进行与操作,但它操作完并不存储操作后的数据,只是更新CPSR中相应位。具体为,TST指令测试的结果为全0时,CPSR中的EQ标志有效,只要有一位为1,则CPSR中的NE标志有效。而BIC指令就是简单地将寄存器的值与操作数的反码与操作,结果存入寄存器。结合你的具体语句:

TST R5 , #BIT23 ;意思就是测试R5中值的23位,R5 & 0x0080_0000,用结果更新CPSR
BICNE R5 , R5 , #0x00000040 ;意思就是当“NE”标志位有效时,也就是当测试的R5的结果是23位为1,则执行BIC指令,R5 & ~0x00000040,也就是清除第6位。这样能明白吗?
追问

不好意思字数太多不能回复,只能截图了,实在不行Q664427709

虽然是个小问题,但是里边蕴涵着好多不明白的地方,我这是刚刚接触ARM汇编指令,特别渴望您能帮我把上边的问题一一的教教我,万分感谢!费心了!!!唯一的感谢方式也就是提高悬赏值了,在线等!

追答
没问题,我开始学的时候也走了不少弯路,就希望有人能帮我搞明白。
问题1:其实这个意思是不对的,EQ这个助记符对应的条件的确是Z=1,表示比较结果相等,比如说CMP R1 , R2这样的语句,如果R1=R2,那么肯定Z=1,对应的EQ条件成立,我们就能够理解为他们2者相等。但是对于TST指令,它的执行过程就是把TST Rn , #op2中的Rn与op2直接相与,用与得的结果来决定Z=1还是Z=0,如果结果为0,那么它将Z置为1,反之置为0,对应的,我们在指令中使用EQ助记符就能根据测试结果执行程序了,可以看到,在这里EQ并不表示“相等”的含义,它只是我们要借助来修改程序走向的一个标志。
问题2:TST指令无论对多少个位进行测试,它所关心的只是结果是0还是非0,只要有一个位为1,那么结果就是非0,因此它就归为使Z=0的那一类,对应的,我们在程序中可以使用“NE”来改变程序走向。同样,此时NE对我们来说只是一个简单的可以借助的标志,并不表示“相等”的含义。
问题3:0x0000_0040 = 0000......0100_0000这是第6位,因为最低位叫做”第0位“而不是第1位。BIC指令的操作过程为,将BIC Rd , Rn ,#op2中的Rn与op2的反码相与,结果放到Rd中,比如说Rn中为0xffff_ffff,op2值为0x0000_0001,那么结果将是0xffff_ffff & 0xffff_fffe = 0xffff_fffe,是不是起到了将Rn数最低位清零的效果?所以op2中哪一位为1,则结果将对应的Rn中的位清0。要理解指令的具体操作过程,不能光记它的作用。
问题4:因为在这里NE并不是表示什么相等不相等,只是在前一句TST R5 , #BIT23得出NE有效时才执行BICNE那句,而前一句得出NE有效,则要Z=0,而TST测试的R5的第23位为1时,测试结果才能使Z=0,从而使NE有效,因此说“当测试的R5的结果是23位为1,则执行BIC指令”。

如果还有什么不明白得地方,可以加我扣_二七九七幺幺三零三
TableDI
2024-07-18 广告
VLOOKUP是Excel中用于垂直查找的函数,其基本用法包括四个参数:1. 查找值:即在数据表首列中需要搜索的值。2. 数据表:包含查找值的单元格区域或数组。3. 返回值所在列数:指定返回查询区域中第几列的值。4. 查找方式:选择精确匹配... 点击进入详情页
本回答由TableDI提供
optopwmetrist
2015-02-16 · 超过23用户采纳过TA的回答
知道答主
回答量:245
采纳率:0%
帮助的人:53.1万
展开全部
q 应当称为“判断的条件”,上一条影响 Z
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式