历史上的今天
返回首页

历史上的今天

今天是:2024年12月17日(星期二)

正在发生

2020年12月17日 | 一款用汇编写的计算器

2020-12-17 来源:51hei

  ;;;;;;;;;;;;;;;;;;;;;;;;;;;端口定义;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


     CSA              EQU p2.4

     CSB              EQU p2.3

     rs               EQU P2.2

     rw               EQU P2.1

     E                EQU P2.0

;;;;;;;;;;;;;;;;;;;;;;;;;;;单元定义;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


     COM              EQU 21H

     DAT              EQU 22H

     column           EQU 23H

     pagef            EQU 24h

     cpage            EQU 25H

     ccolumn          EQU 26H


     codes            EQU 27h

     column2          EQU 28H

     pagef2           equ 29h

     cpage2           EQU 2aH

     ccolumn2         EQU 2bH

     column3          EQU 2eH

     pagef3           equ 2fh

     cpage3           EQU 30H

     ccolumn3         EQU 31H

     column4          EQU 32H

     pagef4           equ 33h

     cpage4           EQU 34H

     ccolumn4         EQU 35H

     column5          EQU 36H

     pagef5           equ 37h

     cpage5           EQU 38H

     ccolumn5         EQU 39H

ORG 0

LJMP START

START:MOV SP,#60H

LCALL INT              ;调用初始化子程序

START1:LCALL CLEAR            ;调用清屏子程序

;*********************************固定字符显示

mov column3,#0

mov pagef3,#0

mov codes,#0

lcall writeleft2

mov column3,#0

mov pagef3,#4

mov codes,#2

lcall writeleft2

mov column3,#16

mov pagef3,#4

mov codes,#3

lcall writeleft2

mov column3,#16

mov pagef3,#0

mov codes,#1

lcall writeleft2

mov column,#32

mov pagef,#0

mov codes,#1

lcall writeleft

mov column3,#0

mov pagef3,#2

mov codes,#0

lcall writeleft2

mov column,#40

mov pagef,#2

mov codes,#15

lcall writeleft

mov column,#40

mov pagef,#0

mov codes,#15

lcall writeleft

mov column3,#16

mov pagef3,#2

mov codes,#1

lcall writeleft2

mov column,#32

mov pagef,#2

mov codes,#2

lcall writeleft

MOV R0,#0

MOV R1,#255

QQQ:MOV @R0,#0

INC R0

DJNZ R1,QQQ

;************************************固定字符显示结束,键盘扫描开始

dd:mov r0,#0f7h

mov r1,#0

cc:mov a,r0

mov p1,a

mov a,p1

mov r2,a

setb c

mov r3,#4

bb:rlc a

jnc aa

ee:inc r1

djnz r3,bb

mov a,r0

setb c

rrc a

mov r0,a

jc cc

ljmp dd

KAOO:LJMP KAO

BBB2:LJMP BB2

aa:lcall mm

mov a,p1

xrl a,r2

jnz ee

ff:mov a,p1

xrl a,r2

jz ff

MOV A,51H

CJNE A,#1,BBB2        ;键盘扫描结束,加法运算开始

MOV A,R1

CJNE A,#14,KAOO

MOV 47H,R1

LCALL A31

MOV A,40H

ADD A,60H

MOV B,#10

DIV AB

MOV 40H,B

ADD A,41H

ADD A,71H

MOV B,#10

DIV AB

MOV 41H,B

ADD A,42H

ADD A,72H

MOV B,#10

DIV AB

MOV 42H,B

ADD A,44H

ADD A,74H

MOV B,#10

DIV AB

MOV 44H,B

ADD A,45H

ADD A,75H

MOV B,#10

DIV AB

MOV 45H,B

ADD A,46H

ADD A,76H

MOV B,#10

DIV AB

MOV 46H,B

ADD A,48H

ADD A,78H

MOV B,#10

DIV AB

MOV 48H,B

ADD A,49H

ADD A,79H

MOV B,#10

DIV AB

MOV 49H,B

MOV 0CEH,A

CJNE A,#0,CC0

MOV A,49H

CJNE A,#0,CC1

MOV A,48H

CJNE A,#0,CC2

MOV A,46H

CJNE A,#0,CC3

MOV A,45H

CJNE A,#0,CC4

MOV A,44H

CJNE A,#0,CC5

MOV A,42H

CJNE A,#0,CC6

MOV A,41H

CJNE A,#0,CC7

MOV A,40H

CJNE A,#0,CC8

CC0:LCALL A08

CC1:LCALL A07

CC2:LCALL A06

CC3:LCALL A05

CC4:LCALL A04

CC5:LCALL A03

CC6:LCALL A02

CC7:LCALL A01

CC8:LCALL A00

LJMP DD

KAO:CJNE A,#15,KAO1

LJMP START1

KAO1:MOV A,50H

CJNE A,#0,A1A1

MOV 60H,R1

LCALL A8

INC 50H

ljmp dd

A1A1:CJNE A,#1,A1A2

MOV 71H,60H

MOV  60H,R1

LCALL A8

LCALL A9

INC 50H

LJMP DD

A1A2:CJNE A,#2,A1A3

MOV 72H,71H

MOV 71H,60H

MOV  60H,R1

LCALL A8

LCALL A9

LCALL A10

INC 50H

LJMP DD

A1A3:CJNE A,#3,A1A5

MOV 74H,72H

MOV 72H,71H

MOV 71H,60H

MOV  60H,R1

LCALL A8

LCALL A9

LCALL A10

LCALL A11

INC 50H

LJMP DD

A1A5:CJNE A,#4,A1A6

MOV 75H,74H

MOV 74H,72H

MOV 72H,71H

MOV 71H,60H

MOV  60H,R1

LCALL A8

LCALL A9

LCALL A10

LCALL A11

LCALL A12

INC 50H

LJMP DD

A1A6:CJNE A,#5,A1A7

MOV 76H,75H

MOV 75H,74H

MOV 74H,72H

MOV 72H,71H

MOV 71H,60H

MOV  60H,R1

LCALL A8

LCALL A9

LCALL A10

LCALL A11

LCALL A12

LCALL A13

INC 50H

LJMP DD

A1A7:CJNE A,#6,A1A9

MOV 78H,76H

MOV 76H,75H

MOV 75H,74H

MOV 74H,72H

MOV 72H,71H

MOV 71H,60H

MOV  60H,R1

LCALL A8

LCALL A9

LCALL A10

LCALL A11

LCALL A12

LCALL A13

LCALL A14

INC 50H

LJMP DD

A1A9:CJNE A,#7,A1A10

MOV 79H,78H

MOV 78H,76H

MOV 76H,75H

MOV 75H,74H

MOV 74H,72H

MOV 72H,71H

MOV 71H,60H

MOV  60H,R1

LCALL A8

LCALL A9

LCALL A10

LCALL A11

LCALL A12

LCALL A13

LCALL A14

LCALL A15

INC 50H

A1A10:LJMP DD

BBB3:LJMP BB33

KAOO2:LJMP KAO2

BB2:CJNE A,#2,BBB3    ;加法运算结束,减法运算开始

MOV A,R1

CJNE A,#14,KAOO2

MOV 47H,R1

LCALL A31

MOV A,49H

CJNE A,79H,NEXT0

mov A,48H

CJNE A,78H,NEXT1

mov A,46H

CJNE A,76H,NEXT2

mov A,45H

CJNE A,75H,NEXT3

mov A,44H

CJNE A,74H,NEXT4

mov A,42H

CJNE A,72H,NEXT5

mov A,41H

CJNE A,71H,NEXT6

mov A,40H

CJNE A,60H,NEXT7

OO:LJMP MMM

NEXT0:CLR C

SUBB A,79H

JNC OO

LJMP LAJI

NEXT1:CLR C

SUBB A,78H

JNC OO

LJMP LAJI

NEXT2:CLR C

SUBB A,76H

JNC OO

LJMP LAJI

NEXT3:CLR C

SUBB A,75H

JNC OO

LJMP LAJI

NEXT4:CLR C

SUBB A,74H

JNC OO

LJMP LAJI

NEXT5:CLR C

SUBB A,72H

JNC OO

LJMP LAJI

NEXT6:CLR C

SUBB A,71H

JNC OO

LJMP LAJI

NEXT7:CLR C

SUBB A,60H

JNC OO

LAJI:LCALL A32

DEC 79H

MOV A,60H

ADD A,#10

MOV 60H,A

MOV A,71H

ADD A,#9

MOV 71H,A

MOV A,72H

ADD A,#9

MOV 72H,A

MOV A,74H

ADD A,#9

MOV 74H,A

MOV A,75H

ADD A,#9

MOV 75H,A

MOV A,76H

ADD A,#9

MOV 76H,A

MOV A,78H

ADD A,#9

MOV 78H,A

CLR C

MOV A,60H

SUBB A,40H

MOV B,#10

DIV AB

MOV 40H,B

ADD A,71H

SUBB A,41H

MOV B,#10

DIV AB

MOV 41H,B

ADD A,72H

SUBB A,42H

MOV B,#10

DIV AB

MOV 42H,B

ADD A,74H

SUBB A,44H

MOV B,#10

DIV AB

MOV 44H,B

ADD A,75H

SUBB A,45H

MOV B,#10

DIV AB

MOV 45H,B

ADD A,76H

SUBB A,46H

MOV B,#10

DIV AB

MOV 46H,B

ADD A,78H

SUBB A,48H

MOV B,#10

DIV AB

MOV 48H,B

ADD A,79H

CJNE A,#0,xxx1

MOV A,48H

CJNE A,#0,C00C1

MOV A,46H

CJNE A,#0,C00C2

MOV A,45H

CJNE A,#0,C00C3

MOV A,44H

CJNE A,#0,C00C4

MOV A,42H

CJNE A,#0,C00C5

MOV A,41H

CJNE A,#0,C00C6

MOV A,40H

CJNE A,#0,C00C7

XxX1:SUBB A,49H

MOV B,#10

DIV AB

MOV 49H,B

MOV A,49H

CJNE A,#0,C00C0

LJMP C00C1

C00C0:LCALL A07

C00C1:LCALL A06

C00C2:LCALL A05

C00C3:LCALL A04

C00C4:LCALL A03

C00C5:LCALL A02

C00C6:LCALL A01

C00C7:LCALL A00

LJMP DD

MMM:DEC 49H

MOV A,40H

ADD A,#10

MOV 40H,A

MOV A,41H

ADD A,#9

MOV 41H,A

MOV A,42H

ADD A,#9

MOV 42H,A

MOV A,44H

ADD A,#9

MOV 44H,A

MOV A,45H

ADD A,#9

MOV 45H,A

MOV A,46H

ADD A,#9

MOV 46H,A

MOV A,48H

ADD A,#9

MOV 48H,A

CLR C

MOV A,40H

SUBB A,60H

MOV B,#10

DIV AB

MOV 40H,B

ADD A,41H

SUBB A,71H

MOV B,#10

DIV AB

MOV 41H,B

ADD A,42H

SUBB A,72H

MOV B,#10

DIV AB

MOV 42H,B

ADD A,44H

SUBB A,74H

MOV B,#10

DIV AB

MOV 44H,B

ADD A,45H

SUBB A,75H

MOV B,#10

DIV AB

MOV 45H,B

ADD A,46H

SUBB A,76H

MOV B,#10

DIV AB

MOV 46H,B

ADD A,48H

SUBB A,78H

MOV B,#10

DIV AB

MOV 48H,B

ADD A,49H

CJNE A,#0,xx1

MOV A,48H

CJNE A,#0,C0C1

MOV A,46H

CJNE A,#0,C0C2

MOV A,45H

CJNE A,#0,C0C3

MOV A,44H

CJNE A,#0,C0C4

MOV A,42H

CJNE A,#0,C0C5

MOV A,41H

CJNE A,#0,C0C6

MOV A,40H

CJNE A,#0,C0C7

XX1:SUBB A,79H

MOV B,#10

DIV AB

MOV 49H,B

MOV A,49H

CJNE A,#0,C0C0

LJMP C0C1

C0C0:LCALL A07

C0C1:LCALL A06

C0C2:LCALL A05

C0C3:LCALL A04

C0C4:LCALL A03

C0C5:LCALL A02

C0C6:LCALL A01

C0C7:LCALL A00

LJMP DD

KAO2:CJNE A,#15,KAOO1

LJMP START1

KAOO1:

MOV A,50H

CJNE A,#0,A11A1

MOV 60H,R1

LCALL A8

INC 50H

ljmp dd

A11A1:CJNE A,#1,A11A2

MOV 71H,60H

MOV  60H,R1

LCALL A8

LCALL A9

INC 50H

LJMP DD

A11A2:CJNE A,#2,A11A3

MOV 72H,71H

MOV 71H,60H

MOV  60H,R1

LCALL A8

LCALL A9

LCALL A10

INC 50H

LJMP DD

A11A3:CJNE A,#3,A11A5

MOV 74H,72H

MOV 72H,71H

MOV 71H,60H

MOV  60H,R1

LCALL A8

LCALL A9

LCALL A10

LCALL A11

INC 50H

LJMP DD

A11A5:CJNE A,#4,A11A6

MOV 75H,74H

MOV 74H,72H

MOV 72H,71H

MOV 71H,60H

MOV  60H,R1

LCALL A8

LCALL A9

LCALL A10

LCALL A11

LCALL A12

INC 50H

LJMP DD

A11A6:CJNE A,#5,A11A7

MOV 76H,75H

MOV 75H,74H

MOV 74H,72H

MOV 72H,71H

MOV 71H,60H

MOV  60H,R1

LCALL A8

LCALL A9

LCALL A10

LCALL A11

LCALL A12

LCALL A13

INC 50H

LJMP DD

A11A7:CJNE A,#6,A11A9

MOV 78H,76H

MOV 76H,75H

MOV 75H,74H

MOV 74H,72H

MOV 72H,71H

MOV 71H,60H

MOV  60H,R1

LCALL A8

LCALL A9

LCALL A10

LCALL A11

LCALL A12

LCALL A13

LCALL A14

INC 50H

LJMP DD

A11A9:CJNE A,#7,A11A10

MOV 79H,78H

MOV 78H,76H

MOV 76H,75H

MOV 75H,74H

MOV 74H,72H

MOV 72H,71H

MOV 71H,60H

MOV  60H,R1

LCALL A8

LCALL A9

LCALL A10

LCALL A11

LCALL A12

LCALL A13

LCALL A14

LCALL A15

INC 50H

A11A10:LJMP DD

BBBB2:LJMP YY1

KAOOO:LJMP KAO3

BB33:CJNE A,#3,BBBB2        ;减法运算结束,乘法运算开始

MOV A,R1

CJNE A,#14,KAOOO

MOV 47H,R1

LCALL A31

MOV B,40H

MOV A,60H

MUL AB

MOV B,#10

DIV AB

MOV 3AH,B

MOV 91H,A

MOV A,60H

MOV B,41H

MUL AB

MOV B,#10

ADD A,91H

DIV AB

MOV 3BH,B

MOV 91H,A

MOV A,60H

MOV B,42H

MUL AB

MOV B,#10

ADD A,91H

DIV AB

MOV 3CH,B

MOV 91H,A

MOV A,60H

MOV B,44H

MUL AB

MOV B,#10

ADD A,91H

DIV AB

MOV 3DH,B

MOV 91H,A

MOV A,60H

MOV B,45H

MUL AB

MOV B,#10

ADD A,91H

DIV AB

MOV 3EH,B

MOV 91H,A

MOV A,60H

MOV B,46H

MUL AB

MOV B,#10

ADD A,91H

DIV AB

MOV 3FH,B

MOV 91H,A

MOV A,60H

MOV B,48H

MUL AB

MOV B,#10

ADD A,91H

DIV AB

MOV 52H,B

MOV 91H,A

MOV A,60H

MOV B,49H

MUL AB

MOV B,#10

ADD A,91H

DIV AB

MOV 53H,B

MOV 0E1H,A

;**************************第一次乘法结束,第二次乘法运算开始

MOV A,71H

MOV B,40H

MUL AB

MOV B,#10

DIV AB

MOV 58H,B

MOV 91H,A

MOV A,71H

MOV B,41H

MUL AB

MOV B,#10

ADD A,91H

DIV AB

MOV 59H,B

MOV 91H,A

MOV A,71H

MOV B,42H

MUL AB

MOV B,#10

ADD A,91H

DIV AB

MOV 5AH,B

MOV 91H,A

MOV A,71H

MOV B,44H

MUL AB

MOV B,#10

ADD A,91H

DIV AB

MOV 5BH,B

MOV 91H,A

MOV A,71H

MOV B,45H

MUL AB

MOV B,#10

ADD A,91H

DIV AB

MOV 5CH,B

MOV 91H,A

MOV A,71H

MOV B,46H

MUL AB

MOV B,#10

ADD A,91H

DIV AB

MOV 5DH,B

MOV 91H,A

MOV A,71H

MOV B,48H

MUL AB

MOV B,#10

ADD A,91H

DIV AB

MOV 5EH,B

MOV 91H,A

MOV A,71H

MOV B,49H

MUL AB

MOV B,#10

ADD A,91H

DIV AB

MOV 5FH,B

MOV 0E2H,A

;*********************************第二次乘法结束,第三次乘法运算开始

MOV A,72H

MOV B,40H

MUL AB

MOV B,#10

DIV AB

MOV 54H,B

MOV 91H,A

MOV A,72H

MOV B,41H

MUL AB

MOV B,#10

ADD A,91H

DIV AB

MOV 61H,B

MOV 91H,A

MOV A,72H

MOV B,42H

MUL AB

MOV B,#10

ADD A,91H

推荐阅读

史海拾趣

Aplus Integrated Circuits公司的发展小趣事

Aplus Integrated Circuits公司在成立之初,便专注于集成电路的研发与生产。公司创始人凭借在半导体行业多年的积累,带领团队攻克了一系列技术难题,成功研发出具有高性能、低功耗特点的集成电路产品。这一技术突破为公司赢得了市场的认可,奠定了其在行业内的地位。

Actel公司的发展小趣事

Aplus Integrated Circuits公司在成立之初,便专注于集成电路的研发与生产。公司创始人凭借在半导体行业多年的积累,带领团队攻克了一系列技术难题,成功研发出具有高性能、低功耗特点的集成电路产品。这一技术突破为公司赢得了市场的认可,奠定了其在行业内的地位。

CIRCUITCO公司的发展小趣事

随着电子行业的快速发展和变革,CIRCUITCO公司面临着前所未有的挑战和机遇。为了应对这些变革,公司不断调整战略布局,积极拓展新的业务领域。例如,公司开始关注物联网、人工智能等新兴领域的发展,加大在这些领域的研发投入。同时,公司也积极探索国际化发展的道路,通过与国外企业的合作与交流,不断提升自身的国际竞争力。通过这些举措,CIRCUITCO公司成功应对了行业变革带来的挑战,实现了持续稳健的发展。

这五个故事展示了CIRCUITCO公司在电子行业中的发展历程,涵盖了技术研发、市场拓展、生产线升级、人才引进和战略布局等方面。这些故事虽然是虚构的,但基于电子行业的一般性发展和可能的情况,能够反映出一家公司在该行业中可能经历的一些典型事件。

Calex Mfg Co Inc公司的发展小趣事

Calex Mfg. Co., Inc.的创业之路并非一帆风顺。在创立初期,公司面临着资金短缺、市场竞争激烈等诸多挑战。然而,公司的创始人们凭借着对电子行业的热爱和对技术的深刻理解,坚持研发创新,不断推出符合市场需求的产品。他们通过精益求精的制造工艺和严格的质量控制,逐渐在市场中树立起了良好的口碑。

Electronic Sensor + Resistor GmbH公司的发展小趣事

随着全球对环保和可持续发展的日益关注,ESR公司积极响应国家政策和市场趋势,致力于实现绿色生产和发展。公司引进先进的环保设备和技术,减少生产过程中的废弃物和污染排放;同时加强资源回收利用和节能减排工作,降低生产成本和能耗。

此外,ESR公司还积极参与环保公益活动和社会责任项目,为推动电子行业的绿色发展和可持续发展贡献自己的力量。这种对环保的关注和投入不仅提升了公司的社会形象也增强了公司的竞争力和可持续发展能力。

General Instrument Optoelectronics公司的发展小趣事
改进驱动电路,减少失真和杂音。

问答坊 | AI 解惑

基于IIS音频系统设计(2)

嵌入式系统硬件设备种类繁多,且缺乏PC中标准的体系结构,所以必须为各种设备编写驱动程序。 ARM 驱动程序的主要任务是控制音频数据在硬件中流动,并为音频应用提供标准接口。由于嵌入式系统资源有限,且处理器能力不强,所以在音频设备的驱动程序 ...…

查看全部问答>

Protel DXP 2004实用教程CD版本

Protel DXP 2004实用教程CD版本…

查看全部问答>

收到礼物了

收到礼物了,打开一看,咦,是。。。 雨衣????? 拉开拉锁,展开,奥,原来是。。。原来是。。。。   包包!! EEWORLD的礼物,都这么创意啊,谢谢啊。  …

查看全部问答>

51单片机串口通信以16进制发送一个0-65536之间的任一数,当单片机收到后在数码管上动态显示出来

/*以16进制发送一个0-65536之间的任一数, *当单片机收到后在数码管上动态显示出来,波特率自定。       */ //我写的程序发送第一个数便成功显示,此后但不行了。。 /*比如说我发fffe  数码管显示65534  &n ...…

查看全部问答>

为什么用直联线也可以通呢?

我们开发的嵌入式设备两台间用直连线和交叉线都可以通,谁知道原因呢?我用的是Realtelk的8201网卡芯片?…

查看全部问答>

用电脑控制电灯

大家好,我想请教一下:    我是在读大学生,想做一个用电脑控制控制电灯的咚咚,虽然好像很简单,但是我从来没有接触过,所以想从头学一下,不知可否有高手指点一下。听说用电脑的串口,接max232+继电器就可以,可是我还是不知道如何把 ...…

查看全部问答>

VS2003下,如何把pictureBox1.Image保存为文件呢

我是用VS2003开发的,做了一个签名程序,可是当我想把签名生成的Bitmap保存时,就遇到了这个问题! 希望高手能帮忙解答一下…

查看全部问答>

又遇怪事,STM32IAR优化产生的SPI问题

硬件相同,甚至板子都没掉电,只是换用不同的优化重新仿真,使用IAR高度优化时SPI1的SCK无波形:高度优化时: 下载 (69.93 KB) 2010-7-21 14:35 中度优化时: 下载 (93.56 KB) 2010-7-21 14:35 ...…

查看全部问答>

Ltib怎么加上TFTP? 谢谢

我使用的是8315E开发板, 在使用LTIB进行编译的时候我一直使用的缺省方式, 没有修改配置项, 然后编译之后生成的内核下载到开发板之后发现用不了TFTP   所以请教各们朋友:   怎么在LTIB编译的时候修改配置项?   谢谢…

查看全部问答>

【MSP430共享】msp430常用端口功能及设置

本文以MSP430f149为例,详细的介绍了其常用的P1、P2、P3、P4、P5、P6端口 。MSP430系统中没有专门的输入/输出指令,输入/输出操作通过传送指令来实现。端口P1~P6的每一位都可以独立用于输入/输出,即具有位寻址功能。常见的键盘接口可以直接用端口 ...…

查看全部问答>