您当前的位置:五五电子网电子知识单片机-工控设备义隆单片机EM78系列单片机的子程序 正文
EM78系列单片机的子程序

EM78系列单片机的子程序

点击数:7334 次   录入时间:03-04 11:42:13   整理:http://www.55dianzi.com   义隆单片机
                  注意:(1)sub指令减出结果为正时,c标志置1。
                   (2)sub指令减出结果为0时,c标志也置1。
                  即,sub指令执行后,c标志清0表示结果为负。
                  main: mov  a,@0x67 赋值
                  mov  0x20,a
                  mov  a,@0xff
                  mov  0x21,a
                  mov  a,@0xe8
                  mov  0x22,a
                  mov  a,@0x44
                  mov  0x23,a   高字节相减
                  sub  a,0x21
                  mov  0x25,a  结果存0x25
                  mov  a,0x22  低字节相减
                  sub  a,0x20
                  mov  0x24,a
                  jbs  0x03,0
                  dec  0x25   有借位则0x25减1
                  self:  jmp  self
                  eop

                  四 二进制乘法运算
                  
            EM78 单片机 没有乘法指令,所以乘法运算需要转化为加法运算。0X20单元数据乘以0X21单元数据,结果放在0X22,0X23中。
                  main: mov  a,@0x0  0x22,0x23单元清0
                  mov  0x22,a
                  mov  0x23,a
                  mov  a,@0x3f  赋值
                  mov  0x20,a
                  mov  a,@0x22
                  mov  0x21,a
                  mul1: mov  a,0x20  ;0x20与0x22内容相加
                  add  0x22,a
                  jbc  0x03,0
                  inc  0x23   有进位0x23加1
                  djz  0x21   0x21中次数减到0则结束
                  jmp  mul1  没减到0则继续
                  self:  jmp  self
                  eop

                  五 二进制除法运算
                  多字节二进制除法
                  被除数为3个字节,在0x20、0x21、0x22单元中,0x22.7为最高位,0x20.0为最低位。
                  除数为2个字节,在0x30、0x31中。
                  算法:EM78 单片机 没有除法指令,而且本例中除法为多字节除法,可采用如下算法。
                 
            将被除数扩充一个字节0X23,0X23清0。被除数左移1位,0X23、0X22中数据减去0X31、0X30中数据,够减则减且0X20.0置1,减出结果存入0X23、0X22;不够减则0X23、0X22保持不变,0X20.0清0。然后被除数再左移1位,重复上述过程。共循环16次,最后0X23、0X22中得相减余数,0X21、0X20中得商。注意,若被除数左移后C标志为1,则不比较0X23、0X22与0X31、0X30数据大小关系而直接相减。
                  main:  mov  a,@0x55  被除数赋值
                  mov  0x20,a
                  mov  0x21,a
                  mov  0x22,a
                  mov  a,@0x0  被除数扩充1字节并清0
                  mov  0x23,a
                  mov  a,@0x12  除数赋值
                  mov  0x30,a
                  mov  0x31,a

                  mov  a,@0x10  循环次数为16
                  mov  0x32,a
                  again:  call  rt_sub  调移位除法子程

上一页  [1] [2] [3] [4] [5]  下一页


本文关键字:单片机  子程序  义隆单片机单片机-工控设备 - 义隆单片机