资源描述:
《简单程序设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、辽宁工程技术大学上机实验报告成绩课程名称计算机硬件基础实验题目简单程序设计院系软件学院专业软件工程班级10-03班姓名章睿学号1020010331实验日期2012-10-25实验目的1.熟练掌握宏汇编程序设计的思想。2.掌握顺序程序设计的思想及方法。3.熟练掌握分支程序的结构。4.掌握分支程序设计的思想、方法及上机调试过程。实验准备1.8086/8088宏汇编指令及伪指令2.汇编语言程序设计的步骤3.顺序程序设计的思想和方法4.分支程序设计的思想和方法实验进度本次共有3个练习,完成3个。实验内容【练习1】编写一个
2、程序,计算表达式(XY-Z)/X的值,其中:X、Y、Z均为16位带符号数,存放在数据段中,要求将表达式的计算结果存放在数据段中的RESULT起始的单元中。(1)实现方法数据段中定义4个十六位存储单元分别为X、Y、Z、RESULT,并将运算结果存在RESULT中。实验内容(续)(1)程序代码DATASEGMENTXDW?YDW?ZDW?RESULTDW?DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVAX,XIMULYMOVCX,
3、AXMOVBX,DXMOVAX,ZCWDSUBCX,AXSBBBX,DXMOVAX,CXMOVDX,BXIDIVXMOVRESULT,AXMOVAH,4CHINT21HCODEENDSENDSTART【练习2】设数据区中NUM1、NUM2字节单元中存放的是两个无符号数,试编写程序完成下述功能之一的操作:如果两个数均为偶数,则两个数分别加1后送入DA1、DA2字节单元中;如果一个为偶数,一个为奇数,则奇数送入DA1,偶数送入DA2字节单元中;如果两个数均为奇数,则两个数分别送入DA1、DA2字节单元中;实验内容(续
4、)(1)实现方法数据段中定义四个8位存储单元,分别为NUM1、MUN2、DA1、DA2,汇编时运用-E命令修改段内数据NUM1、NUM2的值,再运行,并将结果根据题目要求返回DA1、DA2中。(2)程序代码DATASEGMENTNUM1DB?NUM2DB?DA1DB?DA2DB?DATAENDSCSEGSEGMENTASSUMECS:CSEG,DS:DATASTART:MOVAX,SEGDATAMOVDS,AXMOVAL,NUM1MOVDL,NUM1MOVBL,NUM2ANDAL,1JZOUJNZJIOU:MOV
5、AL,NUM2ANDAL,1JNZOU1INCDLMOVDA1,DLINCBLMOVDA2,BLJMPEXITJI:MOVDA1,DLMOVDA2,BLJMPEXITOU1:MOVDA2,DLMOVDA1,BLJMPEXITEXIT:MOVAH,4CHINT21H实验内容(续)CSEGENDSENDSTART【练习3】在内存BUFFER单元中存有10个8位数,试编程找出其中的最大值及最小值,并放在指定的存储单元MAX和MIN中。(1)实现方法在数据段中定义一个字节型数据缓冲区BUFFER,长度为10,并写入数据,
6、并定义将其起始地址指向2000H,在数据段中定义两个字节存储单元分别为MAX,MIN,并将其起始地址定义指向2010H。在代码段,将BUFFER的偏移地址传递给BX,然后进行比较,最后将最大值存入MAX单元中,将最小值存入MIN单元中(2)程序代码DATASEGMENTORG2000HBUFFERDB01H,02H,03H,04H,05H,06H,07H,08H,09H,10HORG2010HMINDB?MAXDB?DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOV
7、AX,DATAMOVDS,AXLEABX,BUFFERMOVAL,[BX]MOVDL,[BX]MOVCX,10MA:CMPAL,[BX]JNLMIMOVAL,[BX]MI:CMPDL,[BX]JNGBBMOVDL,[BX]BB:INCBXLOOPMAMOVMAX,ALMOVMIN,DLMOVAH,4CHINT21HCODEENDSENDSTART实验分析【练习1】(1)该源程序取名suanfa.ASM,通过汇编、连接后生成可执行文件suanfa.EXE,运行该文件显示的内容如下:(2)调试方法和运行结果利用U命令
8、观察上面数据可得起始地址为17ED,接下来我用-E命令来对内存中的数据进行修改赋值,并运行,查看结果对X、Y、Z分别赋值0002H,0003H,0004H,运算的出来的结果为0001H实验分析(续)日【练习2】(1)该源程序取名jos.ASM,通过汇编、连接后生成可执行文件jos.EXE,运行该文件显示的内容如下:(2)调试方法和运行结果利用U命令观察上面数据可得起始地址