汇编里面内存访问的一个小疑问
各位,问个简单的问题,在网上搜索了许久,都掌握不了要点。
在linux里面用nasm写一段小代码
如:
...
prompt_msg1 db "abc",0
prompt_msg2 db "hi",0
...
编译成功后,我用GDB查看这两个变量的地址
输入命令 (gdb) x/2sb &prompt_msg1
得到
0x80493e4 "abc"
0x80493e8 "hi"
输入命令 (gdb) x/nfu 0x80493e4
查看0x80493e4这个地址存储的值,得到:
0x80493e4 97
97为a的ASCI的值
我刚开始接触汇编编程,现在搞不懂的是:
1. 0x80493e4和0x80493e8这两个是什么地址? 是真实的物理地址还是逻辑地址?
2. 0x80493e4这个地址存放在哪里?是放在内存里面吗?
3. 97这个数值是直接存储在0x80493e4的吗?怎么存的?从0x80493e4到0x80493e8存不了3个字节吧,如果不是,那么是怎么通过0x80493e4找到97的,0x80493e4上只能存0或1吧,存储97要8个bit
问题太多了,请大家帮下忙,谢谢。