| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1455 人关注过本帖
标题:[原创]进制数据输出的通用程序
取消只看楼主 加入收藏
liyun2060
Rank: 2
等 级:新手上路
威 望:3
帖 子:22
专家分:0
注 册:2007-9-2
收藏
 问题点数:0 回复次数:0 
[原创]进制数据输出的通用程序
*/ --------------------------------------------------------------------------------------
*/ 出自: 编程中国 http://www.bc-cn.net
*/ 作者: liyun2060 E-mail:blakcuttlefish@hotmail.com
*/ 时间: 2007-9-5 编程论坛首发
*/ 声明: 尊重作者劳动,转载请保留本段文字
*/ --------------------------------------------------------------------------------------


昨天看了别人的文章,然后写了一个进制输出的程序,程序实在是太乱了。并且可调试性也很差。于是今天重新写了一个。

进制输出的原理很简单,就是先建一个‘0123456789ACDEF’的数据表

然后根据 除(2,10或者16 这要看你想以什么进制数据形式输出了) 取余,再拿商去除(2,10,16) 再取余的原理。 拿余数跟数据表比较,取得相应的ASCII码。

哎说不清楚,还是看程序吧。自认为程序写的还算清晰明了

assume cs:codes
codes segment

start:
mov ax,cs
mov ds,ax
mov ax,0b800h

mov es,ax

mov cl,2
mov dl,011111111b
call data_turn
mov cx,ax
mov di,160*10+40
moves: mov ah,[si]
mov es:[di],ah
inc si
add di,2
loop moves
mov ah,04ch
int 21h

;/**////////////////////////////////////////////////////////////////////////////////转换程序开始nc
;数制转换通用程序
;功能:将内存中的数据转换成以2进制 16进制 或 10进制 表示的 相应的ASCII码字符串
;进口参数CL 需要转换成的进制
;进口参数DL 被转换数
;出口参数AX 转换后的字符串的长度
;出口参数SI 转换后的字符串的起始偏移地址 段地址为CS

data_turn proc
jmp turn_start
table_t1 db '0123456789abcdef'
table_t2 db 8 dup(?) ;用来存储转换后的数据
turn_start: push ds
push bx

mov ax,cs
mov ds,ax
mov si,7
mov al,dl
cmp al,0
je dl_zero ;如果被转换数为0 则直接将0写入table_t2+7处
LP: xor bh,bh
xor ah,ah
DIV cl
mov bl,ah
mov bh,table_t1[bx]
mov table_t2[si],bh
dec si
cmp al,0
je turn_end
jmp LP


dl_zero: mov ds:[table_t2+7],'0'
mov ax,1
lea si,table_t2
add si,7
jmp over
turn_end: mov ax,7
sub ax,si
lea si,table_t2
add si,8
sub si,ax

over: pop bx
pop ds
ret
data_turn endp
;/**//////////////////////////////////////////////转换程序结束

codes ends
end start

搜索更多相关主题的帖子: 进制 数据 输出 
2007-09-05 09:28
快速回复:[原创]进制数据输出的通用程序
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015181 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved