当前位置:  技术问答>linux和unix

请问seg cs 是什么意思?

    来源: 互联网  发布时间:2015-09-03

    本文导语:  81 ! Get disk drive parameters, specifically nr of sectors/track ! 取磁盘驱动器的参数,特别是每道的扇区数量。 ! 取磁盘驱动器参数INT 0x13 调用格式和返回信息如下: ! ah = 0x08 dl = 驱动器号(如果是硬盘则要置位7 ...

81 ! Get disk drive parameters, specifically nr of sectors/track
! 取磁盘驱动器的参数,特别是每道的扇区数量。
! 取磁盘驱动器参数INT 0x13 调用格式和返回信息如下:
! ah = 0x08 dl = 驱动器号(如果是硬盘则要置位7 为1)。
! 返回信息:
! 如果出错则CF 置位,并且ah = 状态码。
! ah = 0, al = 0, bl = 驱动器类型(AT/PS2)
! ch = 最大磁道号的低8 位,cl = 每磁道最大扇区数(位0-5),最大磁道号高2 位(位6-7)
! dh = 最大磁头数, dl = 驱动器数量,
! es:di -􀃆 软驱磁盘参数表。
82
83 mov dl,#0x00
84 mov ax,#0x0800 ! AH=8 is get drive parameters
85 int 0x13
86 mov ch,#0x00
===================
给ch赋值为0是为什么?谢谢!!
===================

87 seg cs
=====================
  这一句什什么意思?谢谢!!
=====================

88 mov sectors,cx ! 保存每磁道扇区数。
89 mov ax,#INITSEG
90 mov es,ax ! 因为上面取磁盘参数中断改掉了es 的值,这里重新改回。
91
92 ! Print some inane message ! 在显示一些信息('Loading system ...'回车换行,共24 个字符)。

|
建议你问问赵炯
或到
www.oldlinux.org
找找

|
[转贴]
先讲一下寄存器的默认组合问题,比如指令mov [si], ax表示将ax中的内容存入ds:si指向的内存单元,也就是说在寄存器间接寻址的情况下,以si间接寻址时总是默认以ds为相应的段地址寄存器。同样di是以es为默认的段地址寄存器。
第二个要了解的是“段超越”的问题,就是在某些时候你不想使用默认的段地址寄存器,那
么你可以强制指定一个段地址寄存器(当然这种强制是在允许的情况下,建议看一下汇编
教材上的说明),同上例mov [si],ax表示存入ds:si中,但如果你想存入cs指向的段中可
以这样mov cs:[si],ax, 这样就强制指定将ax中的内容存入cs:si的内存单元。
第三个要明白的是seg cs这样的语句只影响到它下一条指令,比如在linux启动代码中的一段:
   seg cs
   mov sectors,ax
   mov ax,#INITSEG
要说明两点:
  第一,seg cs 只影响到mov sectors,ax而不影响mov ax,#INITSEG
  第二,如果以Masm语法写,seg cs和mov sectors,ax两句合起来等
        价于mov cs:[sectors],ax,这里使用了间接寻址方式。
        重复一下前面的解释,mov [sectors],ax表示将ax中的内容
        存入ds:sectors内存单元,而mov cs:[sectors],ax强制以
        cs作为段地址寄存器,因此是将ax的内容存入cs:sectors内存
        单元,一般来说cs与ds的值是不同的,如果cs和ds的值一样,
        那两条指令的运行结果会是一样的。(编译后的指令后者比前
        者一般长一个字节,多了一个前缀。)
  结论,seg cs只是表明紧跟它的下一条语句将使用段超越,因为在编
        译后的代码中可以清楚的看出段超越本质上就是加了一个字节
        的指令前缀,因此as86把它单独作为一条指令来写也是合理的。
基本情况就是这样,因为Linux使用了as86的汇编语言,与国内教科书上教的存在一些差
异。

|
seg cs是送回CS寄存器中的地址值.

|
这是操作系统分配的,我也不知道.
mov ch,0x00 表示把cx寄存器中的高位清空,至于高几位,根据你的CPU类型来判断8位、16位、32位、64位、

    
 
 

您可能感兴趣的文章:

  • 请问“门户网站”具体的意思是什么意思?
  • 请问下 echo $? 是什么意思? “?”代表什么意思?
  • 请问操作系统中的do skip是什么意思?
  • 请问BASH下. <FILENAME>是什么意思
  • 请问response.encodeURL(/tech-qa-linux/"j_security_check"/index.html)是什么意思?
  • 请问<%!BeansConstants CONST;%>是什么意思?
  • 请问:buttonsign定义为一个JButton,那么,buttonsign.addActionListener(this)是什么意思??
  • 请问label.setLabelFor(button);是什么意思?
  • 请问信息semahores limit exceeded 是什么意思?
  • 请问这个错误是什么意思 8603 Pointing Device Error
  • 请问strtok(NULL,delimits)是什么意思?
  • 请问这条信息什么意思?
  • 请问最新的reahat9.0是基于什么核心的?2.4?2.6?请问那里能下载? iis7站长之家
  • 请问这句话是什么意思呀,谢谢
  • 请问 [ $? = 0 ] 是什么意思
  • 请问 linux 中的有个符号 # 代表什么意思?
  • 请问linux里的 # 和 $ 都有什么意思啊?
  • 请问ls -l | awk '/^d/ {print $NF}'是什么意思阿?谢谢
  • 请问这些gzip: tar命令的报警信息是什么意思?
  • 请问一个宏定义的意思
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 请问:我知道路由器的telnet密码,但忘记了enable 密码,请问如何是好?
  • 请问那里有SYBASE的jbdb 2.0下载;jspsmartupload可以直接将文件上传到数据库,请问如何使用
  • 请问最新的reahat9.0是基于什么核心的?2.4?2.6?请问那里能下载?
  • 请问:请问哪里有关于linux基本操作命令讲解的资料下载,最好是幻灯片格式的.
  • 请问,我试图用#admintool&图形工具命令来安装sun workshop5.0,为什么进入的却是用户管理界面?请问具体该如何在solaris下安装应用软件
  • 请问在Redhat 9里,我从登录就是图形介面,请问如何在图形介面内进入命令行方式呢,谢谢
  • 请问玩过SOLARIS的高手门,在不正常关机后,就不能启动到windows公用桌面了,只能在命令提示模式下了,请问怎么解决这个问题啊?急~!~!
  • 请问:我在redhat下装了bochs-2.2.1-1.rpm,.装了后,想设置一下,但找不到bochsrc.fda.bxrc,请问这个文件在哪个曰录下啊。
  • 请问:在配置Qt时,很多文档都说在.profile,.login里加东西,但是我好像没有发现有这两个文件上,请问这些文件在哪个目录下啊
  • 请问:在GCC里的C程序里的变量的声明是不是只能在前面,而且相同类型的变量的声明只能放在一起?如果不是,请问怎么样可以解决这个问题.
  • 请问各位大虾,小弟今天开始学jsp了,这学期我们有java课,所以已经下载了jdk(好象是1.2),请问我的98环境怎么配置jsp环境呀?我的jdk可以运行.java程序,别的我就不知道了....谢谢!
  • 主机是WIN2000,我用的是LUNIX,请问是否可以共享上网? 如果可以请问如何设置? 500分答谢,龟儿食言!
  • 请问linux下GUI开发的问题!
  • 请问出现fstab文件丢失该怎么修复呀?
  • 请问这个方法如何调用?
  • 请问一个奇怪的问题!
  • 请问在网页中打开的新窗口,如何让其居中。
  • 请问我该学什么了
  • 请问安装zhcon,cxterm问题
  • 非常急! 请问daemontools 在red hat 9下的安装问题? 在线等待


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3