微机原理实验 简易计算器.doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
微机原理实验 简易计算器

【】简易计算器设计【实验目的】 。 【】【】【 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 JIANFA CMP CH,14 ;乘法 JZ CHENGFA CMP CH,15 ;除法 JZ CHUFA CMP CH,11 ;等号时进行运算 JZ YUNSUAN CMP CH,10 ;此键清屏重新输入 JZ CLEAR SHUZI: INC COUNT MOV NEWNUM,CH CALL COPY ;将新输入的按键值送入显示缓冲区的最末位 MOV DX,3000H ;将LED关显示 MOV AL,0FFH OUT DX,AL CALL DELAY2 JMP NEXT2 JIAFA: MOV TAG,1 ;置加法标志 CALL TO_DEC ;将输入的数转化为十进制数保存 MOV AX,NUM MOV NUM1,AX JMP START ;继续输入第二个按键数 JIANFA: MOV TAG,2 CALL TO_DEC MOV AX,NUM MOV NUM1,AX JMP START CHENGFA: MOV TAG,3 CALL TO_DEC MOV AX,NUM MOV NUM1,AX JMP START CHUFA: MOV TAG,4 CALL TO_DEC MOV AX,NUM MOV NUM1,AX JMP START CLEAR: JMP START YUNSUAN: CALL TO_DEC ;将第二次输入的数转化为十进制数保存 MOV AX,NUM MOV NUM2,AX CMP TAG,1 JZ SJIAF CMP TAG,2 JZ SJIANF CMP TAG,3 JZ SCHENGF CMP TAG,4 JZ SCHUF YE

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档