8086汇编代码:将BCD码拆分并转换为ASCII码
假设BCD码存储在AL寄存器中,转换后的ASCII码分别存储在两个RAM单元中,地址为0x1000和0x1001。
MOV AH, 0 ; 清零AH寄存器
MOV BL, 10 ; 将BL寄存器置为10,用于BCD码转换
; 处理高四位BCD码
MOV AL, [BCD_ADDR] ; 从BCD码存储单元读取BCD码
AND AL, 0xF0 ; 取出高四位BCD码
SHR AL, 4 ; 右移4位,得到真实的数值
ADD AL, 0x30 ; 加上0x30,转换成ASCII码
MOV [HIGH_ADDR], AL ; 存储到高位RAM单元
; 处理低四位BCD码
MOV AL, [BCD_ADDR] ; 从BCD码存储单元读取BCD码
AND AL, 0x0F ; 取出低四位BCD码
ADD AL, 0x30 ; 加上0x30,转换成ASCII码
MOV [LOW_ADDR], AL ; 存储到低位RAM单元
RET
BCD_ADDR DW 0x2000 ; BCD码存储地址
HIGH_ADDR DW 0x1000 ; 高位ASCII码存储地址
LOW_ADDR DW 0x1001 ; 低位ASCII码存储地址
原文地址: https://www.cveoy.top/t/topic/lM0K 著作权归作者所有。请勿转载和采集!