一段最短利用递归的整数转换字符串函数,支持多种进制(2,8,10,16)

minl 2008-04-23 08:01:10

[code=Assembly]
/** input
* eax=register to convert
* ecx=register to base (2,8,10,16)
* edi =storage pointer for ascii string
* edx =register to temp
*/
_convert:
xorl %edx,%edx
divl %ecx
pushl %edx
orl %eax,%eax
jz _store
call _convert //recurse
_store:
popl %eax
cmpb $10,%al
jl _L0
addb $('A'-10), %al
jmp _L1
_L0: orb $'0', %al
_L1: stosb
ret
[/code]
...全文
111 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
meiZiNick 2008-05-01
  • 打赏
  • 举报
回复
不会,帮顶
用户 昵称 2008-04-23
  • 打赏
  • 举报
回复
还别说,没有 [ebp - 08]之类的指令,俺还真能看懂。
minl 2008-04-23
  • 打赏
  • 举报
回复

/** input
* eax=register to convert
* ecx=register to base (2,8,10,16)
* edi =storage pointer for ascii string
* edx =register to temp
*/
_convert:
xorl %edx,%edx
divl %ecx
pushl %edx
orl %eax,%eax
jz _store
call _convert //recurse
_store:
popl %eax
cmpb $10,%al
jl _L0
addb $('A'-10), %al
jmp _L1
_L0: orb $'0', %al
_L1: stosb
ret

21,459

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧