POP AX RET ADDP ENDP ;减法子程序 SUBP PROC
PUSH AX MOV AX,X1 SUB AX,X2 MOV Y,AX POP AX RET SUBP ENDP ;乘法子程序 MULP PROC
PUSH AX PUSH DX MOV AX,X1 MOV DX,X2 MUL DX MOV Y,AX POP DX POP AX RET MULP ENDP ;除法子程序 DIVP PROC
PUSH AX PUSH BX PUSH DX MOV DX,0 MOV AX,X1 MOV BX,X2 DIV BX MOV Y,AX POP DX POP BX POP AX RET DIVP ENDP
;DISP PROC
显示子程序 PUSH BX PUSH AX MOV BH,0
LEA SI,DISCODE
CALL BITP ; CMP CC,4 JZ QIAN
X中的数值按位显示出来 测试X位数 ,将 CMP CC,3 JZ BAI CMP CC,2 JZ SHI CMP CC,1 JMP G JMP NONE
QIAN: MOV AH,11100000B ;从第始显示
4位开
MOV AL,AH OUT 44H,AL MOV BL,X[0] MOV AL,[SI+BX] OUT 42H,AL CALL DELY MOV AL,0 OUT 42H,AL
BAI: MOV AH,11010000B ;始显示
MOV AL,AH OUT 44H,AL MOV BL,X[1] MOV AL,[SI+BX] OUT 42H,AL CALL DELY MOV AL,0 OUT 42H,AL
SHI: MOV AH,10110000B ;始显示 MOV AL,AH
OUT 44H,AL MOV BL,X[2] MOV AL,[SI+BX] OUT 42H,AL CALL DELY MOV AL,0 OUT 42H,AL
G: MOV AH,01110000B ;始显示
MOV AL,AH OUT 44H,AL MOV BL,X[3] MOV AL,[SI+BX] OUT 42H,AL CALL DELY
从第3位开
从第2位开
从第1位开
JMP EXIT4
NONE: MOV AL,0 ;X中没有数据,不显示 OUT 42H,AL EXIT4: POP AX POP BX RET DISP ENDP
;分析数据位数子程序 BITP PROC
CMP X[0],0 ;为4位数
JNZ FOURBIT
CMP X[1],0 ;为3位数
JNZ THREEBIT
CMP X[2],0 ;为2位数
JNZ TOWBIT
CMP X[3],0 ;为1位数
JNZ ONEBIT
JMP ZER0BIT ; FOURBIT: MOV CC,4 JMP EXIT5 THREEBIT: MOV CC,3 JMP EXIT5 TOWBIT: MOV CC,2 JMP EXIT5 ONEBIT: MOV CC,1 JMP EXIT5 ZER0BIT: MOV CC,0 EXIT5: RET BITP ENDP
;延时子程序 DELY PROC
PUSH CX MOV CX,100 LOOP $ POP CX RET DELY ENDP
CODE ENDS
END START
如果X[0]不为0,则数据如果X[1]不为0,则数据如果X[2]不为0,则数据如果X[3]不为0,则数据否则,没有数据 七、课程设计心得与体会
通过本次综合设计,我们组分工负责不同的部分,实现不同的功能,并且将最近所学的内容复习了一遍,对课程内容的理解也有所加深。本次实验的代码大部分来源于网络,但是我们对其中部分代码进行了修改,使其得到了优化。并且认真把代码分析了一遍理解了每一步的设计思路和方法。总的来说我们完成了本次综合设计全部内容。
希望以后可以有更多的机会,有更大的平台,提供给我起使我在短短的有限的大学生活中学习更多更有用的知识,收获更多实践性的技巧,可以为将来的工作打下良好的基础,可以为自己以后的未来铺下更好的台阶
八、Protuse硬件仿真结构图