BCD碼也叫十進制編碼,它分為壓縮(一個字節存兩個十進制位)和不壓縮(一個字節存一個十進制位)兩種形式,下面我們以壓縮為例。
壓縮BCD碼分為8421碼、余3碼和格雷碼。
8421碼和十六進制很接近,就是去掉>9以上的值。
余3碼是無權碼,有較好的校驗性,具體就是編碼比被表示碼大3。
格雷碼是無權碼,相鄰的數只差1個二進制位,具有很強的抗干擾能力。
下面是三種編碼的表:
具體值: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
8421碼: 0000, 0001, 0010, 0011, 0100, 0101, 0110, 0111, 1000, 1001
余 3碼:0011, 0100, 0101, 0110, 0111, 1000, 1001, 1010, 1011, 1100
格雷碼: 0000, 0001, 0011, 0010, 0110, 0111, 0101, 0100, 1100, 1101
非壓縮的,就是前面4位2進制為0000
匯編語言可以對使用8421的BCD碼進行直接運算—
DAA:壓縮BCD碼加法
DAS:壓縮BCD碼減法
AAA:非壓縮BCD碼加法
AAS:非壓縮BCD碼減法
AAM:非壓縮BCD碼乘法
AAD:非壓縮BCD碼除法
非8421的可以采用上表轉換然后再運算。