把二進制數轉換成 BCD 碼,是很常見的,做而論道以前也發(fā)表過這樣的程序。但是,過去都是用寄存器,如果要求用片內RAM單元,就少見了。當然,也可以把片內RAM單元的數據,先傳送到寄存器,再利用以前寫的
本例為單字節(jié)二進制數(0X20)轉換為非壓縮BCD 碼,存在0X25,0X24,0X23 中,0X25 為百位,0X23 為個位。main: MOV a,@0xa4 ;賦值MOV 0x20,aMOV 0x21,aMOV 0x22,aMOV a,@0x0 ;0x23,0x24,0x25 單元清0MOV 0x23
兩字節(jié)壓縮BCD 碼轉換為兩字節(jié)二進制數。算法如下:BCD 碼abcd=1000a+100b+10c+d=10{10[10a+b]+c}+d,將各位BCD 碼分離出之后,即可根據此式轉換為二進制數。涉及到乘法運算和多字節(jié)加法運算。0X20,0X
將一個字節(jié)的二進制數轉換為兩位16 進制數的ASCⅡ碼main: mov a,@0x9f ;二進制數為0x9fmov 0x30,a ;二進制數存入0x30mov a,@0x02mov 0x10,a ;0x10 中存放轉換次數mov a,@0x31mov 0x04,a ;0x04 中為轉換