⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 subject_47830.htm

📁 一些关于vc的问答
💻 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>内容:&nbsp;&nbsp;转换步骤:<BR>&nbsp;&nbsp;&nbsp;&nbsp;将十进制数转换成BCD码要经过以下三步: <BR>&nbsp;&nbsp;&nbsp;&nbsp;1. 取ASCII码的低四位(即十进制数的BCD码表示)。可用指令有(设ASCII码放在AL中): <BR>&nbsp;&nbsp;&nbsp;&nbsp;SUB AL,30H&nbsp;&nbsp;&nbsp;&nbsp;<BR> 或 AND AL,0FH <BR>&nbsp;&nbsp;&nbsp;&nbsp;2. 将高字节ASCII码左移四位(其高四位即为BCD码)。可用指令有(设ASCII码放在AH中): <BR>&nbsp;&nbsp;&nbsp;&nbsp;MOV CL,4 <BR>&nbsp;&nbsp;&nbsp;&nbsp;SHL AH,CL&nbsp;&nbsp;<BR> 或 SAL AH,CL <BR>&nbsp;&nbsp;3.将两字节的BCD码相加  <BR>转换举例:<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;将十制数65的ASCII码转换成组合的BCD码,过程如下: <BR>&nbsp;&nbsp;&nbsp;&nbsp; 5的ASCII码为00110101,取其低四位 0000 0101。将6的ASCII码 0011 0110左移四位得 0110 0000。将两数相加得 0110 0101就是65的组合的BCD码。 <BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;例:试编出将10位用ASCII码表示的十进制数转换成BCD码,并以组合的BCD码形式(高地址字节在左四位)存储在缓冲区的程序。<BR><BR>&nbsp;&nbsp;分析:首先将每个数字的ASCII码转换成BCD码,然后将相邻两单元十进制数的BCD码组合在一起,且地址高的放在左四位,这样可以节省一半的存储单元。<BR> 源程序:<BR>ASCBUF&nbsp;&nbsp; DB 37H,34H,35H,39H,31H <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DB 36H,38H,32H,33H,30H <BR>COUNT&nbsp;&nbsp;&nbsp;&nbsp;EQU $-ASCBUF <BR>BCDBUF&nbsp;&nbsp; DB 5 DUP (?) <BR>DATA&nbsp;&nbsp;&nbsp;&nbsp; ENDS <BR>CODE&nbsp;&nbsp;&nbsp;&nbsp; SEGMENT <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ASSUME CS:CODE,DS:DATA,ES:DATA <BR>ASCTOBCD PROC FAR <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PUSH DS <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SUB AX,AX <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PUSH AX <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV AX,DATA <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV DS,AX <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV ES,AX <BR>START:&nbsp;&nbsp; MOV SI,OFFSET ASCBUF <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV DI,OFFSET BCDBUF <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV CX,COUNT <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TEST CL,01H <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; JE NEXT <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV AL,[SI] <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AND AL,0FH <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV [DI],AL <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; INC SI <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; INC DI <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DEC CX <BR>NEXT:&nbsp;&nbsp;&nbsp;&nbsp;ROR CX,1 <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CLD <BR>NEXT1:&nbsp;&nbsp; LODSB <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AND AL,0FH <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV BL,AL <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LODSB <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PUSH CX <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV CL,4 <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SAL AL,CL <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; POP CX <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ADD AL,BL <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; STOSB <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LOOP NEXT1 <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RET <BR>ASCTOBCD ENDP <BR>CODE&nbsp;&nbsp;&nbsp;&nbsp; ENDS <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 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 + -