微机原理与应用实验报告-3(软件中断调用实验)_第1页
微机原理与应用实验报告-3(软件中断调用实验)_第2页
微机原理与应用实验报告-3(软件中断调用实验)_第3页
微机原理与应用实验报告-3(软件中断调用实验)_第4页
微机原理与应用实验报告-3(软件中断调用实验)_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、精选优质文档-倾情为你奉上精选优质文档-倾情为你奉上专心-专注-专业专心-专注-专业精选优质文档-倾情为你奉上专心-专注-专业装订装订线 开课学院及实验室:电气信息学院 6A-217实验时间 :年月日学 生 姓 名学号成 绩学生所在学院电气信息学院年级/专业/班课 程 名 称微机原理与应用课 程 代 码实验项目名称软件中断调用实验项 目 代 码指 导 教 师项 目 学 分一、实验目的1、熟练掌握DOS 中断功能调用及BIOS 中断调用方法。2、熟练掌握全屏幕文本编辑应用软件(如EDIT.COM、Windows 的记事本、各种汇编集成编辑器)的用法;3、学习调用宏汇编程序(MASM.EXE)来汇

2、编源程序;4、学习调用连接程序(LINK.EXE)来获得可执行的目标程序;5、进一步熟悉MS-DOS 操作系统的常用命令;二、实验原理(一)DOS 功能调用(二)DOS软件中断调用过程1、将功能调用号传送到AH 中;2、把调用参数(入口参数)传送到规定寄存器中;3、发中断命令INT N;4、在返回参数(出口参数)寄存器或存储器区域查询执行结果;(三)实验内容:1、基本实验:编写一个程序实现在CRT 上循环显示0-9 共50 次,即0 1 2 3 4 5 6 7 8 9 0 1 2 3,最好显示一个字符后有一定延时。2、设计实验:编程实现模拟计算机开机密码输入过程,即显示“Password:”,

3、等待用户输入密码(1-6 位),每输入一个字符显示一个*,要求把输入的口令存储在buffer 为起始地址的内存区域。3、设计实验:编写一个程序,把从键盘输入的十个大写字母转换为小写字母,并在屏幕上显示出来。三、实验设备、仪器及材料1、微机系统一套及EL-1 微机实验教学系统一套;2、宏汇编语言汇编连接工具软件、汇编集成编辑器、EDIT.COM、Windows 的记事本;3、DEBUG 调试工具(DEBUG 的使用方法参见实验一);四、实验步骤(按照实际操作过程)1、建立源程序用汇编集成编辑器或编辑程序EDIT.COM、Windows记事本建立汇编语言源程序的磁盘文件。2、对源文件进行汇编汇编时

4、,汇编程序对要不要建立这些文件采用屏幕对答式提问,你必须逐项回答。汇编时发现源程序中有语法错误,则显示有错误的语句序号和错误代码,最后列出错误总数。这时,要仔细分析出错误信息表。再调用EDIT 对源程序进行修改。3、对源程序进行修改在系统提示符下输入命令:F:EDIT A:MONTH.ASM这时可对原文件进行删除、插入等修改编辑操作,修改结束后存盘。然后再调用MASM 对修改后的源程序汇编,如果程序还有错误,又调用EDIT 对它进行修改、再汇编,直到程序汇编通过为止。汇编通过后,在A 盘中生成*.obj,*.lst,*.crf 三个文件。4、目标文件的连接用LINK 连接目标文件,可以采用三种

5、方式:交护式;命令方式;命令文件方式。下面仅介绍交互式的连接过程,其他方式和多个目标文件的连接请参考DOS 使用手册。连接通过,在A 盘上生成MONTH.EXE 的可执行文件。如果读者不希望作人机对话输入,那麽可以用下汇编连接方法:F:MASM MONTH;F:LINK MONTH;5、用户程序的调试运行在DOS 状态下运行程序,再根据设计要求逐项测试程序功能。这是因为经过汇编、连接生成的可执行文件,虽然已经排除了源程序在语法上的错误,但还不能保证程序的功能,如果存在差错或有需要删改的地方,则重复编辑、汇编、运行步骤,直到程序功能完全符合要求为止。用户的可执行程序,也可以在DEBUG 程序管理

6、下进行单步、断点、连续运行、以及进行增加、删改等修改操作。jmp do0 ;跳到do0jmp do0 ;跳到do0do1:dec cx ;cx-1mov dl, ;将 给dlmov ah,02 ;调用显示中断int 21h ;调用中断,显示al中的数字jnz next ;如果cx不为0,那么跳到nextmov ah,4ch ;结束int 21hcode endsend gocode segmentassume cs:codego:mov cx,50 ;循环控制next:mov al,0 ;输入0do0:mov dl,al ;将0给dlmov ah,02 ;调用显示中断int 21h ;调用中断

7、,显示al中的数字cmp al,9 ;将al与9进行比较jae do1 ;如果al=9 ,则跳到do1inc al ;如果al9,al+1jmp do0 ;跳到do0data segmentstrdb 0ah,0dh, Enter password:$ ;定义一个字符串str1db 0ah,0dh, Your password is:$ ;定义一个字符串bufdb 6 dup(?),$ ;定义6个0mov ah,02mov ah,02 ;调用显示输出中断int 21h ;调用显示输出中断inc di ;di+1dec cx ;cx-1jnz next ;cx不到0,调到nextlea dx,s

8、tr1 ;将str1的地址给dxmov ah,09 ;调用显示字符串中断int 21h ;调用显示字符串中断lea dx,buf ;将buf的地址给dxmov ah,09 ;调用显示字符串中断int 21h ;调用显示字符串中断mov ah,4ch ;结束int 21hcode endsend gocode segmentassume cs:code,ds:datago:push ds ;初始化mov ax,0push axmov ax,datamov ds,ax ;初始化lea dx,str ;将str的地址给dx mov ah,09 ;调用显示字符串中断int 21h ;调用显示字符串中断

9、lea di,buf ;将buf的地址给dimov cx,6 ;循环次数为6next:mov ah,07h ;调用键盘输入中断int 21h ;调用键盘输入中断mov di,al ;将键盘输入的值给dsdi处mov dl,* ;把*给dlcmp al,Z ;将输入字与cmp al,Z ;将输入字与Z比较ja do0 ;输入为小写,那么跳到do add al,a-A ;否则为大写,al+32jmp do1 ;跳到do1do0:sub al,a-A ;将al-32do1:mov di,al ;将al送到ds:diinc di ;di+1dec cx ;cx-1jnz next ;cx不为,跳到ne

10、xtlea dx,str1 ;将str1的地址给dxmov ah,09 ;调用显示字符串中断int 21h ;调用显示字符串中断lea dx,buf ;将buf的地址给dxmov ah,09 ;调用显示字符串中断int 21h ;调用显示字符串中断mov ah,4ch ;结束int 21h code endsend gostrdb 0ah,0dh, Enter string:$ ;定义一个字符串str1db 0ah,0dh, Change to:$ ;定义一个字符串bufdb 10 dup(?),$ ;定义10个0data endscode segmentassume cs:code,ds:datago:push ds ;初始化mov ax,0push axmov ax,data

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论