免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3004 | 回复: 9

UNIX OS汇编代码怎么读?有简易指南不? [复制链接]

论坛徽章:
0
发表于 2006-09-21 11:30 |显示全部楼层
以前在学校学了汇编,学完就忘了,
今天打开UNIX OS的汇编码,怎么感觉不认得了.哪位有简易说明或将下面的例子(syscall解释一下?
  1. / syscall

  2. .globl        _syscall,csv,cret,cerror
  3. _syscall:
  4.         jsr        r5,csv
  5.         mov        r5,r2
  6.         add        $04,r2
  7.         mov        $9f,r3
  8.         mov        (r2)+,r0
  9.         bic        $!0377,r0
  10.         bis        $sys,r0
  11.         mov        r0,(r3)+
  12.         mov        (r2)+,r0
  13.         mov        (r2)+,r1
  14.         mov        (r2)+,(r3)+
  15.         mov        (r2)+,(r3)+
  16.         mov        (r2)+,(r3)+
  17.         mov        (r2)+,(r3)+
  18.         mov        (r2)+,(r3)+
  19.         sys        0; 9f
  20.         bec        1f
  21.         jmp        cerror
  22. 1:
  23.         jmp        cret

  24.         .data
  25. 9:        .=.+12.
复制代码


调用:
  1. execl(name, arg1, a2, a3, a4, a5)
  2. char *name, arg1, a2, a3, a4, a5;
  3. {
  4.         char *args[6];

  5.         args[0] = arg1;
  6.         args[1] = a2;
  7.         args[2] = a3;
  8.         args[3] = a4;
  9.         args[4] = a5;
  10.         args[5] = 0;

  11.         syscall(11, 0, 0, name, args, 0);
  12. }
复制代码

[ 本帖最后由 zhhui2000 于 2006-9-21 11:33 编辑 ]

论坛徽章:
0
发表于 2006-09-21 13:02 |显示全部楼层
pdp11?
找本pdp11手册翻翻.

论坛徽章:
0
发表于 2006-09-21 15:33 |显示全部楼层
这是SCO UNIX,
再顶上来,路过的大侠看看.

[ 本帖最后由 zhhui2000 于 2006-9-21 15:35 编辑 ]

论坛徽章:
0
发表于 2006-09-21 16:57 |显示全部楼层
找到两篇相关文章:

Thanks to 肖文鹏, 北京理工大学计算机系硕士研究生,
http://www.tongyi.net/develop/Assemble/1053151.html


Thanks to 作者:snowqiang
http://www-128.ibm.com/developerworks/cn/linux/l-assembly/

论坛徽章:
0
发表于 2006-09-21 23:38 |显示全部楼层
原帖由 zhhui2000 于 2006-9-21 11:30 发表
以前在学校学了汇编,学完就忘了,
今天打开UNIX OS的汇编码,怎么感觉不认得了.哪位有简易说明或将下面的例子(syscall解释一下?
[code]/ syscall

.globl        _syscall,csv,cret,cerror
_syscall:
        jsr        r5,csv
         ...


怎么觉得你的那个syscall不是内核里面的? 象是C库.

论坛徽章:
0
发表于 2006-09-21 23:56 |显示全部楼层
读 assemble 代码要把平台联系起来,先把你的平台熟悉了再说吧

论坛徽章:
0
发表于 2006-09-22 04:48 |显示全部楼层
2楼厉害!连PDP11汇编码也认出来了。
这个应该是PDP11汇编码。
说一种汇编码,先要说是哪种CPU的,再说哪个操作系统上的,最后说是哪个汇编器的。

论坛徽章:
0
发表于 2006-09-22 05:42 |显示全部楼层
可以慢慢看,也可以参考《linux内核完全注释》

论坛徽章:
0
发表于 2006-09-22 08:26 |显示全部楼层
原帖由 flw2 于 2006-9-21 23:38 发表


怎么觉得你的那个syscall不是内核里面的? 象是C库.


是的,这就是SCO unix 3.2.4的库.

论坛徽章:
0
发表于 2008-01-18 13:41 |显示全部楼层
这个应该是是ARM的汇编指令,不是80X86系统的指令。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP