壓縮型bcd碼的轉(zhuǎn)化 壓縮BCD碼轉(zhuǎn)換成ASCII碼?
壓縮BCD碼轉(zhuǎn)換成ASCII碼?代碼段假定CS:Code,DS:Code BCD編號DB 45h,32H,56h,98H DW 6 dup(?)開始:push CS pop DS push CS po
壓縮BCD碼轉(zhuǎn)換成ASCII碼?
代碼段假定CS:Code,DS:Code BCD編號DB 45h,32H,56h,98H DW 6 dup(?)開始:push CS pop DS push CS pop es使數(shù)據(jù)段、附加段和代碼段成為同一段CLD、Lea Si、BCD編號Lea di、BCD編號[8]mov CX、2 Rep movsw將這四個字節(jié)的壓縮BCD代碼保存到后續(xù)單元Lea Si,BCD 8字節(jié)之外的字節(jié)數(shù)[8]lea di,BCDunumber mov cx,4 BCDuascii:lodsb push cx mov cx,4 xor ah,ah shl ax,cl shr al,cl or ax,3030h xchg ah,al stosw pop cx loop BCDuascii Exituproc:mov ah,4CH end program int 21h code ends end start
BCD表示二進制編碼的十進制數(shù)
!]用十六進制表示二元時,方便,4位二進制縮寫為1位十六進制)
用十六進制表示10元時,因為最小單位通常是1字節(jié)(8位)
例如,10元數(shù)15的十六進制是0f(8位),所以f之前的0是浪費的。
這是未壓縮的BCD代碼,對于915意味著090f,而壓縮的BCD代碼使用4位。例如915直接表示為9F
看,不同的是BCD碼是8位的,4位的浪費用0填充,壓縮的BCD碼是4位的,沒有浪費
BCD碼代表十進制數(shù),非壓縮的BCD碼代表8位,其實只有4位低位,4位高位都是0。
例如,十進制數(shù)字36用未壓縮BCD代碼表示為:0000001100000110,即兩個字節(jié)。
壓縮BCD代碼,省略0的高位四位,用一個字節(jié)表示兩個BCD代碼。
或者,十進制數(shù)字36,用壓縮BCD代碼表示:00110110,只有一個字節(jié)。已保存一個字節(jié)。