首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
拉钩
V2EX  ›  mintist  ›  全部回复第 1 页 / 共 11 页
回复总数  203
1  2  3  4  5  6  7  8  9  10 ... 11  
上个礼拜的后几天,搬瓦工和 vultr 都卡的不行,今天好多了,不晓得是不是中招了,,,
进来学习下,O__O "…
57 天前
回复了 nellace 创建的主题 程序员 近十年科技是不是停滞了
最近 10 年最大的科技进步就是计算力的移动化吧,得益于集成电路的发展,普适计算应该会进一步渗透到更广的地方。
@snnn 可能楼主和我一样,是给自己设计的芯片写代码,然后给别人用的,所以需要比较纠结这些细节,,,
楼主,来看看汇编代码就晓得为啥还是能取到地址了,把代码再精简下,然后结合汇编来看下。


精简的 C++代码:

```c
int main(void)
{

const int &a = 1; // 将变量 a 指向常量的地址,后面使用时可直接引用使用


return 0;
}
```

对应在 ARM-gcc 下的汇编代码:注释是后面添加的

```asm
main:
sub sp, sp, #8 ; 在函数内申请栈空间,通过偏移 sp 来实现

mov r3, #1 ; 将立即数放到寄存器 r3 中
str r3, [sp] ; 将 r3 的值推到栈中
mov r3, sp ; 将 sp 值也就是栈地址保存到 r3 中,也就是放置立即数 1 的内存地址
str r3, [sp, #4] ; 将放置立即数 1 的内存地址放在栈中(带偏置),也就是我们所需要的 a 变量的值,后面需要引用 a 所指向的值时,编译器就去这个地址取出来,再指过去就好了。

; ARM 体系结果默认把第 1 个返回值放到 r0 中,所以在 bx 之前把 r0 的值 0 准备好就可以了
mov r3, #0
mov r0, r3
add sp, sp, #8
bx lr
```

所以,回到“为什么 const 引用可以指向常量还可以取到地址?”这个问题,在汇编代码看来,就是先把立即数 1 放到存储空间(这里是栈空间,如果是全局变量,那么就会在链接时到.rodata 段内存空间),然后再把 a 变量的本身也存下(存的值就是 1 的地址),用的时候取出来指过去就可以了。



详见如下的链接: https://godbolt.org/#g:!((g:!((g:!((h:codeEditor,i:(j:1,lang:c%2B%2B,source:'int+main(void)%0A%7B%0A++++const+int+%26a+%3D+1%3B%0A++++return+0%3B%0A%7D%0A'),l:'5',n:'0',o:'C%2B%2B+source+%231',t:'0')),k:50,l:'4',n:'0',o:'',s:0,t:'0'),(g:!((h:compiler,i:(compiler:arm710,filters:(b:'1',binary:'1',commentOnly:'0',demangle:'0',directives:'0',execute:'1',intel:'0',trim:'0'),lang:c%2B%2B,libs:!(),options:'-fomit-frame-pointer',source:1),l:'5',n:'0',o:'ARM+gcc+7.2.1+(none)+(Editor+%231,+Compiler+%231)+C%2B%2B',t:'0')),k:50,l:'4',n:'0',o:'',s:0,t:'0')),l:'2',n:'0',o:'',t:'0')),version:4
这最后一句,,,⊙﹏⊙
首先,存储的是指纹的特征点,而不是指纹图像,而特征点你可以认为是指纹图像的某种哈希值(这个大家都是程序员应该都懂),是无法通过指纹特征点反向推出指纹图像的;(这也是为什么苹果说就算拿到了也是没有办法还原指纹信息的原因)

另外,指纹特征点数据的存储不管安卓( TEE,可信赖执行环境,是第三方机构做的,和厂商没有关系,其中要用到的硬件存储模块是 TrustZone )还是苹果(不太清楚),都是有一套机制保证的;

所以,据我所知目前国内主流厂商(除非没有名字的山寨)都是采用 TEE 来对指纹进行管理的,所以是很安全的(因为和厂商无关),另一方面,这个问题一旦出现是非常严重的,只要有牌子的厂商就不会在这一块动手脚。
131 天前
回复了 zynlp 创建的主题 程序员 北漂程序员一般能漂几年?
深飘 4 年,看不到头,准备回去了,,,
133 天前
回复了 zj299792458 创建的主题 问与答 有程序员完全不会 c 语言的吗?
@zj299792458 嵌入式还是 C 语言的天下吧,顶多被 C++ 稍微分点,Python 跑个 “ Hello World ” 还行,产品还是算了吧,,,
136 天前
回复了 houlin 创建的主题 问与答 请问 27 岁程序入门,该怎么规划?
加油,楼主,其实大多数研究生毕业也快 26,27 了,所以不算晚。
祝好,,,
231 天前
回复了 shayuvpn0001 创建的主题 程序员 硅工的春天来了?
我司有那么高了,,,
不会是取 special 的吧,,,
又有一大波被倒挂了,,,
313 天前
回复了 YogurtTnT 创建的主题 程序员 上海深圳哪个更适合程序猿呢
@douya0808 好远,,,
不过以后我也觉得往宝安方向发展,而不是惠州方向,,,
332 天前
回复了 junwuhui 创建的主题 全球工单系统 github 挂了
好吧,刚碰到,就过来看看,,,
发泄完,继续,,,
维护指针,不要维护拷贝,,,XD
@x86vk 还真有可能是同一拨人,因为屏下光学指纹对湿手指友好,XD
1  2  3  4  5  6  7  8  9  10 ... 11  
关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   786 人在线   最高记录 4019   ·  
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.1 · 31ms · UTC 19:15 · PVG 03:15 · LAX 11:15 · JFK 14:15
♥ Do have faith in what you're doing.
沪ICP备16043287号-1