📄 subject_47830.htm
字号:
<p>
序号:47830 发表者:BAMBAM 发表日期:2003-07-24 16:58:35
<br>主题:急求“编写一个程序,实现ASCII码和BCD码的转换”
<br>内容:help 给我一个基本计算公式
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:风之文章 回复日期:2003-07-24 17:21:42
<br>内容: 转换步骤:<BR> 将十进制数转换成BCD码要经过以下三步: <BR> 1. 取ASCII码的低四位(即十进制数的BCD码表示)。可用指令有(设ASCII码放在AL中): <BR> SUB AL,30H <BR> 或 AND AL,0FH <BR> 2. 将高字节ASCII码左移四位(其高四位即为BCD码)。可用指令有(设ASCII码放在AH中): <BR> MOV CL,4 <BR> SHL AH,CL <BR> 或 SAL AH,CL <BR> 3.将两字节的BCD码相加 <BR>转换举例:<BR><BR> 将十制数65的ASCII码转换成组合的BCD码,过程如下: <BR> 5的ASCII码为00110101,取其低四位 0000 0101。将6的ASCII码 0011 0110左移四位得 0110 0000。将两数相加得 0110 0101就是65的组合的BCD码。 <BR><BR> 例:试编出将10位用ASCII码表示的十进制数转换成BCD码,并以组合的BCD码形式(高地址字节在左四位)存储在缓冲区的程序。<BR><BR> 分析:首先将每个数字的ASCII码转换成BCD码,然后将相邻两单元十进制数的BCD码组合在一起,且地址高的放在左四位,这样可以节省一半的存储单元。<BR> 源程序:<BR>ASCBUF DB 37H,34H,35H,39H,31H <BR> DB 36H,38H,32H,33H,30H <BR>COUNT EQU $-ASCBUF <BR>BCDBUF DB 5 DUP (?) <BR>DATA ENDS <BR>CODE SEGMENT <BR> ASSUME CS:CODE,DS:DATA,ES:DATA <BR>ASCTOBCD PROC FAR <BR> PUSH DS <BR> SUB AX,AX <BR> PUSH AX <BR> MOV AX,DATA <BR> MOV DS,AX <BR> MOV ES,AX <BR>START: MOV SI,OFFSET ASCBUF <BR> MOV DI,OFFSET BCDBUF <BR> MOV CX,COUNT <BR> TEST CL,01H <BR> JE NEXT <BR> MOV AL,[SI] <BR> AND AL,0FH <BR> MOV [DI],AL <BR> INC SI <BR> INC DI <BR> DEC CX <BR>NEXT: ROR CX,1 <BR> CLD <BR>NEXT1: LODSB <BR> AND AL,0FH <BR> MOV BL,AL <BR> LODSB <BR> PUSH CX <BR> MOV CL,4 <BR> SAL AL,CL <BR> POP CX <BR> ADD AL,BL <BR> STOSB <BR> LOOP NEXT1 <BR> RET <BR>ASCTOBCD ENDP <BR>CODE ENDS <BR> END ASCTOBCD
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:BAMBAM 回复日期:2003-07-24 21:12:40
<br>内容:太深奥了 ^0^<BR>大概知道了,有没有大哥能给我C程序,汇编只能看不能用 呵呵
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:野猫 回复日期:2003-07-24 23:14:07
<br>内容:看了一下一楼的程序,实际上就是说:每个字符,ASCII码的低四位就是BCD码<BR><BR>楼主会编了吧?
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:BAMBAM 回复日期:2003-07-25 17:26:41
<br>内容:不知道如何用C++描述 哪位高手点播一下?
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -