您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 交通运输 > 南邮51单片机软件实验程序2----加减法运算
二、加减法运算1.实验目的(1)正确使用单片机的加减运算指令(2)掌握不同指令对于程序状态字的影响及程序状态字的意义、用处(3)掌握ADD,ADDC,SUBB和DAA等指令的用法(4)学习模块化程序设计方案2.实验内容(1)编写3字节二进制加法子程序,并用主程序调用不同的加数和被加数来检测该子程序的正确性。需考虑有进位和无进位情况。程序入口为:加数:22H,21H,20H三字节,22H为最高位被加数:32H,31H,30H三字节,32H为最高位程序出口为:23H,22H,21H,20H四字节,23H为最高位ORG0000HLJMPMAINORG0030HMAIN:MOV20H,#0f0HMOV21H,#0F0HMOV22H,#0FFHMOV30H,#02MOV31H,#09MOV32H,#05ACALLJIAFASJMP$JIAFA:MOVR0,#20H;加数1地址、和的地址MOVR1,#30H;加数2地址CLRCMOVR2,#3;循环3次A_LOOP:MOVA,@R0;取ADDCA,@R1;加MOV@R0,A;存INCR0INCR1DJNZR2,A_LOOPCLRAADDCA,#0;得到进位MOV23H,A;保存RETEND(2)编写3字节二进制减法子程序,用主程序调用多组数据来调试,需考虑无借位和有借位两种情况。入口:被减数:52H,51H,50H,50H为最低位减数:42H,41H,40H,40H为最低位出口:差:外部数据存贮器2003H~2000H(2003H为最高位)ORG0000HLJMPMAINORG0030HMAIN:MOV50H,#02MOV51H,#09MOV52H,#05MOV40H,#30HMOV41H,#30HMOV42H,#30HACALLJIANFASJMP$JIANFA:MOVDPTR,#2000HMOVR0,#50H;被减数地址MOVR1,#40H;减数地址CLRCMOVR2,#3;循环3次A_LOOP:MOVA,@R0;取SUBBA,@R1;减MOVX@DPTR,A;存INCR0INCR1INCDPTRDJNZR2,A_LOOPCLRASUBBA,#0;得到借位MOVDPTR,#2003HMOVX@DPTR,A;保存RETEND(3)编写10位十进制加法子程序(十进制数采用压缩BCD码存放)入口:加数:24H-20H,低地址放低字节被加数:29H-25H,低地址放低字节要求调用多组数据调试,注意观察PSW的变化,理解DAA指令的含义。ORG0000HLJMPMAINORG0030HMAIN:MOV20H,#99HMOV21H,#78HMOV22H,#56HMOV23H,#34HMOV24H,#12HMOV25H,#88HMOV26H,#88HMOV27H,#88HMOV28H,#88HMOV29H,#88HACALLBCD5SJMP$BCD5:MOVDPTR,#2000H;5字节BCD加法子程序MOVR0,#20HMOVR1,#25HMOVR7,#5CLRCLOOP:MOVA,@R0ADDCA,@R1DAAMOVX@DPTR,A;存INCR0INCR1INCDPTRDJNZR7,LOOP;5字节加完RETEND
本文标题:南邮51单片机软件实验程序2----加减法运算
链接地址:https://www.777doc.com/doc-7222025 .html