NSThread当调用start方法的时候,start方法就会调用main方法。那么这个main方法内部做了什么呢?下面是汇编码: 1 ;Foundation`-[NSThread main]: 2 -> 0x7fff2594fa69 <+0>: push rbp 3 0x7fff2594fa6a ...
分类:
其他好文 时间:
2020-07-11 17:11:22
阅读次数:
78
Volatile关键字 保证线程间共享变量的可见性、有序性。 如何保证可见性:多了一个Lock的汇编指令。 什么是可见性 硬件 运行速度:CPU > 内存 > IO设备;所以在硬件的使用中,为了提高效率 CPU增加了高速缓存 读数据时,从内存读,然后缓存到CPU缓存,线程修改变量时会先同步到缓存,再 ...
分类:
编程语言 时间:
2020-07-11 16:56:15
阅读次数:
61
;数据段d1 segment ;定义数据段为,名为:d1 ;定义数据 buff1 db 36,36h,101100B sum1 db ?,?,? buff2 dw 100,900fh,1234h sum2 dw 3 dup(?) d1 ends;附加段 e1 segment;代码 e1 ends;栈 ...
分类:
其他好文 时间:
2020-07-11 12:36:50
阅读次数:
96
1.自己写一个cpu,自己写一个内核,自己写一个编译器/编程语言,可以参考和学习国外mooc,一点都不超纲,主要是打好计算机基础。简单的编译器,实现parser,IR中间层指令到汇编等。 一个简单的内核,实现线程调度、syscall、虚拟内存管理等。 2..调试分析历史漏洞 http://www.w ...
分类:
其他好文 时间:
2020-07-10 09:21:06
阅读次数:
78
一、基础知识 1、Liunx汇编 主要寄存器:EAX、EBX、ECX、EDX、EBP、ESI、EDI、EIP、ESP(其中ESP是堆栈栈顶寄存器,EBP是堆栈基址指证针,EIP寄存器不能直接使用和修改。调用call时会修改EIP指针。EBP和ESP总指向同一个堆栈,EBP指向栈底,ESP指向栈顶) ...
分类:
其他好文 时间:
2020-07-09 20:57:31
阅读次数:
110
Windbg用户模式下,非托管代码,可以直接用bp命令设置断点。调试.Net 应用程序相对于非托管程序,要麻烦一些。因为.NET源码在编译的时候,首先是编译成IL文件,程序运行的时候,通过Load加载PE文件,然后JIT编译器负责将IL代码编译为汇编指令,然后执行。JIT编译器编译过后,就可以像非托 ...
分类:
数据库 时间:
2020-07-07 17:28:56
阅读次数:
69
1.函数: 函数就是一系列指令的集合,为了完成某个会重复使用的特定功能。 比如:MOV EAX,1 MOV ECX,1 就相当于一个函数(指令的集合) 2.函数的调用: (1)使用JMP来执行函数 使用JMP执行函数的话,JMP跳转到相应的指令后指令指针不再返回到原来位置的下一位: (2)使用CAL ...
分类:
其他好文 时间:
2020-07-06 19:28:06
阅读次数:
43
最新教程下载:http://www.armbbs.cn/forum.php?mod=viewthread&tid=93255 第13章 STM32F407启动过程详解 本章教程主要跟大家讲STM32F407的启动过程,这里的启动过程是指从CPU上电复位执行第1条指令开始(汇编文件)到进入C程序mai ...
分类:
其他好文 时间:
2020-07-06 15:57:40
阅读次数:
53
ID:技术让梦想更伟大 作者:李肖遥 wechat链接:https://mp.weixin.qq.com/s/b1jQDH22hk9lhdC9nDqI6w 相信大家写业务逻辑的时候,都是面向if、else、for、while、switch编程。但是你见过switch嵌套do..while吗? 先上代 ...
分类:
其他好文 时间:
2020-07-06 11:05:21
阅读次数:
162
1.1个CPU的寻址能力是8KB,它的地址总线的宽度是 13 8KB=8*1024B=8192B=213——一个CPU有N根地址线,那么可以说这个CPU的地址总线的宽度为N,这样的CPU最多可以寻找2的N次方个内存单元 2.1KB的存储器有 1024 个存储单元,存储单元的编号0-1023 3.1K ...
分类:
编程语言 时间:
2020-07-06 09:18:54
阅读次数:
70