[082][汇编语言]编程:应用BIOS int 13H中断例程对 软盘A 进行读写

编程:应用BIOS int 13H中断例程对 软盘 A 进行读写

完整源码

数据 从 内存 到 软盘(写扇区)

  • 文件名 w2soft.asm
  • 功能:将当前屏幕的内容保存到软盘上
  • 分析:1屏的内容占4000个字节,需要8个扇区,用0面0道的1~8扇区存储显存中的内容。
  • mov ah,3 表示 写扇区
assume cs:code
code segment
    start:  mov ax,0B800h
            mov es,ax
            mov bx,0
            
            mov al,8
            mov ch,0
            mov cl,1
            mov dl,0
            mov dh,0
            mov ah,3
            int 13h
            
            mov ax,4c00h
            int 21H
    code ends
    end start

数据从 软盘 到 内存(读扇区)

  • 文件名 r2mem.asm
  • 功能:读取 0面0道1扇区 的内容到 内存地址 0000:0200H处
  • mov ah,2 表示读扇区
assume cs:code
code segment
    start:  mov ax,0
            mov es,ax
            mov bx,200H
            
            mov al,1
            mov ch,0
            mov cl,1
            mov dl,0
            mov dh,0
            mov ah,2
            int 13h
            
            mov ax,4c00h
            int 21H
    code ends
    end start

参数说明

入口参数:
(ah)= int 13H 的功能号(2表示读扇区、3表示写扇区)
(al)= 读取/写入的扇区数
(ch)= 磁道号
(cl)= 扇区号
(dh)= 磁头号(对于软盘即面号,对软盘一个面用一个磁头来读写)
(dl)= 驱动器号  软驱从0开始,0:软驱A 、 1:软驱B
                    硬盘从80H开始,80H:硬盘C 、 81H: 硬盘D
                    
es:bx 指向接收从扇区读入数据的内存区/指向将写入磁盘的数据


返回参数:
操作成功,(ah)= 0 ,(al)= 读取/写入的扇区数
操作失败,(ah)= 出错代码

实际运行

  • 运行程序:【U命令】查看指令的汇编形式,【G X 命令】跳到 mov ax,4C00H 所在地址 【 X 】,本次运行的 X = 16
  • 写扇区:需要8个扇区,用0面0道的1~8扇区存储显存中的内容
返回参数 AX = 0008H
ah = 00H 表示操作成功
al = 08H 说明写了8个扇区
写扇区:需要8个扇区,用0面0道的1~8扇区存储显存中的内容 返回参数AX
  • 读扇区 :读取0面0道1扇区的内容 返回参数 00 01
返回参数 AX = 0001H
ah = 00 H 表示操作成功
al = 01H 说明读了1个扇区
读扇区 :读取0面0道1扇区的内容 返回参数 AX.PNG

编译、连接、调试程序

  • 写扇区:将当前屏幕的内容写到 软盘A,使用源码文件 w2soft.asm

  • 读扇区:将软盘A的数据读到内存0000:0200H处,使用源码文件 r2mem.asm

0、开发环境配置

[081][汇编语言]开发环境配置: VMware Workstation + XP + MASM + LINK+DEBUG
https://www.jianshu.com/p/43c8661b381d

  • 必需步骤二,完成后可以在 虚拟机XP 内看到 软盘A: 图标
    3.5英寸 软盘 容量1.44MB.png

在 VMware Workstation 中创建一个虚拟软盘,并在 Windows XP上使用
https://blog.csdn.net/apollon_krj/article/details/72026944

需要做的事情其实是三件:
① 创建一个软驱 (被虚拟机XP识别为 软驱A:
② 创建软盘映像文件 boot.flp
③ 向软驱插入软盘 (遇到提示 请插入软盘

③ 向软驱插入软盘 :打开 VMware 进入虚拟机XP→ 菜单→ 虚拟机→ 设置→ 软盘→ 设备状态→ 已连接→勾选.png

1、从 软件VMware 上打开 虚拟机XP,找到 软盘A: ,双击,将其格式化

1. 格式化 软盘A.PNG

2、软盘A 格式化完成之后可以查看其属性

2. 格式化软盘A 后 查看软盘A的属性 显示出1.38MB可用.PNG

3、在CMD.EXE里面 编译 写扇区程序 w2soft.asm

3. 程序 w2soft.exe 将当前屏幕的内容保存到软盘A.PNG

4、可以使用 debug 调试 + G命令运行 写扇区程序 w2soft.exe

4. 使用G命令 执行完 w2soft 程序 .PNG

5、写扇区程序运行完之后,查看软盘A的属性,会发现属性变化,可用空间为 0KB,说明写扇区成功

5. 软盘A属性改变 此时软盘A是写满了数据的.PNG

6、在CMD.EXE 进行 编译运行 读扇区程序 r2mem.exe

  • 首先,由debug r2mem.exe 进入调试模式;
  • 接着,由 d 0000:0200H 查看内存单元的数据,目前全部都是零;
  • 然后,由 g 命令执行程序;
  • 随后,由 d 0000:0200H 再次查看内存单元的数据,数据出现,读扇区成功。
6. 程序 r2mem 将从软盘A中读取数据到内存0000 0200H 处.PNG
7. G命令执行程序 在查看内存单元 看到确实从软盘A读取进来的数据.PNG

关于软盘

  • B站 [8BIT]老电脑是如何存储的——软盘篇

https://www.bilibili.com/video/av6131359

  • 3.5 英寸 软盘
外文名  3.5-inch floppy disk 

上下两个面: 面号 0、1号
每个面 80个磁道 : 磁道号 0~79号
每个磁道分为18个扇区:扇区号 1~18号
每个扇区512个字节(KB)

容量 
= 2面 * 80磁道 * 18扇区 * 521字节
= 1440 KB
≈ 1.44 MB
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,843评论 6 502
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,538评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,187评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,264评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,289评论 6 390
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,231评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,116评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,945评论 0 275
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,367评论 1 313
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,581评论 2 333
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,754评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,458评论 5 344
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,068评论 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,692评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,842评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,797评论 2 369
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,654评论 2 354

推荐阅读更多精彩内容