免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1473 | 回复: 4
打印 上一主题 下一主题

大家帮我看看minix开头这段汇编 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-12-05 14:09 |只看该作者 |倒序浏览

  1. MINIX:
  2.   jmp M.0
  3.   .word 0,0
  4. M.0
  5.   cli
  6.   mov ax,cs
  7.   mov ds,ax
  8.   mov ax,4
  9.   mov ds,ax
  10.   mov ss,ax
  11.   mov _scan_code,bx
  12.   mov sp,#_k_stack
  13.   add sp,#K_STACK_BYTES
  14.   
  15.   call _main
复制代码


  .word 0,0请问这是干什么的?

  1. mov ax,cs
  2.   mov ds,ax
  3.   mov ax,4
  4.   mov ds,ax
复制代码


这是做什么用?是把cs,ds都指向4吗?刚刚开始学习,请大家指教。

[ 本帖最后由 x4ulocca 于 2005-12-5 14:24 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2005-12-05 15:29 |只看该作者
原帖由 x4ulocca 于 2005-12-5 14:09 发表
[code]
MINIX:
  jmp M.0
  .word 0,0
M.0
  cli
  mov ax,cs
  mov ds,ax
  mov ax,4
  mov ds,ax
  mov ss,ax
  mov _scan_code,bx
  mov sp,#_k_stack
  add sp,#K_STACK_BYTES
  
  call _mai ...

word的作用就是留出4个字节。后面的那个代码不是你写错了,就是我没有看明白。明把CS的值给了DS,为什么后面又来了个DX=4呢?

论坛徽章:
0
3 [报告]
发表于 2005-12-05 16:14 |只看该作者
谢谢您的回答。确实就是这样,minix源代码。

论坛徽章:
0
4 [报告]
发表于 2005-12-06 01:30 |只看该作者
原帖由 x4ulocca 于 2005-12-5 16:14 发表
谢谢您的回答。确实就是这样,minix源代码。

好像确实有逻辑上的问题

论坛徽章:
0
5 [报告]
发表于 2006-03-12 23:05 |只看该作者
原帖由 x4ulocca 于 2005-12-5 01:09 发表
[code]
MINIX:
  jmp M.0
  .word 0,0
M.0
  cli
  mov ax,cs
  mov ds,ax
  mov ax,4
  mov ds,ax
  mov ss,ax
  mov _scan_code,bx
  mov sp,#_k_stack
  add sp,#K_STACK_BYTES
  
  call _mai ...

请问这是哪段程序里的?还是你反汇编出来的?
如果是反汇编就不奇怪,各种系统下经常有这种情况.
如果是源码,去掉前面两行试一试.

也有这种可能:虽然是源码,但是是从反汇编过来的.
Tennenbaum偷懒了.

[ 本帖最后由 catbert 于 2006-3-12 10:12 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP