VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > 编程开发 > 汇编语言 >
  • 用汇编语言实现itoa函数

近日放假在家,开始研究起汇编语言,看了几日,小有成就。今天晚上有空,写了一个程序,实现C函数库中的itoa()函数的功能,也就是把整数转换成字符串,这是鄙人第一个独立写的汇编程序,肯定有不妥的地方,望高手指正。

 

复制代码
;子程序名:  ITOA
;功  能:  将16位有符号整数转换为字符串
;入口参数:  DS:SI=缓冲区首地址
;          AX=要转换的数
;出口参数:  转换后的字符在缓冲区中
ITOA      PROC
          
PUSH     BX          ;保护寄存器
          PUSH     CX
          
PUSH     DX
          
PUSH     SI
          
;
          ROL      AX,1        ;循环左移,判断符号位
          ROR      AX,1        ;恢复原数
          JNC      POS 
          
DEC      AX          ;减1
          XOR      AX,0FFFFH   ;取反
          MOV      [SI],'-'    ;负号
          INC      SI
POS:      XOR      CX,CX       ;位数计数器清零
          XOR      DX,DX
          
MOV      BX,10       ;设置除数
NEXT1:    DIV      BX
          
PUSH     DX          ;余数入栈
          INC      CX
          
OR       AX,AX       ;判断商是否为0
          JZ       NEXT2
          
XOR      DX,DX
          
JMP      NEXT1
          
;
NEXT2:    POP      DX          ;构建字符串
          ADD      DL,'0'
          MOV      [SI],DL
          
INC      SI
          LOOP     NEXT2
          
;
          MOV      [SI],0       ;字符串结束符,或为'$'
          ;
          POP      SI           ;恢复寄存器
          POP      DX
          
POP      CX
          
POP      BX
          
RET
ITOA      ENDP

复制代码
 
原文:https://www.cnblogs.com/roovent/archive/2009/01/27/1381056.html


相关教程