可以这样编程:
1、设D250、D251为十进制数存数区,转换前将其清0。
2、用D200、D201的数(此时为16#9DE)与16#3E8(十进制数1000)比较,如大于0,则用D200、D201的数减去16#3E8,其差送回D200、D201,同时使D250、D251字存储器加1,再用D200、D201的数与16#3E8比较,如大于0,则用D200、D201的数减去16#3E8,其差送回D200、D201,同时使D250、D251字存储器加1。。。直到D200、D201的数与16#3E8(十进制数1000)比较小于0为止。将D250、D251字存储器左移4位。
3、再用D200、D201的数(即余数)与16#64(十进制数100)比较,如大于0,则用D200、D201的数减去16#64,其差送回D200、D201,同时使D250、D251字存储器加1,再用D200、D201的数与16#64比较,如大于0,则用D200、D201的数减去16#64,其差送回D200、D201,同时使D250、D251字存储器加1,直到D200、D201的数与16#64(十进制数100)比较小于0为止,将D250、D251字存储器左移4位。
4、再用D200、D201的数(即余数)与16#A(十进制数10)比较,如大于0,则用D200、D201的数减去16#A,其差送回D200、D201,同时使D250、D251字存储器加1,再用D200、D201的数与16#A比较,如大于0,则用D200、D201的数减去16#A,其差送回D200、D201,同时使D250、D251字存储器加1。。。直到D200、D201的数与16#A(十进制数10)比较小于0为止。将D250、D251字存储器左移4位。
5、将D250、D251字存储器与D200、D201的数(即余数)相或运算,或的结果送入D250、D251字存储器,此时的D250、D251字存储器的数即为原D200、D201的数(16进制数9DE)转换为十进制的数。
这是4位BCD码转换程序,最大可转换的数为9999,折合16进制数为:16#270F.