一个小小的GAS汇编问题!~

C_program_Baby 2008-03-29 05:14:00
1 # gas command test
2 .section .data
3 value:
4 .int 1, 2, 3, 4, 5, 6
5 valu:
6 .quad 1, 2, 3, 4, 5, 6
7 .section .bss
8 .lcomm buffer,100
9 .section .text
10 .equ LINUX, 5
11 .globl _start
12 _start:
13 nop
14 pushl $0
15 call exit
16
~
我用GDB调试后 x /6gd &valu 它说没有定义valu这个符号 这是怎么回事?
...全文
96 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
rainsome 2009-01-06
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 hdyd 的回复:]
引用 3 楼 fetag 的回复:
我的是64位的机器,所以pushl改成了pushw


汇编程序已经支持64位了啊?
[/Quote]
不支持,那么64位系统如何生成的。
hdyd 2009-01-04
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 fetag 的回复:]
我的是64位的机器,所以pushl改成了pushw
[/Quote]

汇编程序已经支持64位了啊?
xiaopoy 2009-01-04
  • 打赏
  • 举报
回复
你编译时在选项中设置了 去掉汇编符号.
独孤过儿 2008-03-30
  • 打赏
  • 举报
回复
我的是64位的机器,所以pushl改成了pushw
独孤过儿 2008-03-30
  • 打赏
  • 举报
回复

[root@cv0005759d1 stack]# vim love.s

#gas command test
.section .data
value:
.int 1, 2, 3, 4, 5, 6
valu:
.quad 1, 2, 3, 4, 5, 6
.section .bss
.lcomm buffer, 100
.section .text
.equ LINUX, 5
.global _start
_start:
nop
pushw $0
call exit
~
"love.s" 15L, 206C written
[root@cv0005759d1 stack]# as -gstabs love.s -o love.o
[root@cv0005759d1 stack]# ld -dynamic-linker /lib/ld-linux.so.2 -lc love.o -o love
[root@cv0005759d1 stack]# gdb ./love
GNU gdb Red Hat Linux (6.5-25.el5rh)
Copyright (C) 2006 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "x86_64-redhat-linux-gnu"...Using host libthread_db library "/lib64/libthread_db.so.1".

(gdb) l
1 #gas command test
2 .section .data
3 value:
4 .int 1, 2, 3, 4, 5, 6
5 valu:
6 .quad 1, 2, 3, 4, 5, 6
7 .section .bss
8 .lcomm buffer, 100
9 .section .text
10 .equ LINUX, 5
(gdb) l
11 .global _start
12 _start:
13 nop
14 pushw $0
15 call exit
(gdb) b 14
Breakpoint 1 at 0x400231: file love.s, line 14.
(gdb) r
Starting program: /home/stack/love
/bin/bash: /home/stack/love: Accessing a corrupted shared library
/bin/bash: /home/stack/love: Success

Program exited with code 01.
You can't do that without a process to debug.
(gdb) x/6gd &valu
0x6003b8 <valu>: 1 2
0x6003c8 <valu+16>: 3 4
0x6003d8 <valu+32>: 5 6
(gdb)
用户 昵称 2008-03-29
  • 打赏
  • 举报
回复
valu已经变成了数值了吧。

21,459

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧