Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1950982
  • 博文数量: 77
  • 博客积分: 2175
  • 博客等级: 大尉
  • 技术积分: 2491
  • 用 户 组: 普通用户
  • 注册时间: 2010-04-20 20:49
个人简介

欢迎光临我的博客

文章分类

全部博文(77)

文章存档

2023年(1)

2018年(4)

2017年(1)

2016年(2)

2015年(2)

2013年(5)

2012年(29)

2010年(33)

分类: 系统运维

2012-04-10 08:42:23

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技术内幕》
阅读(4836) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~