概述
目的:从键盘输入五位十进制数的ASCII码,存放与3500H起始的内存单元中,将其转换为BCD码,再分别存入350AH起始的地址单元内。若输入不是十进制的ASCII,则对应存放结果的单元内容为“FF”。
设计思路:先对输入的ASCII码大小进行判断,判断其是否是在30H~39H范围内。若不在,则让其输出0FFH;若在该范围内,则将该数进行减30H的操作,所得差值即为该ASCII码对应的BCD码。
程序
SSTACK SEGMENT STACK
DW 64 dup(?)
SSTACK ENDS
CODE SEGMENT
ASSUME CS:CODE
START:MOV CX,0005H ;转换位数
MOV DI,3500H ;ASCII码的起始地址
A1: MOV BL,0FFH ;将错误标志存入BL
MOV AL,[DI] ;将ASCII码送入AL
;判断该ASCII是否大于3AH
CMP AL,3AH ;比较AL中ASCII码与3AH的大小
JNB A2 ;若AL中ASCII码大于或等于3AH则转A2
;判断该ASCII是否小于30H
SUB AL,30H ;将AL中值减去30H,将所得结果存入AL中
JB A2 ;小于30H则转A2
MOV BL,AL ;将已经转换后的BCD码送到BL
A2: MOV AL,BL
MOV [DI+0AH],AL;将最终转换结果送入结果保存区
INC DI
LOOP A1 ;判断是否转换完
MOV AX,4C00H
INT 21H ;结束程序
CODE ENDS
END START
最后
以上就是拼搏大米为你收集整理的【微机汇编语言学习笔记(四)】十进制数的ASCII转换为BCD码的全部内容,希望文章能够帮你解决【微机汇编语言学习笔记(四)】十进制数的ASCII转换为BCD码所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复