微机软件部分实验Word文件下载.docx

上传人:b****5 文档编号:16042744 上传时间:2022-11-17 格式:DOCX 页数:16 大小:1,012.25KB
下载 相关 举报
微机软件部分实验Word文件下载.docx_第1页
第1页 / 共16页
微机软件部分实验Word文件下载.docx_第2页
第2页 / 共16页
微机软件部分实验Word文件下载.docx_第3页
第3页 / 共16页
微机软件部分实验Word文件下载.docx_第4页
第4页 / 共16页
微机软件部分实验Word文件下载.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

微机软件部分实验Word文件下载.docx

《微机软件部分实验Word文件下载.docx》由会员分享,可在线阅读,更多相关《微机软件部分实验Word文件下载.docx(16页珍藏版)》请在冰豆网上搜索。

微机软件部分实验Word文件下载.docx

1、开始运行——CMD——调用CMD窗口——输入Debug命令进入Debug模式。

2、输入?

查看帮助文件,复习Debug有哪些子命令。

3、用MOV命令和R命令两种方式分别给AX,BX,CX,DX寄存器赋值。

4、编写四个小程序,用“T”逐步和“G”一次性分别实现两个数的加、减、乘、除,观察每一步寄存器的变化,特别是特殊寄存器的变化。

5、用“U”命令反编译第3步中的程序,观察机器码。

6、将“1”、“2”、“3”、“4”分别赋值给AX、BX、CX、DX,然后压入堆栈再弹出,使得DX=2,CX=1,BX=2,AX=3。

7、用Q退出Debug命令。

五、实验要求

1、完成实验内容,并熟练掌握Debug和基本汇编指令的使用

2、记录实验结果并答复思考题〔截图打印在实验报告上〕

【备注:

实验报告请打印,主要内容为程序和运行结果截图即可】

六、思考题〔答复在实验报告上〕

1、直接在开始运行中运行Debug命令和先用CMD命令调用命令窗口,再在命令窗口中运行Debug命令,二者有何区别?

答:

前者基于windows操作系统,在输入Q退出时直接退回到windows,后者是基于DOS系统,Q退出时退回到模拟DOS环境。

2、两个数加、减、乘、除运算,请说出在哪些情况下,溢出标志位会置1?

答:

假设运算结果超过当前运算位数所能表示的范围,则溢出标志位会置1

实验二Debug与基本汇编语言的使用〔下〕

2、输入笑脸程序,并运行产生正确的结果〔提示:

笑脸程序调用DOS显示中断实现,DL的值为2〕

3、设置文件名smile,长度为6,将第二步中的笑脸写入C盘根目录。

4、用DOS命令切换到C盘根目录,并运行smile,com,观察结果。

5、在Debug中编写一段小程序,实现输入两个字符,然后反顺回显,即输入AB,显示BA。

〔提示:

输入、显示均调用DOS中断实现,反序可以用堆栈实现〕

6、在Debug中编写一段小程序,实现输入一个字符,然后换行回显。

1、写出你所掌握的DOS中断的具体程序,并说明在哪些情况下需要调用?

(1)键盘输入并回显:

MOVAH,01H

INT21

〔2〕键盘输入字串到缓冲区:

MOVAH,0AH

七、实验总结

通过这两个实验,复习了在Debug的基本操作,复习了汇编语言的基本指令。

学会了在Debug中编写简单程序并运行。

但Debug具有局限性:

不可以在高于XP系统中运行,且不适合复杂程序的编写。

 

实验三MSAM与汇编程序设计〔上〕

熟练掌握编译工具MASM的使用,重点掌握查错的方法,熟悉汇编程序设计

MASM编译器的使用〔编译、链接、查错〕,汇编程序设计,DOS中断的使用

1、编写程序,实现如下功能:

将二进制数字“”转为十六进制并显示。

2、编写程序,实现如下功能:

输入一段字符,回车显示这段字符;

3、将2、3步中的程序编译成为.OBJ文件,再链接成为.EXE文件并成功运行。

1、完成实验内容,并熟练掌握MASM工具和一般程序设计技巧

1、如果汇编程序在编译成为.OBJ文件的时候出错,如何根据出错信息去修改源程序?

如上图,当汇编程序在编译成为OBJ文件的时候出错时,倒数第二行会显示有几个错误,并在其上方显示具体在第几行出错,从而可以提示去修改源程序。

2、对1、2两个程序做上完整的注释,并写在实验报告上面。

3、程序2的例程为何LINK的时候会出现提示错误信息,如何修改源程序就能防止?

程序中用到堆栈段,但是在开头却没有对堆栈进行定义,所以会提示出错。

通过实验学习了将二进制数转为十六进制的方法:

四位一转化,变为ASCII码再显示,移四位,重复。

并复习了中断显示的内容,跳转指令和循环指令。

还复习了堆栈段的定义,复习了堆栈等内容。

实验四MSAM与汇编程序设计〔下〕

MASM编译器的使用〔编译、链接、查错〕,汇编程序设计,DOS中断的使用。

子程序的调用、参数传递

1、根据老师所给的“从键盘输入十进制转二进制程序显示程序”〔在服务器拷贝或者下载〕,编写从键盘输入两个十进制数,并显示两数之和的程序,要求程序用子程序或者宏实现。

2、将1中的程序修改,实验显示两数之差的绝对值功能。

3、将1中的程序修改,实验显示两数之乘的功能。

4、将1中的程序修改,实验显示两数之商的功能。

5、〔选作〕用分支和循环结构,设计一个程序,实现输入设定个数的数字,排序后显示输出。

〔如果输入20个数字,从小到大输出〕

1、CALL调用子程序的时候,需要注意的问题是什么?

应保护程序中用到的寄存器的数据,在CALL命令之前应将它们压入堆栈,并在命令之后弹出;

还应CALL指令之前还应当将要向子程序传递的参数存到相应的寄存器中;

另外还要考虑所调用的子程序是是段间远调用还是段内近调用。

通过实验,学习了加、减、乘、除程序的编写。

加法和乘法较简单。

减法应注意在减数大于被减数时,需要输出绝对值,所以加个AX和BX的比较指令,假设AX小,需在后边对结果进行求补而得到其绝对值。

除法应注意字除和字节除的问题。

前边的程序用到DX,所以DX中存有数据,当进行除法时电脑会自动认为是字节除,所以在除之前需对DX清零,电脑才会进行字除。

另外,要显示余数话需将余数显示,已知除完后余数存在DX中,只要将DX赋给AX〔B_DP子程序调用的输入〕,再调用显示就可以显示余数。

当被除数为零时提示错误,需要加跳转指令,比较被除数和0的大小,当和0相等时跳转,用数据段的字符串显示错误提示即可。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 其它课程

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1