win10制作软盘,xp下进行编译,最后回到win10运行
在vmware下安装xp系统,实现nasm,制作软盘,放入dos
所需环境:xp系统,dos,win10
- xp系统下——cmd——nasm 文件名字.asm -o 文件名字.com
生成ms-dos文件。 - 在dos下使用bximage.exe
制作软盘fd,起名c.vfd。 - 将软盘插入xp系统,快速格式化软盘,将ms-dos文件放入c.vfd软盘
- 用记事本方式打开bochsrc.bxrc,在what disk images will be used 下floppya:1.44=c.vfd,正常打开bochsrc.bxrc,进入a盘。输入文件名,运行
- ,完成
pmtest1.asm
; ==========================================
; pmtest1.asm
; 编译方法:nasm pmtest1.asm -o pmtest1.com
; ==========================================
%include “pm.inc” ; 常量, 宏, 以及一些说明
org 0100h
jmp LABEL_BEGIN
[SECTION .gdt]
; GDT
; 段基址, 段界限 , 属性
LABEL_GDT: Descriptor 0, 0, 0 ; 空描述符
LABEL_DESC_CODE32: Descriptor 0, SegCode32Len - 1, DA_C + DA_32 ; 非一致代码段, 32
LABEL_DESC_VIDEO: Descriptor 0B8000h, 0ffffh, DA_DRW ; 显存首地址
; GDT 结束
GdtLen equ $ - LABEL_GDT ; GDT长度
GdtPtr dw GdtLen - 1 ; GDT界限
dd 0 ; GDT基地址
; GDT 选择子
SelectorCode32 equ LABEL_DESC_CODE32 - LABEL_GDT
SelectorVideo equ LABEL_DESC_VIDEO - LABEL_GDT
; END of [SECTION .gdt]
[SECTION .s16]
[BITS 16]
LABEL_BEGIN:
mov ax, cs
mov ds, ax
mov es, ax
mov ss, ax
mov sp, 0100h
; 初始化 32 位代码段描述符
xor eax, eax
mov ax, cs
shl eax, 4
add eax, LABEL_SEG_CODE32
mov word [LABEL_DESC_CODE32 + 2], ax
shr eax, 16
mov byte [LABEL_DESC_CODE32 + 4], al
mov byte [LABEL_DESC_CODE32 + 7], ah; 为加载 GDTR 作准备
xor eax, eax
mov ax, ds
shl eax, 4
add eax, LABEL_GDT ; eax <- gdt 基地址
mov dword [GdtPtr + 2], eax ; [GdtPtr + 2] <- gdt 基地址; 加载 GDTR
lgdt [GdtPtr]; 关中断
cli; 打开地址线A20
in al, 92h
or al, 00000010b
out 92h, al; 准备切换到保护模式
mov eax, cr0
or eax, 1
mov cr0, eax; 真正进入保护模式
jmp dword SelectorCode32:0 ; 执行这一句会把 SelectorCode32 装入 cs, 并跳转到 Code32Selector:0 处
; END of [SECTION .s16]
[SECTION .s32]; 32 位代码段. 由实模式跳入.
[BITS 32]
LABEL_SEG_CODE32:
mov ax, SelectorVideo
mov gs, ax ; 视频段选择子(目的)
mov edi, (80 * 10 + 0) * 2 ; 屏幕第 10 行, 第 0 列。
mov ah, 0Ch ; 0000: 黑底 1100: 红字
mov al, 'P'
mov [gs:edi], ax; 到此停止
jmp $
SegCode32Len equ $ - LABEL_SEG_CODE32
; END of [SECTION .s32]
win10制作软盘,xp下进行编译,最后回到win10运行相关推荐
- Win10局域网添加XP下共享的打印机
Win10家庭64位版PC一台,XP32位PC一台,LBP2900打印机一台. 打印机连接在XP上,需要与Win10共享使用. Win10曾经添加共享打印机成功并使用了一段时间,昨天突然出现不能打印的 ...
- win10下vs2015编译的程序如何运行在win7等系统(无需安装Redistributable)
先上解决方法:找到对应的ucrtbase.dll,也拷贝 vs2015做的项目本以为像之前的vs版本一样把msvcrXXX140.dll还有另外几个运行时库都放到exe旁边即可,然并卵...,在win ...
- 搭建Win XP下iPhone开发环境
这篇文章将告诉你怎样在Windows XP SP2操作系统上搭建iPhone 2.x开发环境. 在开始之前,请先准备好 7zip 纳米机器人 RaySource 文章中的资源提供了纳米盘(需要纳米机器 ...
- Win11桌面右键菜单栏怎么回到Win10的样子(直接命令执行便可完成,简单快捷)
很多小伙伴在用Win11的时候都有因为它的右键菜单栏所苦恼吧.每次在解压一个文件的时候都要多点击一下 "显示更多选项" 才可以出现完整的菜单栏,在我的电脑文件夹当中也需要点击 &q ...
- win10下解决编译环境find_fast_cwd: WARNING: Couldn't compute FAST_CWD pointer
在新电脑上用的win10系统,但是装完编译环境后,编译时一直出现个警告find_fast_cwd: WARNING: Couldn't compute FAST_CWD pointer,自己一脸懵逼. ...
- 在XP下基于VHD版XP 2003 win7制作的RAMOS心得
在XP下基于VHD版win7制作的RAMOS心得 1.用DiskGenius创建1.85G的VHD固定磁盘文件,以win7prosen.vhd为例,然后进行分区格式化,格式化时启用NTFS压缩. 2. ...
- DuplicateHandle在win10和xp下的一点差异
原来有个程序,需要使用DuplicateHandle,在xp下 if(DuplicateHandle(hProcess, toDuplicate,GetCurrentProcess(), &h ...
- xp下如何配置oracle监听,黑鲨研习win10系统oracle监听服务无法打开的办法
今天和大家分享一下win10系统oracle监听服务无法打开问题的解决方法,在使用win10系统的过程中经常不知道如何去解决win10系统oracle监听服务无法打开的问题,有什么好的办法去解决win ...
- Windows下MinGW编译vim7.4
学习了一段时间Vim,感觉有些功能真的很方便.因学习原因,工作平台更换到一台老式Xp电脑上,重新安装了Vim7.4.官网默认版本不支持等宽字体和GDI++渲染,需要手工编译一个修改过的版本. 1.下载 ...
- 十五步骤手把手学会制作网吧XP母盘制作
中国网吧在线 -> 网吧大学 - 技术学院 - 网管技术 - 正文 十五步骤手把手学会制作网吧XP母盘制作 2008-4-9 12:35:05 来源: 中国网吧在线 编辑:陈峰 [网友评论] ...
最新文章
- 波士顿动力的仓库机器人Strentch来了,挑战每小时搬运800个箱子
- mfc edit 超出行数时出现滚动条_千金难买“老鸭头”,是A股唯一可以获利200%的战法,一旦出现,不要犹豫满仓干,后市必定爆涨...
- Java语言的基础语法
- linux网页无法连接到服务器,linux – 无法连接到SMTP服务器
- 《网络安全原理与实践》一2.1 安全区介绍
- nodejs 游戏框架_nodejs游戏服务器框架
- 百般受虐!“波士屯动力”机器人这一次枪口对准人类
- spring mvc重定向_Spring的Web MVC –重定向到内存泄漏
- DLL导出类和导出函数
- mybatis-plus (3.4.2)使用
- 程序员的七夕:转给此刻你想起的那位!
- NameError: name 'random' is not defined
- 登录之回车登录和记住密码
- android 加载layout,Android自定义View加载视图之LoadingLayout
- pytorch yolov3 代码详解_PyTorch C++ libtorch的使用方法(1)-nightly 版本的 libtorch
- iOS UITextField设置起始字符开始位置
- java 日志框架 详解_springboot日志详解
- ADB工具包15秒快速安装器,已集合ADB、FASTBOOT工具箱和最新的驱动程序
- MPQ4420HGJ DCDC电源设计+SIMetrix+Spice仿真模型
- lenovo启动热键_联想笔记本进bios按什么键|联想笔记本开机进入bios热键是哪个