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

AT&T汇编 Linux保护模式编程问题

    来源: 互联网  发布时间:2016-08-09

    本文导语:  1.在启动保护模式之前,16位代码能否执行32代码? 2.下面是Linux完成保护模式启动后的控制权转移代码:    .byte 0x66,0xea    code32:.long 0x10000           .word __BOOT_CS 问题是为什么说这个是16位代码调用32为代码...

1.在启动保护模式之前,16位代码能否执行32代码?
2.下面是Linux完成保护模式启动后的控制权转移代码:
   .byte 0x66,0xea
   code32:.long 0x10000
          .word __BOOT_CS
问题是为什么说这个是16位代码调用32为代码,又为什么要用跳转机械码来实现,而不用汇编指令直接实现?
3.在进入到保护模式后,我还是可以使用16位的分段机制,也就是说保护模式是一起动时CPU访问内存就使用的,还是等程序设置好了才使用的,换种说法就是如果程序不设置,即使启动了保护模式,也不会真正进入保护模式?


谢谢高手指点!!!

|
保护模式之前,16位代码不能执行32位的代码,因为16位代码ret是默认堆栈中的返回地址是16位的,32位的代码则需要32位的返回地址,二者区别很大。

lz需注意保护模式和实模式的分段的含义区别,进入保护模式前须设置好将要用到的gdt表,再把gdt表的地址放入gdtr寄存器,完成了这些操作后,才进入保护模式,如果没有设置gdt,则其结果是不可预知的。

|
模式不一样应该不能执行;
进入到保护模式后,还是可以使用16位的分段机制——是因为还有虚拟模式;
保护模式是通过控制CR0的PE位来控制的:如果PE位置1,则保护模式启动,如果PE=0,则在实模式下运行。

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • linux下objdump命令用法介绍及如何使用objdump命令进行反汇编
  • linux中所用的汇编怎么和我们学的汇编不一样?
  • 网络技术 iis7站长之家
  • 有没有at@t汇编格式和intel 汇编格式互相转换的工具啊!
  • 请问有没有用AT&T汇编语法讲汇编语言的书?
  • gcc和objdump能生成Intel汇编吗?AT&T格式汇编看着不太习惯
  • 请教,X86汇编转AT&T汇编,急急
  • ARM汇编中的里的SUBS,后面的S是什么意思?顺便求本汇编的好书。
  • 如何将ARM汇编代码变成GNU汇编?
  • 高分求助:linux内核中的汇编语言和Dos或windows下的汇编是一样的吗,有这方面的书或资料可供学习吗,分不够可再加,决不食言
  • 强力推荐一本LINUX下汇编(即AT&T汇编)的新书
  • 请问一下,汇编器as是否就是gas?
  • 请问各位大虾,如何在linux环境下学习汇编?
  • GCC内联汇编如何调试
  • LINUX下的汇编 怎么看????高手指导语法
  • 请问汇编器和编译器各自完成那些功能啊?
  • 想学汇编
  • 编译、汇编、连接分别指代什么?
  • 关于gcc的汇编
  • linux汇编
  • 关于汇编


  • 站内导航:


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

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

    浙ICP备11055608号-3