文章目录

  • 效果
  • 代码

效果

代码

             ;栈段与栈指针 0x07c00 --> 0x07a00 由高地址 到 低地址mov ax,0x07a0mov ss,axmov sp,0x7c00;--------------------------------------------------------------------------------;计算gdt的逻辑地址mov dx,[cs:gdt_base+0x7c00+2]mov ax,[cs:gdt_base+0x7c00]mov bx,0x10div bx                                ;dx存商,ax存余mov ds,ax                          ;段地址mov bx,dx                           ;偏移地址gdt_sta:;创建0号描述符,空描述符(处理器要求)mov dword [bx],0x0mov dword [bx+0x04],0x0add bx,0x08;创建1号描述符,代码段描述符mov dword [bx],0x7c0001ff            ;线性基地址:0x00007c00mov dword [bx+0x04],0x00409800        ;段界限:0x001ffadd bx,0x08;创建2号描述符,数据段描述符mov dword [bx],0x8000ffff          ;线性基地址:0x000B8000mov dword [bx+0x04],0x0040920b        ;段界限:0x0ffffadd bx,0x08;创建3号描述符,栈段段描述符mov dword [bx],0x00007a00          ;线性基地址:0x00000000mov dword [bx+0x04],0x00409600        ;段界限:0x07a00gdt_end:;初始化gdtr,填入gdt表字节大小mov word [cs:gdt_size++0x7c00],gdt_end-gdt_sta-1lgdt [cs:gdt_size++0x7c00];--------------------------------------------------------------------------------;准备进入32位保护模式in al,0x92                         ;南桥芯片的端口or al,0000_0010B                    ;二进制写法,下划线增加可读性out 0x92,al                           ;打开地址线A20(历史遗留问题);详细信息:翻看P193cli                                    ;此时中断向量表未建立(32为保护模式下);禁止中断,防止出错mov eax,cr0or eax,0x1mov cr0,eax                          ;设置PE位,打开32位保护模式;进入32保护模式jmp 0000000000001_000B:flush        ;13位段选择子,3位属性;清空流水线[bits 32]                         ;进入32保护模式;--------------------------------------------------------------------------------flush:;数据段加载mov cx,0000000000010_000B         ;选择子0x2mov ds,cx;以下在屏幕上显示"Protect mode OK." mov byte [0x00],'P'  mov byte [0x02],'r'mov byte [0x04],'o'mov byte [0x06],'t'mov byte [0x08],'e'mov byte [0x0a],'c'mov byte [0x0c],'t'mov byte [0x0e],' 'mov byte [0x10],'m'mov byte [0x12],'o'mov byte [0x14],'d'mov byte [0x16],'e'mov byte [0x18],' 'mov byte [0x1a],'O'mov byte [0x1c],'K';堆栈段加载mov cx,0000000000011_000B          ;选择子0x3mov ss,cxmov esp,0x7c00;验证堆指针esp,每push/pop一次是否是加/减4mov ebp,esp                            ;保存esppush byte '.'sub ebp,4cmp ebp,esp                           ;相等则停机,不相等则显示.jnz exitpop eaxmov [0x1e],alexit:hlt                                   ;停机指令;--------------------------------------------------------------------------------gdt_size dw 0gdt_base dd 0x00007e00times 510-($-$$) db 0db 0x55,0xAA

80386汇编_进入32位保护模式相关推荐

  1. 操作系统开发系列—2.进入32位保护模式

    源码如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 3 ...

  2. x86汇编语言从实模式百度云_Intel x86 CPU 32位保护模式杂谈之任务切换 上

    目录: 什么是任务 任务由什么组成 任务门描述符是什么东东?有了TSS描述符为什么要有任务门描述符? 参考文献 什么是任务 任务(task)是处理器可以分配.执行.挂起的工作单位,笔者认为和我们操作系 ...

  3. 如何使用ARM协处理器CP15在32位ARRCH模式下操作64位寄存器)

    1 参考 参考ARM的官方手册ARMv8指令集架构手册和A53技术参考手册 1.DDI0487H_a_a-profile_architecture_reference_manual 2.DDI0500 ...

  4. HYCON单片机_以32位MCU-HY16F198实现AC电流量测应用-测试测量-与非网

    一.内容简介 本文将介绍以HY16F198搭配Hall Sensor(WCS1800)进行交流电流数值量测,最大可量测电流范围从0.1A~17.68A.本文实验数据从0A~17.6A,比较使用电表Ag ...

  5. python32位与62位可以随便装吗_电脑32位和64位可以随便换吗???

    展开全部 电脑32位和64位的区抄别: 1.处理能力 64位系统在技术上2113更5261先进, 突破了许多技术瓶颈4102, 在处理能力上, 64位比32位强. 2.寻址能力 位数1653通过影响硬 ...

  6. xp系统支持64g内存_让32位XP支持64G内存

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 代码: int __usercall MiCheckPaeLicense(PLOADER_PARAMETER_BLOCK LoaderBlock){ En ...

  7. win764位和32位有什么区别_操作系统32位和64位有哪些区别呢?

    最近有小伙伴提到一个问题:操作系统的32位和64位有什么区别呢?我们再安装软件的时候,软件安装包会显示有32位和64位安装路径,此时我们可以在电脑属性里边看到自己电脑的系统信息:针对于这个问题,今天小 ...

  8. python32位与62位可以随便装吗_我的电脑32位的可以装62位的操作系统吗

    展开全部 首先电脑系统一般是32或者64位,其次电脑都可以装64位系统,唯一要注意62616964757a686964616fe59b9ee7ad9431333365666137的是装62位操作系统对 ...

  9. 【汇编语言】上机实验 win7/8/10 64位系统 进入32位DOS模式 实现dubug/edit/masm/link功能

    1 软件下载和安装 下载并安装DOSBox软件,注意,不要装在C盘上,装在其他盘上 [备注]软件直接百度搜索即可 下载Debug.exe文件 [备注]百度搜索"Debug 64位 下载&qu ...

  10. 4KB/4MB 32位分页模式下的线性地址翻译以及CR3

    摘自<Intel® 64 and IA-32 Architectures Software Developer's Manual Combined Volumes1, 2A, 2B, 2C, 2 ...

最新文章

  1. 又拍云SSL证书全新上线,提供一站式HTTPS安全解决方案
  2. 让面试官颤抖的 HTTP 2.0 协议面试题
  3. 二、window下django安装及第一个应用
  4. LeetCode Search in Rotated Sorted Array II -- 有重复的旋转序列搜索
  5. mysql order by 中文 排序
  6. Windows Mobile开发资源相关下载收录
  7. 知识图谱之语言计算与信息抽取
  8. 【opencv图像基础】图像常见的通道模式:RGB、YUV、HSV
  9. 华硕z170a如何开启m2_给Z170A 加个M.2 SSD,速度有点意思
  10. 我们可以拥有多少级指针?
  11. ios 时间选择器月份设置中文_iOS 自定义日期选择器  PickerView优化版
  12. r语言折线图_R语言基础入门视频教程——语法篇(完结)
  13. 涨姿势系列之——内核环境下花式获得CSRSS进程id
  14. iOS 给测试人员测试手机APP的四种方法:真机运行(略),打ipa包,(testFlighe)邮件,蒲公英(二)testflight
  15. 苹果手机密码锁如何解锁
  16. JavawebJAVAJSP网吧计费管理系统(JSP网吧管理系统)网吧收费管理系统网吧自动计费管理系统
  17. 苹果开发者证书申请流程
  18. 大数据入门:Flink和Spark简单对比
  19. 限速linux c语言,基于Linux系统的流量控制程序的C语言代码
  20. Oracle之创建定时任务

热门文章

  1. 撰写MLA格式的毕业论文,需留意下边几个文件格式标准
  2. 全球与中国心脏临床信息系统(CIS)市场深度研究分析报告
  3. 高等数学-用等价无穷小求极限题集
  4. 硬件第一节 三级管电路工作原理及详解
  5. 一个便捷的在线取色器工具
  6. 3D扫描打开眼镜定制新纪元
  7. 牛头刨床机构动力学的分析(C语言建模)
  8. TimePicker使用全解
  9. java 三次样条插值_java – 三次样条插值的正确实现
  10. xd设计的原型图能否导出html格式,XD-餐饮app原型设计与代码导出