19.补全下列程序:将AL中的二进制数看成是压缩BCD码。 MOV DL, AL ( ) SHR DL,CL ADD DL30H MOV DL, AL ( OR DL,30H
时间: 2024-04-22 17:27:14 浏览: 122
小白verilog写的用移位加三法把二进制转BCD码的小程序
5星 · 资源好评率100%
补全后的程序如下:
将AL中的二进制数看成是压缩BCD码。
MOV DL, AL ; 将AL中的值复制到DL中
SHR DL, CL ; 将DL向右移CL位,得到高4位的BCD码
ADD DL, 30H ; 将DL中的高4位BCD码转换为ASCII码
MOV AH, DL ; 将DL中的ASCII码存入AH中
MOV DL, AL ; 将AL中的值复制到DL中
AND DL, 0FH ; 将DL的值与00001111B按位与,得到低4位的BCD码
OR DL, 30H ; 将DL中的低4位BCD码转换为ASCII码
MOV AL, DL ; 将DL中的ASCII码存入AL中
程序的执行过程是:首先将AL中的值复制到DL中,然后将DL向右移CL位,得到高4位的BCD码。由于压缩BCD码的每个数字都是4位BCD码,因此需要将高4位的BCD码转换为ASCII码,即将其加上30H。接着将DL中的ASCII码存入AH中,表示高4位的数字已经转换为ASCII码。
然后将AL中的值再次复制到DL中,接着将DL的值与00001111B按位与,得到低4位的BCD码。同样地,需要将低4位的BCD码转换为ASCII码,即将其加上30H。最后将DL中的ASCII码存入AL中,表示低4位的数字已经转换为ASCII码。这样,AL中的值就是将压缩BCD码转换为ASCII码后得到的结果。
阅读全文