汇编写下strcpy

  1 #include <stdio.h>
  2
  3 int main()
  4 {
  5         char *source = "hello world\n";
  6         char dest[1024] = {0};
  7         char *p = dest;
  8         char c = ‘\0‘;
  9 #if 0
 10 loop:
 11         if(*(source + i) == ‘\0‘){
 12                 *(dest + i) = ‘\0‘;
 13                 goto exit;
 14         }
 15         *(dest + i) = *(source + i);
 16         i++;
 17         goto loop;
 18 exit:
 19 #else
 20         __asm__ __volatile__(
 21                 "ldr r2, [%2]\n"
 22                 "mov r0, #0\n"
 23                 "loop:\n"
 24                 "ldr r1, [%0, r0]\n"
 25                 "cmp r1, r2\n"
 26                 "beq exit\n"
 27                 "str r1, [%1, r0]\n"
 28                 "add r0, r0, #1\n"
 29                 "b loop\n"
 30                 "exit:\n"
 31                 :
 32                 :"r" (source), "r" (dest), "r" (&c)
 33                 :"r0", "r1", "r2", "memory"
 34         );
 35 #endif
 36
 37         printf("%s\n", p);
 38 }

注意:最后一行要写上保护(r1,r2,r3)否则会段错误。

时间: 2025-01-05 02:20:20

汇编写下strcpy的相关文章

五星crackme看着汇编写C已吐血

其实我一开始是冲着这个去了,一个神秘的CORE组织不知道为何物,好像很厉害的样子促就我想把他弄出来.软件是加壳的,这个没什么好讲的,开始就是pushad,于是在栈上下访问断点立马就能拿到magic jmp 然后下断,发现非常容易的断在了messagebox这个函数上,在栈区回溯到检查参数的上一层函数中,我决定写出注册机或者还原原码.于是这么愉快的跟自己决定了 从下午到晚上,我逐字字行慢慢来于是有了如下成果 1 // TEXme01Keygen.cpp : Defines the entry po

已知strcpy的函数原型:char *strcpy(char *strDest, const char *strSrc),编写函数 strcpy

已知strcpy的函数原型:char *strcpy(char *strDest, const char *strSrc)其中strDest 是目的字符串,strSrc 是源字符串.不调用C++/C 的字符串库函数,请编写函数 strcpy. /*编写strcpy函数(10分)已知strcpy函数的原型是??? char *strcpy(char *strDest, const char *strSrc);??? 其中strDest是目的字符串,strSrc是源字符串.(1)不调用C++/C的字

汇编语言学习3 汇编写exe

1.汇编语言源程序中有两种指令,一种 汇编指令,一种伪指令.2.汇编指令有对应的机器指令,最终为CPU所执行3.伪指令没有对应的机器指令,由编译器执行的4.assume,segment,ends,end均伪指令 第一步:编写汇编源代码 新建文本 1.txt 代码如下: assume cs:codesg  ;将cs寄存器和codesg代码段关联 codesg segment  ;codesg代码段开始 mov ax,0123Hmov bx,0456Hadd ax,bxadd ax,ax mov a

纸牌控件的编写(下)

就职百度期间,王劲分别创立了百度移动云事业部.百度大数据部.百度基础架构(云计算)部.百度美国研发中心.百度深圳研发中心:并以百度深度学习实验室(IDL)为基础,联合创立了百度研究院.在2010年4月到2015年4月的5年间,王劲同时还负责百度商业变现的技术与产品(凤巢). 2013年百度启动无人车项目,2015年12月14日,百度成立了自动驾驶事业部,王劲出任事业部总经理. 王劲一度成为百度无人车业务的代言人,直到2017年3月份,王劲离开百度,据腾讯<一线>报道,王劲与百度的分手并不愉快.

一个汇编写的boot程序

;系统引导程序 ;nasm boot.asm -o boot.bin ;反汇编 ;ndisasm -o 0x7c00 boot.bin >> disboot.asm ;调试程序 nasm boot.asm -o boot.com %define    _BOOT_DEBUG_    ;做引导程序将此行注释掉 %ifdef    _BOOT_DEBUG_ org    0100h        ;调试状态做成.com文件    %else org    07c00h        ;告诉编译器程

汇编写hello world

1 .global main 2 3 main: 4 mov ip, sp 5 stmfd sp!, {fp, ip, lr} 6 sub fp, ip, #4 7 8 ldr r0, =he 9 mov lr, pc 10 b printf 11 12 sub sp, fp, #8 13 ldmfd sp, {fp, sp, pc} 14 15 he: 16 .asciz "hello world\n" 17 .align 2

面向对象编写下拉菜单

css部分 <style type="text/css"> * { padding: 0; margin: 0; list-style: none; } .all { width: 330px; height: 30px; background: url(img/bg.jpg) no-repeat; margin: 100px auto; line-height: 30px; text-align: center; padding-left: 10px; margin-bo

strcpy在centos6.x,gcc4.4.7版本上会有bug,自我移动导致覆盖错误overlap

Gcc编译时无优化参数,以前曾经被-O坑过. #include <stdio.h> #include <string.h>   int main() {        char url[512];        sprintf(url,"218.26.242.56/0/0/1023/6d6168bf1a7294ae0e1c071171adcd48.mp4");        printf("%s\n",url);        char*p 

如何编写测试计划

俗话说:凡事预则立,不预则废!软件测试同样,在测试项目之初就要制定相应的测试计划.接下来谈下如何编写测试计划问题. 一.首先了解以下几个问题: 1. 为什么要编写测试计划? 1)领导能够根据测试计划做宏观调空,进行相应资源配置等: 2)测试人员能够了解整个项目测试情况以及项目测试不同阶段的所要进行的工作等: 3)便于其他人员了解测试人员的工作内容,进行有关配合工作 2. 什么时间开始编写测试计划? (测试需求分析前总体测试计划书/测试需求分析后详细测试计划书) 3. 由谁来编写测试计划? 具有丰