福建农林大学金山学院实验报告
系:姓名:
语言
专业:
计算机科学与技术
年级:
08
汇编
学号:
实验课程:
实验室号:_______指导教师签字:
实验设备号:成绩:
实验时间:
实验三
1.实验目的和要求.
分支循环程序设计
1、学习调试程序,查找逻辑错误;2、学习分支语句的编程和调试;3、学习循环语句的编程和调试。2.实验环境.实验的硬件环境是:IBMPC机及其兼容机实验的软件环境是:操作系统:DOS20以上;调试程序:DEBUGCOM;文本编程程序:EDITEXE、WPSEXE;宏汇编程序:MASMEXE(或ASMEXE);连接装配程序:LINKEXE;交叉引用程序:CREFEXE(可有可无)。3.实验内容及实验数据记录.1有10个数,统计正数的个数,存放在变量M中中。经过汇编
后,形成EXE文件。在DEBUG中,先用G=0命令执行程序,用D命令查看M单元的内容,会发现结果不正确。用单步执行命令T=0,单步执行程序,查找程序中的逻辑错误,注意每一次循环中AL寄存器中值的变化是否正确。(AL寄存器中存放正数的个数)
DSEGSEGMENTMSGMDSEGCSEGDB42605678356DBENDSSEGMENT
fASSUMESTARTMOVMOVMOVMOVLEAL1MOVCMPJBEINCNEXTINCLOOPMOVMOVMOVINTCSEGENDSEND
CSCSEGDSDSEG
AXDSEGDSAXCX10AL0SIMSGBLSIBL0NEXTALSIL1MALAL0AH4CH21H
START
2
数据段中是一组无符号数,将最小数存放在M单元中。按上题方
法查找一处逻辑错误。
DSEGMSGMDSEGCSEGSEGMENTDB131572524DBENDSSEGMENTASSUMESTARTMOVMOVMOVMOVMOVL1CMPCSCSEGDSDSEG
AXDSEGDSAXCX4ALMSGSIOFFSETMSG1ALSI
fJBMOVNEXTLOOPMOVMOVMOVINTCSEGEND
NEXTALSIL1MALAL0AH4CH21HENDSSTART
3
编程:在首地址为BUF开始的内存单元中存有10个字节数,求
其中0的个数,并将结果存于RESULT中。
Y4编程:
i18
∑AB
i
i
,Ai,Bi为字节型无符号数,分别存于
NUM1和NUM2开始的连续存储单元中,结果存于REST单元中。4.算法描述及实验步骤1)编辑代码,编译连接均可通过,亦能正常运行。DSEGSEGMENTMSGDBMDSEGCSEG42605678356DBENDSSEGMENTASSUMECSCSEGDSDSEGSTARTMOVAXDSEGMOVDSAXMOVCX10MOVAL0LEAL1SIMSG
MOVBLSICMPBL0
fJBEINCNEXTINCSILOOP
NEXTAL
L1
MOVMALMOVAL0MOVAH4CHINTCSEGENDSENDSTART查看list文件得知M单元偏移量为000A,如图:21H
g命令运行后,d命令查看d1415000A得知M中值为09即是正数有9个,显然是不正确的如图
2)同一编辑如下代码进行编译连接运行均正常DSEGMSGDBMDSEGCSEGSEGMENT131572524r