实 验 报 告
── 学年 第 学期
实 验 课 程 实 验 项 目 实 验 性 质 实 验 地 点 实 验 日 期 环 境 参 数 汇编语言 循环程序是设计 专业选修课 第 周 星期 第 节 Dosbox-0.74 Masm 5.0 学 生 姓 名 学 院 班 级 学 号 同 组 人 数 成 绩 1 123 计算机科学技术 第 组 4 一、实验目的及要求 二、实验原理、实验容 三、实验仪器设备及材料 四、操作方法与实验步骤 五、实验数据记录及处理 六、实验结果分析及讨论 一、实验目的: 1.灵活运用各类许循环指令,掌握循环程序的设计方法 2. 学会针对不同的问题,选用不同的组织循环的方法。 3.伪指令 EQU 及操作符 '$'的使用。 4. COM文件的要求和生成过程。 二、实验任务 1.编写程序:将一个包含有20个有符号数据的数组arrayM分成两个数组,正数数组arrayP 和负数数组arrayN,并分别把两个数组中的数据个数显示出来 源代码: ;十一个正数 九个负数 DATA SEGMENT arrayM DB 1,-1,2,-2,3,-3,4,-4,5,-5,6,-6,7,-7,8,-8,9,-9,0,10 arrayP DB 20 DUP(?) arrayN DB 20 DUP(?) countP DB 0 DATA ENDS CODE SEGMENT assume CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX LEA BX,arrayM MOV SI,0 MOV DI,0 ;数组arrayP偏移地址 ;数组arrayN偏移地址 ;循环20次 MOV CX,20 LOP: MOV AL,[BX] CMP AL,0 JL toN ;与0比较 ;小于0 ;大于等于0 MOV arrayP[SI],AL INC SI INC countP JMP AGAIN ;转去处理循环 toN: MOV arrayN[DI],AL ;负数存入arrayN数组 INC DI AGAIN: INC BX LOOP LOP DISP_A: ;相当于for语句的第三部分 ;显示功能,因为最多只有两位数,使用一次除法即可 AND AH,0 ;商为十位,余数为个位 MOV AL,countP CALL DISP_B MOV AH,02H MOV DL,20H INT 21H AND AH,0 MOV AL,20D SUB AL,countP CALL DISP_B MOV AX,4C00H INT 21H DISP_B: MOV CL,10D DIV CL MOV DH,AH CMP AL,0 JZ DISP_C ;商为0时,跳过不执行 MOV DL,AL ADD DL,30H MOV AH,02H INT 21H DISP_C: MOV DL,DH ADD DL,30H MOV AH,02H INT 21H RET CODE ENDS END START 流程图: 仪器设备损坏、非正常损耗材料(试剂)及处理情况: 无 教师对报告的最终评价及处理意见: 教 师 签 字: 年 月 日
因篇幅问题不能全部显示,请点此查看更多更全内容