这个又是什么意思,求详细解答,谢谢
发布网友
发布时间:2022-05-09 18:48
我来回答
共2个回答
热心网友
时间:2023-07-20 20:57
;这个程序是将压缩BCD码的两位十进制数转成二进制数
MOV AL, 66H ; 待转换的数是十进制数66,压缩BCD编码
CALL BCD2BIN ; 调用转换子程序进行编码转换
BCD2BIN PROC NEAR ; 转换子程序
PUSH CX ; 子程序中要改变CX,故先保存到堆栈
MOV CH, AL ; 将BCD数放到CH中,准备分离BCD十位数(放AL中)和个位数(放CH中)
AND CH, 0FH ; 将CH的高4位清零,留下BCD个位数
MOV CL, 4 ; 将AL中数右移4位
SHR AL, CL ; 移位后,BCD个位数丢弃,BCD十位数移到低4位。分离完成。
MOV CL, 10 ;
MUL CL ; 将这个原BCD十位数乘以10
ADD AL, CH ; 将乘以10以后的BCD十位数,与BCD个位数相加,得到转换结果
POP CX ; 返回前,恢复CX
RET ; 返回
BCD2BIN ENDP
程序的算法分为几个步骤:
1. 分离并整理BCD十位数和个位数,将BCD个位数放到CH,BCD个位数放在AL
2. 将BCD十位数的二进制值乘以10,再和BCD个位数的二进制值相加,得到转换后的二进制数。
程序运行后,AL=42H
`来自:求助得到的回答
热心网友
时间:2023-07-20 20:57
是把 BCD 码转换成 BIN 的程序。
最后,AL = 42H。