CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  其他开发语言 >  汇编语言

帮我看一下semget的汇编代码 欢迎讨论 圣诞快乐

楼主bnwxf(有一种感觉叫从容)2002-12-18 18:16:21 在 其他开发语言 / 汇编语言 提问

我用gdb反汇编semget  
  得到如下结果:  
  0x80485d0   <semget>:   jmp   *0x804a1c4  
  0x80485d6   <semget+6>:   push   $0x58  
  0x80485db   <semget+11>:   jmp   0x8048510   <_init+24>  
   
  第一个jmp后那个地址加*号有什么含义? 问题点数:88、回复次数:9Top

1 楼bnwxf(有一种感觉叫从容)回复于 2002-12-18 20:06:49 得分 0

自己来upTop

2 楼ahalf(ahalf)回复于 2002-12-19 15:18:54 得分 0

指针Top

3 楼bnwxf(有一种感觉叫从容)回复于 2002-12-19 21:41:21 得分 0

to   ahalf:  
  老兄,我上一个贴子(esp多跳一段距离的那个),你就这么言简意赅的来了一句[这叫标准帧],这次能不能说的详细点?  
   
  我跟踪过了,jmp   *0x804a1c4,*号是用来表示间址的。  
  等有时间了,我把整个sys_semget的反汇编代码贴出来。请大家讨论。  
  Top

4 楼ahalf(ahalf)回复于 2002-12-23 08:58:54 得分 0

上一个我已经回你了  
  这个我不懂Top

5 楼ahalf(ahalf)回复于 2002-12-23 09:01:50 得分 20

我的理解是,这是一个带符号表的程序,可能是说明目的地址的产生方式  
  如果是发行程序,反汇编结果没有任何指示Top

6 楼bnwxf(有一种感觉叫从容)回复于 2002-12-23 11:17:13 得分 0

to   ahalf:  
  言词不当之处,请老兄不要介意。  
   
  看来兄台对汇编很熟,我用gdb反汇编,的确见到一个_GLOBAL_OFFSET_TABLE。程序是用gcc编译出来的,我指定了-g选项。  
  其实我的主要目的是想知道semget到底作了些什么--我只找到了sys_semget的源代码,没有semget这个库函数的代码。所以一直不清楚当指定sem_num为零时,semget到底干了些什么。  
   
  再次感谢你对上一个问题的赐教。  
  p.s.:  
  ahalf兄是如何学汇编的,能不能给兄弟推荐一本好的汇编教材?  
  我在学校里学过清华出的那本汇编,好像没有我这两个问题相关的内容。  
   
  明天结贴。  
  Top

7 楼DoItFreely(Freely)回复于 2002-12-23 11:29:56 得分 10

0x80485d0   <semget>:   jmp   *0x804a1c4  
  0x80485d6   <semget+6>:   push   $0x58  
  0x80485db   <semget+11>:   jmp   0x8048510   <_init+24>  
   
  有些汇编语言的语法跟masm/tasm不相同,*0x804a1c4估计跟[0x804a1c4]同义,而push   $0x508,就是立即数操作,即push   0x508,jmp   0x8048510   <_init+24>不怎么懂,好象是jmp   0x8048510,而该地址在模块/函数_init偏移量0x24的地方Top

8 楼970361(是猫就应该抓老鼠)回复于 2002-12-23 13:20:30 得分 58

如果不知道semget是干什么用的话请查看帮助  
  bash>man   semget  
  这是一个和信号有关的函数,具体是干什么的你可以仔细阅读。semget本身不是   一个系统调用,  
  0x804a1c4存放的应该是个函数的入口地址,可能是一个系统调用的吧。  
  在内核中很多系统调用是用一个符号表来保存函数的入口地址的,所以会在地址前加上一个*   0x804a1c4。符号表就是c语言中的指正数组数组里存放的是函数的入口地址  
  Top

9 楼bnwxf(有一种感觉叫从容)回复于 2002-12-24 23:55:41 得分 0

to   970361:  
  多谢在此援手。  
  其实兄弟也是在unix/linux下混饭吃,只是有些问题从c语言的级别想不清楚,  
  就来汇编这里来请教请教。  
  从这段代码看来,semget这个库函数只是作一次承上启下的工作,那所有的奥妙  
  全在sys_semget上了。  
   
  结贴了,请各位笑纳。Top

相关问题

  • 看一下这段代码!
  • 帮忙看一下代码~
  • 汇编语言帮忙看一下
  • 请帮我看一下这些代码。
  • 麻烦大家看一下代码!
  • 请帮我看一下联接代码
  • 看一下我的代码问题!|
  • 帮忙看一下这段html代码
  • 帮忙看一下小代码
  • 帮我看一下代码错在哪?

关键词

  • 汇编
  • 函数
  • 代码
  • 系统
  • semget
  • a1c
  • ahalf
  • jmp
  • 地址
  • 符号

得分解答快速导航

  • 帖主:bnwxf
  • ahalf
  • DoItFreely
  • 970361

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo