正在加载图片...
指令,直到最后一条。 【例4】将30H单元内的两位BCD码拆开并转换成ASCI码,存入 RAM两个单元中。程序流程如图41所示。参考程序如下: ORG 0100H MOA,30H;取值 ANLA,#0FH;取低4位 ADDA,#30H;转换成ASCI码 MOⅤ32H,A;保存结果 MOVA,30H;取值 SWAP 高4位与低4位互换 ANLA,#0FH;取低4位(原来的高位) ADDA,#30H;转换成ASCI码 MOV31H,A;保存结果 SJMP S END 【例42】设X、Y两个小于10的整数分别存于片内30H、31H单元,试 求两数的平方和并将结果存于32H单元。 解:两数均小于10,故两数的平方和小于100,可利用乘法指令求平方。 程序流程如图42所示。参考程序如下: ORG 0100H MOV A,30H;取30H单元数据 MOV B, A ;将X送入B寄存器 MUL AB 求X2,结果在累加器中 MOVR1,A;将结果暂存于R1寄存器中 MOVA,31H;取31H单元数据 MOVB,A;将Y送入B寄存器 MUL AB ;求Y2,结果在累加器中 ADD ,R1;求X2+Y2 MOV32H,A;保存数据 SJMP S ;暂停 END指令,直到最后一条。 【例4.1】 将30H单元内的两位BCD码拆开并转换成ASCII码,存入 RAM两个单元中。程序流程如图4.1所示。参考程序如下: ORG 0100H MOV A,30H ;取值 ANL A,#0FH ;取低4位 ADD A,#30H ;转换成ASCII码 MOV32H,A ;保存结果 MOVA,30H ;取值 SWAP A ;高4位与低4位互换 ANL A,#0FH ;取低4位(原来的高4位) ADD A,#30H ;转换成ASCII码 MOV 31H,A ;保存结果 SJMP $ END 【例4.2】 设X、Y两个小于10的整数分别存于片内30H、31H单元,试 求两数的平方和并将结果存于32H单元。 解:两数均小于10,故两数的平方和小于100,可利用乘法指令求平方。 程序流程如图4-2所示。参考程序如下: ORG 0100H MOV A,30H ;取30H单元数据 MOV B,A ;将X送入B寄存器 MUL AB ;求X2,结果在累加器中 MOV R1,A ;将结果暂存于R1寄存器中 MOV A,31H;取31H单元数据 MOV B,A ;将Y送入B寄存器 MUL AB ;求Y2,结果在累加器中 ADD A,R1 ;求X2+ Y2 MOV 32H,A;保存数据 SJMP $ ;暂停 END
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有