微机原理课程设计(用8255A实现4位十进制计算器) - 图文(3)

2019-04-10 19:41

课 课程设计报告

MOV X[2],AL MOV X[3],AH POP BX POP DX POP AX RET

OUTP ENDP

;以下为运算键处理子程序,该程序将第一个运算数据的数值计算出来并存入X1变量 ;或者将第二个运算数据的数值计算出来并存入X2变量 ;将运算符的值存入S变量 COUNT PROC

PUSH AX PUSH BX

PUSH DX MOV DX,0

CALL BITP CMP CC,4 JZ

C4

CMP CC,3 JZ C3 CMP CC,2 JZ C2 JMP C1 C4: MOV AX,0

MOV AL,X[0] MOV BX,1000 MUL BX MOV DX,AX C3: MOV AL,X[1] MOV BL,100 MUL BL ADD DX,AX C2: MOV

AL,X[2]

MOV BL,10 MUL BL ADD DX,AX C1: MOV AL,X[3]

MOV AH,0

ADD DX,AX CMP E,1

JNZ X1_S

MOV X2,DX

JMP EXIT3

X1_S: MOV X1,DX

MOV X[3],0 MOV X[2],0

;测试X中的数据是多少位 ;输入的数据是4位数 ?

;输入的数据是3位数 ? ;输入的数据是2位数 ? ;输入的数据是1位数 ?

按下的是等号,则将第二个运算数据的值存入X2变量

;按下的是运算符号,则将第一个运算数据的值存X1变量

;清空X变量

10

; 课 课程设计报告

MOV X[1],0

MOV X[0],0

EXIT3: POP DX

POP BX POP AX RET

COUNT ENDP

;以下为数字键处理子程序

;该程序,将输入的数据按位存放在X变量中,并由CC记录数据的位数 NUMBER PROC

CMP E,1 JNZ CONTINUE

MOV E,0 CALL CLEAR

CONTINUE:CMP CC,0 ;目前数据为0位,即没有数据,则转到SSS JZ SSS

PUSH

AX

PUSH DX MOV AL,X[3] MOV AH,X[2] MOV DL,X[1] MOV DH,X[0] MOV CX,8

LL:

SHL AX, 1 RCL DX,1 LOOP LL MOV X[3],AL MOV X[2],AH MOV X[1],DL MOV X[0],DH POP DX POP AX

SSS:

MOV INC

[DI],DL ;将当前键入的数据存放到X的最低位 CC ;数据位数加1

CMP CC,4 ;判断数据位数 JNG EXIT2

MOV CC,0 ;如果数据超过4位,重新从最低位开始存放 MOV X[2],0 MOV X[1],0

MOV

EXIT2: CALL RET

NUMBER ENDP

;加法子程序

11

X[0],0

DISP ;调显示子程序,显示输入的数据

课 课程设计报告

ADDP PROC

PUSH AX

MOV AX,X1 ADD AX,X2 MOV Y,AX 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

12

课 课程设计报告

;显示子程序 ,将X中的数值按位显示出来 DISP PROC

PUSH

BX

PUSH AX MOV BH,0

LEA SI,DISCODE CALL CMP JZ CMP JZ CMP JZ CMP

BITP CC,4 QIAN CC,3 BAI CC,2 SHI CC,1

;测试X位数

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

MOV AH,11010000B ;从第3位开始显示 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 MOV OUT MOV MOV

AH,10110000B ;从第2位开始显示 AL,AH 44H,AL BL,X[2] AL,[SI+BX]

BAI:

OUT 42H,AL CALL DELY MOV OUT

G:

MOV

AL,0 42H,AL

AH,01110000B ;从第1位开始显示

13

MOV AL,AH

课 课程设计报告

OUT 44H,AL MOV BL,X[3] MOV OUT

AL,[SI+BX] 42H,AL

CALL DELY JMP EXIT4

NONE: MOV AL,0 ;X中没有数据,不显示

OUT 42H,AL

EXIT4: POP AX

POP BX

RET

DISP ENDP

;分析数据位数子程序 BITP PROC

CMP X[0],0 JNZ FOURBIT CMP X[1],0 JNZ THREEBIT

CMP

X[2],0

JNZ TOWBIT CMP X[3],0 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,则数据为4位数 ;如果X[1]不为0,则数据为3位数 ;如果X[2]不为0,则数据为2位数 ;如果X[3]不为0,则数据为1位数

否则,没有数据

14

;


微机原理课程设计(用8255A实现4位十进制计算器) - 图文(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:大学物理简明教程 习题解答(赵近芳)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: