微机原理与接口技术——十六进制数转十进制
实验内容: 将键盘输入的十六进制数转换为十进制输出。 实验原理 首先利用dos功能调用,读取输入的两位十六进制的第一位数字,首先判断输入的字符是否在0-9、a-f、A-F之间,如果不在则程序直接退出,如果在则将大写字母减37h,小写字母减57h,数字减30h,然后乘以十六后以二进制的形式暂存在bl当中,同理输入第二位数字,与bl相加,然后判断bl是否大于99,如果大于99,则先除以100将百位数显示出来,同理显示十位和个位数字,如果小于99,则直接除以10显示十位数,然后显示个位数字。 代码附录如下: code segment assume cs : code start : push ds sub ax , ax push ax mov bx , 0 mov dx , 0 mov cx , 10 ; 初始化 , 设置循环次数为 10 次 xunhuan : mov ah , 1 int 21 h ; 读入第一位 cmp al , '0' jb aa cmp al , '9' ja dayu91 sub al , '0' ; 减去 30 H jmp zhixing dayu91 : cmp al , 'A' jb aa cmp al , 'F' ja dayuF1 sub al , 37 h ; 减去 60 H jmp zhixing dayuF1 : cmp al , 'a'