汇编语言-课程设计2.docxVIP

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
汇编语言-课程设计2 汇编语言-课程设计2 PAGE 汇编语言-课程设计2 汇编语言课程实验报告 实验名称 课程设计2 实验环境 硬件平台:Intel Core i5-3210M 操作系统:DOSBox in Windows 软件工具:MASM, VFloopy, Microsoft Virtual PC 2007 实验内容 编写一个可以自动启动计算机,不需要在现有操作系统环境中运行的程序。 该程序功能如下: 列出功能选项,让用户通过键盘进行选择,界面如下: reset pc ;重新启动计算机 start system ;引导现有的操作系统 clock ;进入时钟程序 set clock ;设置时间 用户输入“1”后重新启动计算机(提示:考虑ffff:0单元)。 用户输入“2”后引导现有的操作系统(提示:考虑硬盘C的0道0面1扇区)。 用户输入“3”后,执行动态显示当前日期、时间的程序。 显示格式如下:年/月/日 时:分:秒 进入此项功能后,一直动态显示当前的时间,在屏幕上将出现时间按秒变化的效果(提示:循环读取CMOS)。 实验步骤 系统启动初始化完成后最终调用19h,该中断读取软盘的第一扇区或硬盘的第一扇区到0:7c00开始的512个字节的内存空间中,并将cs:ip指向0:7c00执行。 第一个段为安装程序,负责将第二个段写入第一扇区,第三个段写入2-17扇区。 第二个段是主引导程序,存在于软盘第一扇区,由BIOS的19h中断读取到0:7c00开始的内存单元中,并执行0:7c00的第一行代码。这一段的任务是将软盘2-17扇区的数据读入内存,并执行。(这里读入到了2000:0开始的内存中)。 第三个段是系统程序,存放所有引导所需的程序和子程序。 程序的汇编代码如下: assume cs:setupsg ;安装程序 ;将引导所需的程序写入到软盘 setupsg segment assume cs:setupsg setup: ;主引导程序安装到第一扇区 mov ax,initsg mov es,ax mov bx,0 mov al,1 mov ch,0 mov cl,1 mov dl,0 mov dh,0 mov ah,3 int 13h ;子程序安装到从第2扇区开始的扇区 mov ax,syssg mov es,ax mov al,15 mov cl,2 mov ah,3 int 13h ;安装结束,返回 mov ax,4c00h int 21h setupsg ends ;主引导程序 ;包含所有子程序的直接定址表,扇区加载程序,菜单 initsg segment assume cs:initsg init: call loadsys mov ax,2000h push ax mov ax,0 push ax retf loadsys: mov ax,2000h ;软盘数据读取到2000:0 mov es,ax mov bx,0 mov al,15 ;读取的扇区数 mov ch,0 ;0磁道 mov cl,2 ;2扇区 mov dl,0 ;0号驱动器 mov dh,0 ;0面 mov ah,2 int 13h ret initsg ends ;子程序 ;包含所有菜单需要调用的子过程 syssg segment assume cs:syssg ;菜单显示功能 menu: jmp near ptr menushow menudata dw offset md0,offset md1,offset md2,offset md3,offset md4,offset md5 md0 db Welcome ,0 md1 db 1) reset pc,0 md2 db 2) start system,0 md3 db 3) clock,0 md4 db 4) set clock,0 md5 db Copyright @ 2010 Haoran, rights reserved.,0 systable dw sys_restart,sys_disksys,sys_showclock,sys_setclock menushow: mov dh,5 mov dl,30 mov bp,0 mov ax,cs mov ds,ax mov cx,5 menushow_s: push cx mov si,menudata[bp] mov cl,02h call sys_showstr add bp,2 add dh,2

文档评论(0)

天风浪人 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档