试编制一个子程序将字符串‘MCS-51Microcomputer’装入外部RAM8000H开始的显示缓冲区
ORG0000HAJMP0030HMIAN:MOVDPTR,#8000HMOVR1,#0MOVR0,#20LOOP:MOVA,R1ADDA,#5MOVCA,@A+PCMOVX@DPTR,A;1BINCDPTR;1BINCR1;1BDJNZR0,LOOP;3BTAB:DB‘M’,’C’,’S’,’-‘,’5’,’1’,’‘,’M’,’i’,’c’,’r’,’o’DB‘c’,’o’,’m’,’p’,’u’,’t’,’e’,’r’END6
试设计一个n字节的无符号十进制数加法子程序,其功能为将(R0)和(R1)指出的内部RAM中两个n字节压缩BCD码无符号十进制数相加,结果存放于被加数单元中
子程序入口时,R0,R1分别指向被加数和加数的低位字节,字节数n存于R2,出口时R0指向和的最高位字节,CY为进位位
LENEQU30ORG0000HAJMPMAINORG0030HMAIN:MOVSP
#60HMOVR2,#LENACALLADD_NBYTESJMP$ADD_NBYTE:CLRCLOOP:MOVA,@R0ADDCA,@R1DAAMOV@R0,AINCR0INCR1DJNZR2,LOOPRETEND8
试设计一个程序,其功能为判断(R2R3R4R5)中压缩BCD码十进制最高位是否为零,若最高位为0,且该十进制数不为0,则通过左移使最高位不为0
ORG0000HAJMPMAINORG0030HMAIN:MOVA,R2ANLA,#80HJNZNEXTCLRCLOOP:MOVA,R5RLCAMOVR5,AMOVA,R4RLCAMOVR4,AMOVA,R3RLCAMOVR3,AMOVA,R2RLCAMOVR2,AANLA,#80HJZLOOPNEXT:SJMP$END9