在vmware下安装xp系统,实现nasm,制作软盘,放入dos

所需环境:xp系统,dos,win10

  1. xp系统下——cmd——nasm 文件名字.asm -o 文件名字.com
    生成ms-dos文件。
  2. 在dos下使用bximage.exe
    制作软盘fd,起名c.vfd。
  3. 将软盘插入xp系统,快速格式化软盘,将ms-dos文件放入c.vfd软盘
  4. 用记事本方式打开bochsrc.bxrc,在what disk images will be used 下floppya:1.44=c.vfd,正常打开bochsrc.bxrc,进入a盘。输入文件名,运行
  5. ,完成

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运行相关推荐

  1. Win10局域网添加XP下共享的打印机

    Win10家庭64位版PC一台,XP32位PC一台,LBP2900打印机一台. 打印机连接在XP上,需要与Win10共享使用. Win10曾经添加共享打印机成功并使用了一段时间,昨天突然出现不能打印的 ...

  2. win10下vs2015编译的程序如何运行在win7等系统(无需安装Redistributable)

    先上解决方法:找到对应的ucrtbase.dll,也拷贝 vs2015做的项目本以为像之前的vs版本一样把msvcrXXX140.dll还有另外几个运行时库都放到exe旁边即可,然并卵...,在win ...

  3. 搭建Win XP下iPhone开发环境

    这篇文章将告诉你怎样在Windows XP SP2操作系统上搭建iPhone 2.x开发环境. 在开始之前,请先准备好 7zip 纳米机器人 RaySource 文章中的资源提供了纳米盘(需要纳米机器 ...

  4. Win11桌面右键菜单栏怎么回到Win10的样子(直接命令执行便可完成,简单快捷)

    很多小伙伴在用Win11的时候都有因为它的右键菜单栏所苦恼吧.每次在解压一个文件的时候都要多点击一下 "显示更多选项" 才可以出现完整的菜单栏,在我的电脑文件夹当中也需要点击 &q ...

  5. win10下解决编译环境find_fast_cwd: WARNING: Couldn't compute FAST_CWD pointer

    在新电脑上用的win10系统,但是装完编译环境后,编译时一直出现个警告find_fast_cwd: WARNING: Couldn't compute FAST_CWD pointer,自己一脸懵逼. ...

  6. 在XP下基于VHD版XP 2003 win7制作的RAMOS心得

    在XP下基于VHD版win7制作的RAMOS心得 1.用DiskGenius创建1.85G的VHD固定磁盘文件,以win7prosen.vhd为例,然后进行分区格式化,格式化时启用NTFS压缩. 2. ...

  7. DuplicateHandle在win10和xp下的一点差异

    原来有个程序,需要使用DuplicateHandle,在xp下 if(DuplicateHandle(hProcess, toDuplicate,GetCurrentProcess(), &h ...

  8. xp下如何配置oracle监听,黑鲨研习win10系统oracle监听服务无法打开的办法

    今天和大家分享一下win10系统oracle监听服务无法打开问题的解决方法,在使用win10系统的过程中经常不知道如何去解决win10系统oracle监听服务无法打开的问题,有什么好的办法去解决win ...

  9. Windows下MinGW编译vim7.4

    学习了一段时间Vim,感觉有些功能真的很方便.因学习原因,工作平台更换到一台老式Xp电脑上,重新安装了Vim7.4.官网默认版本不支持等宽字体和GDI++渲染,需要手工编译一个修改过的版本. 1.下载 ...

  10. 十五步骤手把手学会制作网吧XP母盘制作

    中国网吧在线 ->  网吧大学 -  技术学院 - 网管技术 - 正文 十五步骤手把手学会制作网吧XP母盘制作 2008-4-9 12:35:05 来源: 中国网吧在线 编辑:陈峰 [网友评论] ...

最新文章

  1. 波士顿动力的仓库机器人Strentch来了,挑战每小时搬运800个箱子
  2. mfc edit 超出行数时出现滚动条_千金难买“老鸭头”,是A股唯一可以获利200%的战法,一旦出现,不要犹豫满仓干,后市必定爆涨...
  3. Java语言的基础语法
  4. linux网页无法连接到服务器,linux – 无法连接到SMTP服务器
  5. 《网络安全原理与实践》一2.1 安全区介绍
  6. nodejs 游戏框架_nodejs游戏服务器框架
  7. 百般受虐!“波士屯动力”机器人这一次枪口对准人类
  8. spring mvc重定向_Spring的Web MVC –重定向到内存泄漏
  9. DLL导出类和导出函数
  10. mybatis-plus (3.4.2)使用
  11. 程序员的七夕:转给此刻你想起的那位!
  12. NameError: name 'random' is not defined
  13. 登录之回车登录和记住密码
  14. android 加载layout,Android自定义View加载视图之LoadingLayout
  15. pytorch yolov3 代码详解_PyTorch C++ libtorch的使用方法(1)-nightly 版本的 libtorch
  16. iOS UITextField设置起始字符开始位置
  17. java 日志框架 详解_springboot日志详解
  18. ADB工具包15秒快速安装器,已集合ADB、FASTBOOT工具箱和最新的驱动程序
  19. MPQ4420HGJ DCDC电源设计+SIMetrix+Spice仿真模型
  20. lenovo启动热键_联想笔记本进bios按什么键|联想笔记本开机进入bios热键是哪个

热门文章

  1. c语言小鱼的游泳时间,信息学奥林匹克竞赛-小鱼的游泳时间
  2. shell编程——select语句
  3. 基于android的轻餐饮点餐APP(ssm+uinapp+Mysql)
  4. 用swing写个简单的登录器
  5. photoshopCC 2018入门学习
  6. 京东商品数据分析,教你一键分析数据
  7. 关于Linux的rear命令
  8. latex奇偶页使用不同的页眉
  9. 图片指纹技术检测图片相似度
  10. 图像的指纹——从自然图片到GAN