汇编语言实验心得
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一.实验内容
1.DEBUG的启动及其基本命令的使用
2.内存操作数与寻址方式
1)利用DEBUG程序中的“E”命令,将两个多字节数“12345678H”和“FEDCBA98H”
分别送入起始地址为DS:0200H和DS:0204H两个单元中。
2)分别用直接寻址方式和寄存器间接寻址方式编写程序段,实现将DS:0200H
单元和DS:0204H单元中的数据相加,并将运算结果存放在DS:0208H单元中。
3.顺序程序设计
X、Y、Z、V均为字变量,在X、Y、Z、V字单元中存放是16位带符号数。
试编写汇编语言程序完成以下功能:
①计算表达式值(V–(X*Y+Z-720))/X;
②将上述表达式运算结果整数放在SUM1单元,余数放在SUM2单元。
4.分支程序设计
1)设X,Y为字变量,假定不溢出,计算X=|X-Y|。
2)将NUM单元中的一位十六进制数(0~9,A~F),转换为对应的ASCII码
值存入ASC单元。
3)已知字节变量X,编程求下列表达式
即: 1 当x>0
y= 0 当x=0
-1 当x<0
5.循环程序设计
1)定义10个字节型带符号数,求其和。
2)在内存单元DATA中定义一个16位数,统计其16位中1的个数,存入内
存的字单元COUNT。
3)定义10个字型无符号数,编写程序求其最小值。
6.子程序设计
1)设计一个子程序,计算1+2+…+N,其中N为给定的正整数,且N小于100。
2)定义10个字型带符号数,编写子程序求其最大值和统计正数的个数。
3)从键盘接收4位十进制数,将其转换为十六进制数并显示。
二.实验心得
上学期学习计算机组成原理的时候就对汇编有所了解,但通过这学期的学习,使我更加深入了解了其知识体系和计算机组成及内部程序执行的原理。对于各命令的熟练掌握后,自己亲自动手实验更是体会到了各命令的用途及执行的方法。通过各个基本命令可以轻松更改计算机内部寄存器的值和读写内存,磁盘,I/O端口的值,通过更改观察其对计算机的影响变化。
对于汇编语言的寻址方式,更是多种多样,通过对各寻址方式的比较,可以感受到各寻址方式的不足与好处,还有是对各寻址方式的注意事项,有的寻址方式需专用的寄存器,有的寄存器是禁止使用的,然而有的就开放的多,对寄存器没有特殊要求,然而在编程过程中使用较为合适的寻址方式是提高程序运行效率的保障,在对寄存器中的值做运算时要正确书写各值,在X86中只支持十六进制数,在运算结束后值得保存也是很重要的,不能随意保存。写数据传送指令时,目的操作数和源操作数的类型一定要匹配,C S不能作为目的操作数。
在学习完汇编语言程序格式和结构后就可以完整的编写汇编语言程序了,在编程中各种结构的选择是对程序效率的保障,在顺序结构中就不需要各种选择分支结构,顺序结构适合一些较简单按顺序执行的程序,然而复杂程序的编写就需要用到选择结构和分支结构了。另外,我们还应该掌握DOS系统功能调用,宏汇编等知识。
现在课程已结束一段时间,虽然不是完全掌握,但是还是了解了一些基本操作,可以解决一些基本问题,想要学好汇编,还需花更多时间去学习。在今后的学习过程中尽可能完善自己。