《总汇编上机题两个数相乘1.doc》由会员分享,可在线阅读,更多相关《总汇编上机题两个数相乘1.doc(10页珍藏版)》请在三一办公上搜索。
1、word实 验 报 告学院:计算机科学学院专业:计算机科学与技术2013年10月16日姓 名学 号班 级指导教师课程名称汇编语言程序设计成绩实验名称两位非压缩型的BCD码相乘1 实验目的将A中的两位非压缩的BCD码与B中的两位BCD码相乘,其结果放在变量C中。2 实验容1. 理解非压缩BCD码的概念,编程实现非压缩BCD码乘法。 2. 编程实现C=A*B,其中A、B单元分别存放着两位用非压缩BCD码表示的十进制数。3 实验环境4 实验方法和步骤DATE SEGMENT TISHIA DB Please input a number to A:$ TISHIB DB Please input a
2、 number to B:$ TISHIC DB resoult C=A*B=$ TISHINONUM DB The element you input is not a numble!,0DH,0AH,PLEASE INPUT A NUMBER AGAIN!$ A DW ? B DW ? C DW ? DATE ENDS CODE SEGMENT MAIN PROC FAR ASSUME CS:CODE,DS:DATE START: PUSH DS SUB AX,AX PUSH AX MOV AX,DATE MOV DS,AX LEA DX,TISHIA MOV AH,9H INT 21H
3、CALL INPUT ;输入A MOV A,BX LEA DX,TISHIB MOV AH,9H INT 21H CALL INPUT ; 输入B MOV B,BX LEA DX,TISHIC MOV AH,9H INT 21H MOV AX,A AAD MOV BX,AX MOV AX,B AAD MUL BX MOV WORD PTR C,AX MOV WORD PTR C+2,DX MOV DI,0AH MOV CX,0 HUATEN: ;转化为十进制 DIV DI PUSH DX INC CX CMP AX,0 JE NEXT CWD JMP HUATEN NEXT: ;输出结果 PO
4、P DX ADD DL,30H MOV AH,2H ;输出一个字符 INT 21H LOOP NEXT RETMAIN ENDP INPUT PROC MOV BX,0INPUTA: MOV AH,1H ;调用1号功能输入一个字符 INT 21H CMP AL,30H ;用于判断是不是小于0 ERROR CMP AL,39H ;判断是不是大于9 JA ERROR SUB AL,30H ;用于转换为十进制 MOV BL,AL MOV AH,1H INT 21H CMP AL,0DH JE EXIT CMP AL,30H ERROR CMP AL,39H JA ERROR SUB AL,30H M
5、OV CL,8 ;用于移位操作 ROL BX,CL MOV BL,AL JMP EXIT ERROR: CALL CRLF LEA DX,TISHINONUM MOV AH,9H ;调用9号功能输出一个字符串在跳回 INT 21H CALL CRLF JMP INPUTA EXIT: CALL CRLF RET INPUT ENDP CRLF PROC NEAR MOV DL,0AH ;换行 MOV AH,2H INT 21H MOV DL,0DH ;回车 MOV AH,2H INT 21H RET CRLF ENDP CODE ENDS END START5程序与测试结果6实验分析与体会通过本次实验,学到了很多东西,最主要的是熟悉和了解了非压缩BCD编码的乘法运算法如此,更好的了解了计算机的数据存储方式,学程序过程中遇到了不少问题,通过与同学探讨,学习,找资料,还是把程序调试出来了,从中不仅学到了本专业的知识更重要的是知道怎样去获取知识。实验日期 :2013年10月16日教师评语签名: 年 月 日10 / 10