陆续一些常用函数汇编实现

原创 2006年06月07日 16:37:00

//字符串拷贝
void strcpy(const char *src, char *dest)

{

       char ch;

       __asm

       {

         loop:
              ldrb       ch, [src], #1
              strb       ch, [dest], #1
              cmp        ch, #0
              bne         loop

       }
}

//int转字符串
void I2S(int isource, char* desstr)
{
 char ch, i=sizeof(isource)*2, temp = 0, is =0;
 if(isource==0)
 {
  *desstr = '0';
  *(desstr+1)=0;
  return;
 }
 if(isource<0)
 {
  *desstr='-';
  desstr++;
  isource=-isource;
 }
 desstr--;
 __asm
 {
 loop:
  mov ch, #'0'
  add ch, ch, isource, lsr#28
  mov isource, isource, lsl#4
  sub temp,ch, #'0'
  orr is, temp, is
  cmp is, #0
  beq loop1
  mov is, #0xFF
  strb ch, [desstr,#1]!
 loop1:
  sub i, i, #1
  cmp i, #0
  bne loop
 }
 
 *(++desstr) = 0;
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

x64平台AT&T汇编实现快速排序函数

代码如下,思路和c实现大同小异,主要是寄存器的使用以及地址的使用,具体参见注释。 # void qsort(int* start, int* end) ...

VS2017中实现C程序调用汇编函数

VS2017中实现C程序调用汇编函数使用的开发环境 windows10 visual studio community 2017 操作过程 新建一个Win32控制台程序, 便于测试在源文件目录下添加 ...

gdb反汇编详解C函数底层实现笔记

这篇文章对于初学者是很有帮助的,我把它转载过来。

gdb反汇编详解C函数底层实现笔记(程序堆栈、内存分配)

以下是在读《深入理解计算机系统》前面的章节“程序的机器级表示”时,自己动手在linux上使用了gdb对一个简单的C程序进行反汇编,通过不懈的努力终于查清楚弄明白了绝大多数的语句。且均以注释的形式列在汇...

C语言函数调用的汇编实现

int fun2() { return 2; } int fun1(int a, int b, int c, int d, int e, int f, int g, int h, int i, i...

用汇编实现数字转化为字符串的函数itoa

对于熟悉C语言的大家来说说,itoa这个函数大家一定不会陌生。itoa是广泛应用的非标准C语言扩展函数,它的功能是:将任意类型的数字转换为字符串。 为了更加清楚地让我们知道,如何使用汇编语言...

汇编综合研究5 实现printf函数

根据综合研究5的showchar()函数,可以了解参数都是由栈传递的,所要传递参数的个数也可以由栈传递。那么printf函数要输出的参数肯定也是由栈传递。另外一点就是printf函数肯定有某种信息,这...

05 printf函数可变参数的实现原理之汇编分析

如实现一个像printf函数格式的函数: test.c void myprintf(char *line, ...) // line指针变量是局部变量,在栈里分配空间 { prin...

【汇编】命令行下获取用户输入,实现类似C语言fgets函数功能

程序运行时经常需要获取用户输入以完成特定功能。那么,汇编如何实现类似C语言的fgets函数(在命令行下输入字符串,按回车即给某变量赋值)功能呢?貌似没有现成的中断可以调用!但这又是经常要用到的功能,所...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)