资源预览内容
第1页 / 共10页
第2页 / 共10页
第3页 / 共10页
第4页 / 共10页
第5页 / 共10页
第6页 / 共10页
第7页 / 共10页
第8页 / 共10页
第9页 / 共10页
第10页 / 共10页
亲,该文档总共10页全部预览完了,如果喜欢就下载吧!
资源描述
上机第二次作业姓名:吴志强 学号:13170110001 专业:材料科学与工程一、 实验目的1熟练掌握汇编语言程序设计的方法及上机步骤。2掌握算术运算中,十进制数调整指令的应用。3掌握子程序的设计方法。4掌握DOS功能的调用方法。二、实验仪器微型计算机 1台三、实验内容1编写求十进制数12678532与21736543之和的程序,并将和以十进制数的形式送屏幕显示。编程思路: 1 两个加数均以压缩(组合)十进制数形式存放在ADD1和ADD2为首址的存贮器单元。 2 和以压缩十进制数的形式存入SUM以下单元。 3 将和送到屏幕显示部分功能的实现采用子程序的形式。实验步骤如图一所示:图一:实验步骤 2有一个首地址为A的N字数组,请编程序使该数组中的数按从大到小的次序排列。编程思路:1 参加排序的数据及个数由自由定义。2 要将排序前的数组和排序后的数组在屏幕上显示出来。实验步骤如图二所示:图二:实验步骤四、实验源程序1.实验程序:汇编语言源程序STACK SEGMENT STACK DB 10H DUP(00)STACK ENDSDATA SEGMENTADD1 DB 12H, 67H, 85H, 32H ;被加数ADD2 DB 21H, 73H, 65H, 43H ;加数 SUM DB 4H DUP(?) ;和 DATA ENDSCODE SEGMENT ASSUME CS: CODE, DS: DATA, ES: DATA, SS: STACKSTART: MOV AX, DATA MOV DS, AX MOV AX, DATA MOV ES, AX MOV AX, STACK MOV SS, AX LEA SI, ADD13 LEA BX, ADD23 LEA DI, SUM 3 MOV CX, 4 CLCL1: MOV AL, SI ADC AL, BX DAA MOV DI, AL DEC SI DEC BX DEC DI LOOP L1 CALL DISPAL ;- EXITPROC: MOV AH, 4CH ;结 束 程 序 MOV AH,1 INT 21H ;-DISPAL PROC NEAR PUSH AX PUSH BX PUSH CX PUSH DX PUSH DI LEA DI, SUM MOV CX, 4DISPAL2: MOV AL, DI SHR AL, 1 SHR AL, 1 SHR AL, 1 SHR AL, 1 MOV AH, 2 MOV DL, AL ADD DL, 30H INT 21H MOV AL, DI AND AL, 0FH MOV AH, 2 MOV DL, AL ADD DL, 30H INT 21H INC DI LOOP DISPAL2 POP DI POP DX POP CX POP BX POP AX RETDISPAL ENDP ;返回DOSCODE ENDS END START流程如图三所示: 图三:流程图运行结果:2.实验程序:汇编语言源程序 N=20 ;取N=20 STACK SEGMENT STACKSTACK DW 100H DUP(00)TOP LABEL WORDSTACK ENDSDATA SEGMENTDATABUF DW N DB N DUP(?)ORIGINAL DB 13, 10, 13, 10, THE ORIGINAL DATA :$ORDERED DB 13, 10, 13, 10 , THE ORDERED DATA :$ DATA ENDSCODE SEGMENTASSUME CS: CODE, DS: DATA, ES: DATA, SS: STACKSTART: MOV AX, DATA MOV DS, AX MOV ES, AX MOV AX, STACK MOV SS, AXLEA SP, TOP ;随 机 数 据 MOV CX, DATABUF LEA SI, DATABUF+2 MOV BL, 18 MOV AL, 13L: MOV SI, AL INC SI ADD AL, BL LOOP L LEA DX, ORIGINAL MOV AH, 9 INT 21H CALL DISPAL ;下面给数据排序程序 MOV CX, DATABUF DEC CX LEA SI, DATABUF+2 ADD SI, CX ; SI指向数据区末地址L1: PUSH CX PUSH SIL2: MOV AL, SI CMP AL, SI-1 JBE NOXCHG XCHG AL, SI-1 MOV SI, ALNOXCHG: DEC SI LOOP L2 POP SI POP CX LOOP L1 LEA DX, ORDERED MOV AH , 9 INT 21H CALL DISPALEXITPROC: MOV AH, 4CH ;结束程序 MOV AH, 1 INT 21HDISPAL PROC NEAR PUSH AX PUSH BX PUSH CX PUSH DX PUSH DI LEA DI, DATABUF+2 MOV CX, 20DISPAL2: MOV AL, DI SHR AL, 1 SHR AL, 1 SHR AL, 1 SHR AL, 1 CALL CHANG ;- MOV AH, 2 MOV DL, AL INT 21H MOV AL, DI AND AL, 0FH CALL CHANG ;- MOV AH, 2 MOV DL, AL INT 21H MOV AH, 2 MOV DL, 20H INT 21H ;为了让结果看得清楚,让显示的数用空格空开 INC DI LOOP DISPAL2 POP DI POP DX POP CX POP BX POP AX RET DISPAL ENDPCHANG PROC NEAR CMP AL, 10 JNGE CHANG1 ADD AL, 7CHANG1 : ADD AL, 30H RETCHANG ENDPCODE ENDSEND START流程如图四所示:图三:流程图运行结果:五、问题讨论1在以十进制数形式参加运算的程序设计中,应注意那些问题。答:在以十进制数形式参加运算的程序设计中应该注意进位和溢出问题。2总结循环程序设计的步骤及方法。答:正确初始化循环控制计数和初始条件; 检测循环条件; 必须能保证能达到循环结束条件。
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号