预览加载中,请您耐心等待几秒...
1/3
2/3
3/3

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

实验二显示程序实验 1.1实验目的 (1)掌握在PC机上以十六进制形式显示数据的方法。 (2)掌握部分DOS功能调用使用方法。 (3)熟悉集成软件调试环境。 1.2实验设备及软件环境 通用微型计算机一台。 软件环境要求: 操作系统:DOS、Windowsxp 语言环境:Debug调试程序、MASM宏汇编。 1.3实验内容 (1)一般来说,有很多程序需要显示输出提示运行的状况和结果,有的还需要将数据区中的内容显示在屏幕上,本实验要求将指定数据区的字符以十六进制数形式显示在屏幕上,并通过DOS功能调用完成一些提示信息的显示。实验中可使用DOS功能用(INT21H)。本实验显示第一行“Showaashex:”,第二行“ⅹⅹ”,ⅹⅹ是字符“a”的十进制数(61)。 1.4实验步骤 (1)运行汇编语言编辑软件,选择编辑Edit菜单,根据实验内容的描述编写实验程序或选择Open菜单打开程序。 (2)使用“ASM编绎”菜单中“编译+连接+运行”选项,对实验程序进行汇编、连接。 汇编、连接无误的话,就直接运行程序。观察运行结果。 (3)或使用动态调试,进行调试环境,观察调试过程中,指令执行情况,包括各寄存器及数据区内容的变化等。 (4)更改数据区中的数据,考察程序的正确性。 1.5实验程序流程图 绘制实验程序流程图。 1.6实验源程序设计 SSEGSEGMENTPARASTACK'stack' dw100hdup(0);初始化堆栈大小为100 SSEGENDS DSEGSEGMENT mesdb'showaashex:',0ah,0dh,'$' sddb'a' ;数据段:在此处添加程序所需的数据 DSEGENDS ;ESEGSEGMENT ;附加段:在此处添加程序所需的数据 ;ESEGENDS CSEGSEGMENT assumecs:CSEG,ds:DSEG,ss:SSEG MAINPROCFAR ;主程序入口 movax,dseg movds,ax ;movax,eseg ;moves,ax movdx,offsetmes movah,09h int21h movsi,offsetsd moval,ds:[si] andal,0f0h shral,4 cmpal,0ah jbc2 addal,07h c2:addal,30h movdl,al movah,02h int21h moval,ds:[si] andal,0fh cmpal,0ah jbc3 addal,07h c3:addal,30h movdl,al movah,02h int21h starto:movah,06h movdl,0ffh int21h jestarto ;此处添加主程序代码 ;按任意键退出 movah,1 int21h movax,4c00h;程序结束,返回到操作系统系统 int21h MAINENDP CSEGENDS ENDMAIN 1.7实验思考题 在CRT上连续显示0-9数字100遍后返回DOS。为了使输出的字符之间有间隔,在每一循环中输出一个空格和一个数字,并插入一段延时程序。为了显示十进制数字,在增量指令后用DAA十进制调制指令。当DL中放入0DH即回车符进行02号DOS功能调用时,执行回车命令,显示屏上光标回原处。程序如下: 1.8实验总结 总结实验过程遇到的问题及采取的解决方法。上交实验报告。