tst用来判断目的数是否为0. 但这里tst (sp)+的目的其实在于让栈指针SP加2,所谓醉翁之意不在酒。
为什么这样做?因为它是让SP加2最简(效率也应该最高)的指令,否则用add 2, sp,不如本指令效率高。
tst r0就是判断r0的值是否为0,beq 1f为0则跳转至1:
郝庆丰
From: quntmec@hotmail.com
To: qf.hao@hotmail.com
Subject: 关于《UNIX技术内幕》的勘误及遇到的问题_9
Date: Wed, 19 Oct 2011 19:38:46 +0800
郝先生,
对于108页的倒数第4行,“tst
(sp)+指令使得栈指针恢复成切换前的值0o141102”,这句话不太理解。或者更确切的说是,tst指令到底是干什么的?其实书里第15页里就曾经
对tst指令进行过说明,但我还是不太明白。此外,相同情况的还有第114页倒数第2段的代码里面的“tst r0”这句,我也是不太明白它的意思。
Steve
《返璞归真--UNIX技术内幕》
阅读(4842) | 评论(0) | 转发(0) |