2018-11-27 回答
做过。我现在发一个类似的,是别人的,正好被我看到了,你可以参考一下。
org 0000h
ljmp main
org 0100h
main: jnb p1.0,p10
jnb p1.1,p11
jnb p1.2,p12
jnb p1.3,p13
ljmp main
p10: mov r7,#00h
lcall squ
ljmp main
p11: mov r7,#01h
lcall saw
ljmp main
p12: mov r7,#02h
lcall tri
ljmp main
p13: mov r7,#03h
lcall sin
ljmp main
squ: jnb p1.1,n1
jnb p1.2,n2
jnb p1.3,n3
ljmp ssqu
n1: mov r7,#01h
ljmp tc0
n2: mov r7,#02h
ljmp tc0
n3: mov r7,#03h
ljmp tc0
ssqu: cjne r7,#00h,tc0
mov r0,#00h
mov dptr,#7fffh
k00: mov a,#0ffh
movx @dptr,a
mov p0,#0ffh
mov p2,#0ffh
mov a,p2
cpl a
mov r3,a
l00: dec r3
cjne r3,#255,l00
inc r0
inc r0
cjne r0,#254,k00
mov r0,#00h
k01: mov a,#00h
movx @dptr,a
mov p0,#00h
mov p2,#0ffh
mov a,p2
cpl a
mov r3,a
l01: dec r3
cjne r3,#255,l01
inc r0
inc r0
cjne r0,#254,k01
ljmp squ
tc0: ret
saw: jnb p1.0,n4
jnb p1.2,n5
jnb p1.3,n6
ljmp ssaw
n4: mov r7,#00h
ljmp tc1
n5: mov r7,#02h
ljmp tc1
n6: mov r7,#03h
ljmp tc1
ssaw: cjne r7,#01h,tc1
mov r0,#0ffh
mov dptr,#7fffh
k10: mov a,r0
movx @dptr,a
mov p0,r0
mov p2,#0ffh
mov a,p2
cpl a
mov r3,a
l10: dec r3
cjne r3,#255,l10
inc r0
cjne r0,#255,k10
ljmp saw
tc1: ret
tri: jnb p1.0,n7
jnb p1.1,n8
jnb p1.3,n9
ljmp ttri
n7: mov r7,#00h
ljmp tc2
n8: mov r7,#01h
ljmp tc2
n9: mov r7,#03h
ljmp tc2
ttri: cjne r7,#02h,tc2
mov r0,#00h
mov dptr,#7fffh
k20: mov a,r0
movx @dptr,a
mov p0,r0
mov p2,#0ffh
mov a,p2
cpl a
mov r3,a
l20: dec r3
cjne r3,#255,l20
inc r0
inc r0
cjne r0,#254,k20
k21: mov a,r0
movx @dptr,a
mov p0,r0
mov p2,#0ffh
mov a,p2
cpl a
mov r3,a
l21: dec r3
cjne r3,#255,l21
dec r0
dec r0
cjne r0,#0,k21
ljmp tri
tc2: ret
sin: jnb p1.0,n10
jnb p1.1,n11
jnb p1.2,n12
ljmp ssin
n10: mov r7,#00h
ljmp tc3
n11: mov r7,#01h
ljmp tc3
n12: mov r7,#02h
ljmp tc3
ssin: cjne r7,#03h,tc3
mov r0,#00h
mov dptr,#7fffh
k30: mov a,r0
mov dptr,#tab
movc a,@a+dptr
mov dptr,#7fffh
movx @dptr,a
mov p0,a
inc r0
mov p2,#0ffh
mov a,p2
cpl a
mov r3,a
l30: dec r3
cjne r3,#255,l30
cjne r0,#255,k30
ljmp sin
tc3: ret
tab: db