当前位置: 首页 > news >正文

网站建设设计维片会员营销

网站建设设计维片,会员营销,江津网站建设,wordpress 用户注册邮件需要有两点注意: .type在windows的mingw上无法识别。windows下编译会找不到my_strcpy的定义(undefined reference),通过看mingw的代码发现,它会在汇编函数前加一个下划线,所以在我们的汇编代码中加上下划线…

需要有两点注意:

  1. .type在windows的mingw上无法识别。
  2. windows下编译会找不到my_strcpy的定义(undefined reference),通过看mingw的代码发现,它会在汇编函数前加一个下划线,所以在我们的汇编代码中加上下划线即可。

维基百科中关于cdecl的阐述,中文版有一条:编译后的函数名前缀以一个下划线字符,但英文版中没有这一条。
且加上下划线后在windows下mingw虽然不再报错,但在linux下gcc又会报undefined reference。
具体原因尚不明确。

32位

.text.globl my_strcpy
.type my_strcpy, @function #.type伪指令在windows下编译会无法失败,可以去掉my_strcpy:movl 8(%esp), %edx	#sourcemovl 4(%esp), %eax	#destpushl %ebp			#保存旧栈底movl %esp, %ebp 	#保存栈顶,结束时恢复movb (%edx), %cl 	#从source取一个字节,放到cltest %cl, %cl		#判断cl是否为0je return			#为0就returnbody:movb %cl, (%eax) 	#把从source取的一个字节放到destmovb 1(%edx), %cl	#取source的下一个字节inc %eax			#递增dest索引inc %edx			#递增source索引test %cl, %cl		#判断取的字节是否为0jne body			#不为0就继续循环return:movl $0, (%eax)		#给dest的字符串结尾加上'\0'movl %ebp, %esp		#恢复栈顶popl %ebp			#恢复栈底ret					#返回

64位

.text.globl my_strcpy
.type my_strcpy, @function_my_strcpy:pushq %rbpmovq %rsp, %rbpmovq %rdi, %rdx #destmovq %rsi, %rax #srcmovb (%rax), %cltest %cl, %clje return
body:movb %cl, (%rdx)movb 1(%rax), %clinc %raxinc %rdxtest %cl, %cljne bodyreturn:movq $0, (%rdx)movq %rbp, %rsppopq %rbpret

使用

main.c:

#include <stdio.h>extern void my_strcpy(char*, const char*);int main(void)
{char str_1[1024];char str_2[]="hello world";my_strcpy(str_1, str_2);puts(str_1);
}

假设my_strcpy定义在my_strcpy.s汇编代码文件中。

对于32位,编译:gcc main.c my_strcpy.s -o main -m32,64位不带-m32就行了。

链接器可能会报可执行堆栈的警告:

/usr/bin/ld: warning: /tmp/ccJvbhJo.o: missing .note.GNU-stack section implies executable stack
/usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker

可以加上-z noexecstack,或者在汇编代码里面加上这一行:

.section	.note.GNU-stack,"",@progbits
http://www.bjxfkj.com.cn/article/104813.html

相关文章:

  • 山西做网站优势深圳网页设计公司
  • 深圳网站建设公司平台百度代理
  • 抄袭网站怎么办网站收录网
  • 用虚拟机做服务器搭建网站站长工具网站推广
  • 专业广州网站建设百度一下你就知道下载安装
  • 国外网站怎么上巢湖网站制作
  • 在哪了做网站semi final
  • 网站后台登陆不了搜狗整站优化
  • 企业网站主题大连中小企业网络营销
  • 昆明市党风廉政建设网站百度灰色关键词代发
  • 触摸屏网站如何做站长域名查询
  • 设计学网站昆明长尾词seo怎么优化
  • wordpress dokan长春seo公司
  • wordpress 用户登陆后跳转到首页东莞seo排名公司
  • 武汉市做网站的公司河北seo推广方案
  • 陕西网站建设的内容谷歌浏览器搜索入口
  • 做美图网站有哪些东西茶叶网络营销策划方案
  • 网站执行速度关键seo排名点击软件
  • 12306网站是哪个公司做的数据分析培训班
  • 推广软件app赚钱联盟网站优化 seo和sem
  • 做网站动图的软件西安seo顾问培训
  • 工业设计网官网东莞seo计费
  • 做网站常州万网域名注册流程
  • 网站运营今天晚上19点新闻联播直播回放
  • 音乐网站开发四川seo选哪家
  • 问答网站开发江东怎样优化seo
  • 硅胶鞋垫移动网站建设网站优化哪个公司好
  • 网站开发工程师 面试英语seo关键词排名优化系统
  • 网站制作的页面比例优化营商环境的意义
  • 网站建设服务商 需要什么主机百度关键词优化平台