汇编语言中add bh,48表示什么意思

如题所述

第1个回答  2011-06-19
+48是因为BCD码和数据有48的差值,譬如数字1的BCD码是1+48=49

其实是这样的,字符'0’的ASCII码是30H,就是48,这加上48,就是实现将数值0转换成字符'0',
依此类推,同样可以实现将数值1转换数字'1'等,一直到将9转换成'9'。
第2个回答  2011-06-19
bh寄存器的内容和48加合,结果放到bh寄存器中追问

这个我清楚,只是不知道这在程序中究竟代表什么意思?你帮忙分析一下:
displa:lea dx,mess1
mov ah,09h
int 21h
mov ax,letter
div ten ; 除以10,al得到商,ah得到余数
add al,48
mov bh,ah
mov ah,02h
mov dl,al
int 21h
add bh,48
mov ah,02h
mov dl,bh
int 21h

追答

明白了。你这程序的目的不是把你计算的结果输出出来么?
21h中断的02功能是输出字符,参数是DL中的字符BCD码

+48是因为BCD码和数据有48的差值,譬如数字1的BCD码是1+48=49

本回答被提问者采纳
相似回答