采用8086汇编语言把十进制转十六进制,
时间: 2023-10-19 19:16:06 浏览: 290
下面是一个简单的例子,可以将一个十进制数转换为两位的十六进制数,同样的方法可以用于转换更大的数:
```
; 8086汇编语言
MOV AX, 1234 ; 将十进制数1234存储到AX寄存器中
MOV BL, 16 ; 将16存储到BL寄存器中,用于除法运算
DIV BL ; 执行除法运算,将商存储在AL中,余数存储在AH中
ADD AH, 30h ; 将余数转换为十六进制字符
CMP AH, 40h ; 如果余数大于等于10,则需要加上7h才能转换为A~F
JGE ADD7 ; 如果余数大于等于10,则跳转到ADD7标签
ADD AH, 07h ; 如果余数小于10,则不需要加7h
ADD7:
ADD AL, 30h ; 将商转换为十六进制字符
CMP AL, 40h ; 如果商大于等于10,则需要加上7h才能转换为A~F
JGE ADD7_2 ; 如果商大于等于10,则跳转到ADD7_2标签
ADD AL, 07h ; 如果商小于10,则不需要加7h
ADD7_2:
MOV DL, AH ; 将余数存储到DL寄存器中,用于输出
MOV AH, 02h ; 设置输出功能号
INT 21h ; 调用21h中断,将余数输出
MOV DL, AL ; 将商存储到DL寄存器中,用于输出
MOV AH, 02h ; 设置输出功能号
INT 21h ; 调用21h中断,将商输出
```
这段代码将十进制数1234转换为十六进制数4D,其中30h是字符'0'的ASCII码,40h是字符'A'的ASCII码。
阅读全文