【实验题目】简易计算器设计【实验目的】综合测试学生微机接口技术及应用能力,包括系统构思设计、电路设计搭建、软件调试等;结合应用实际,培养学生运用微机技术服务应用、服务实际的能力。【基本要求】1) 利用实验箱上的4x4 键盘及 6 位数码管,实现两个16 位宽的非负整数(0~65535 )进行+、-、×运算,计算结果限制在范围-65535~65535,超过范围在数码管最低位显示E;2) 16 个按键的分配可以自行指定;【扩展要求】1) 按基本要求保持输入的范围不变(16 位宽),扩展计算结果的范围到用足6 位数码管,当计算结果超过 -65535~999999时,显示E;2) 增加÷的功能,有小数显示;【实验程序】;该程序实现了基本要求及扩展要求的2)DSEG SEGMENT BUFF DB 6 DUP() LED_7 DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H,00H,40H POSITION DB 0DFH,0EFH,0F7H,0FBH,0FDH,0FEH UNIT10 DW 10000,1000,100,10,1 NEWNUM DB 0 COUNT DB 0 FLAG DB 0 ;是否有键按下的标志NEGTI DB 0 ;是否为负数的标志NUM DW 0 NUM1 DW 0 NUM2 DW 0 TAG DB 0 ;运算种类标志POINT DB 0 ;除法结果添加小数点标志RESULT DW 0 DSEG ENDS CSEG SEGMENT ASSUME DS:DSEG,CS:CSEG START: MOV AX,DSEG MOV DS,AX MOV DX,300CH ;8255 初始化MOV AL,81H OUT DX,AL LEA SI,BUFF MOV CX,6 NEXT: MOV BYTE PTR[SI],16 INC SI LOOP NEXT CALL SHOW ;将显示缓冲区中内容在LED上一次显示出来MOV COUNT,0 ;记按下了几位数NEXT2: CALL SHOW CALL SCAN ;判断是否有按键按下CMP FLAG,1 JZ OK JMP NEXT2 OK: MOV FLAG,0 MOV POINT,0 MOV DX,3000H ;判断是哪一个键被按下MOV AL,0FFH OUT DX,AL MOV CH,-1 ;CH 用于保存当前被扫描的列号MOV CL,07FH XL: ROL CL,1 INC CH MOV DX,3000H MOV AL,CL OUT DX,AL MOV DX,3008H IN AL,DX AND AL,0FH CMP AL,0FH JZ XL ;选中下一列被扫描CMP AL,0EH JNZ FOUR MOV CL,0 ;CL 保存行号JMP FREE FOUR: CMP AL,0DH JNZ BA MOV CL,4 JMP FREE BA: CMP AL,0BH JNZ SHIER MOV CL,8 JMP FREE SHIER: CMP AL,07H JNZ XL MOV CL,12 FREE: ADD CH,CL ;行列值相加为按键代表的值CMP CH,9 JBE SHUZI CMP CH,12 ;加法JZ JIAFA CMP CH,13 ;减法JZ...