IT门户, 中国互联网人工智能物联网行业资讯平台--公众IT
新闻来源:互联网资料整理       发布时间:2023/4/6 5:34:34       共计:4627 浏览

你机器是64位cpu吧,你按32位汇编教材上的例子,64位机器上直接跑一旦涉及到内存地址必然会报段错误的。64位机器上函数调用方法也和32位不同了,即使不扯到内存地址,你的程序也没法达到目的的。

section .datareadfile: , .ascii "r"createfile: , .ascii "w"readfilepath: , .ascii "/home/cpp/compile/5/hey.s0"createfilepath: , .ascii "/home/cpp/compile/5/hey0".section .bss.equ BUFFER_SIZE, 500.lcomm BUFFER_DATA, BUFFER_SIZE.section .text#栈位置.equ ST_SIZE_RESERVE, 8.equ ST_FD_IN, -4.equ ST_FD_OUT, -8.equ END_OF_FILE, 0.globl _start_start: ,movl %esp, %ebp,subl $ST_SIZE_RESERVE, %espopen_files:open_fd_in: ,pushl $readfile ,pushl $readfilepath ,call fopenstore_fd_in: ,movl %eax, ST_FD_IN(%ebp)open_fd_out: ,pushl $createfile ,pushl $createfilepath ,call fopenstore_fd_out: ,movl %eax, ST_FD_OUT(%ebp)read_loop_begin: ,pushl ST_FD_IN(%ebp) ,pushl $BUFFER_SIZE ,pushl $BUFFER_DATA ,call fgets ,cmpl $0, %eax ,jle end_loopcontinue_read_loop: ,p
版权说明:
本网站凡注明“公众IT 原创”的皆为本站原创文章,如需转载请注明出处!
本网转载皆注明出处,遵循行业规范,如发现作品内容版权或其它问题的,请与我们联系处理!
您可以扫描右侧微信二维码联系我们。
网站首页 关于我们 联系我们 合作联系 会员说明 新闻投稿 隐私协议 网站地图