X86 寻址方式经历三代: 1 DOS时代的平坦模式,不区分用户空间和内核空间,很不安全2 8086的分段模式3 IA32的带保护模式的平坦模式ISA指令集体系结构,机器级程序的指令和格式。它定义了处理状态,指令的格式,以及每条指令对状态的影响。获得汇编代码的两种方式:gcc -S xxx.c -o...
分类:
其他好文 时间:
2015-10-11 12:53:41
阅读次数:
199
如果不是Apple,不是App Store,Object-C恐怕早就淡出人们的视线了。大部分编程语言都是基于C语法风格的,所以初次接触这个非C风格的语言,会看不懂它那怪异的语法。但如果掌握了它之后,也并不会觉得它又太多的不同。今天记录一下它的底层运作。1: 类Class:typedef struct...
分类:
其他好文 时间:
2015-10-08 18:15:51
阅读次数:
118
1.KVC:Key-Value Coding,直译是:键值编码。简单来讲,就是给属性设置值的;复杂来讲,根据网上的说法,KVC运用了一个isa-swizzling技术。isa-swizzling就是类型混合指针机制。KVC主要通过isa-swizzling,来实现其内部查找定位的。isa指针,如其名...
分类:
移动开发 时间:
2015-09-19 22:39:12
阅读次数:
284
方法调用在运行时的过程如果用实例对象调用实例方法,会到实例的isa指针指向的对象(也就是类对象)操作。如果调用的是类方法,就会到类对象的isa指针指向的对象(也就是元类对象)中操作。首先,在相应操作的对象中的缓存方法列表中找调用的方法,如果找到,转向相应实现并执行。如果没找到,在相应操作的对象中的方...
分类:
移动开发 时间:
2015-09-18 23:10:40
阅读次数:
274
一、中断初始化 1、中断向量表IDT初始化void __init init_IRQ(void){ int i;#ifndef CONFIG_X86_VISWS_APIC init_ISA_irqs();#else init_VISWS_APIC_irqs();#endif /* * Cove...
分类:
系统相关 时间:
2015-09-13 21:21:36
阅读次数:
258
Messaging向一个实例发消息,runtime使用的是objc_msgSend函数来发送的。每一个class都有一个指针指向他的super class,有一个 dispatch table,指向每个方法的地址。每一个实例(来自NSObject or NSProxy)都有一个指针isa,指向他的c...
分类:
其他好文 时间:
2015-09-11 19:01:29
阅读次数:
133
KVC,全称:Key-Value-Coding。 KVC运用了isa-swizzling技术。isa-swizzling就是类型混合指针机制。KVC主要通过isa-swizzling来实现其内部定位查找。isa指针(is a kind of),指向维护分发表的对象的类。该分发表实际上包含了指向...
分类:
其他好文 时间:
2015-09-11 10:23:08
阅读次数:
211
-(NSString *)filterHTML:(NSString *)html{ NSScanner * scanner = [NSScanner scannerWithString:html]; NSString * text = nil; while([scanner isA...
分类:
移动开发 时间:
2015-09-09 11:04:19
阅读次数:
237
一.isa指针
要认识什么是isa指针,我们得先明确一点:
在Objective-C中,任何类的定义都是对象。类和类的实例(对象)没有任何本质上的区别。任何对象都有isa指针。
那么什么是类呢?在xcode中用快捷键Shift+Cmd+O 打开文件objc.h 能看到类的定义:
可以看出:
Class 是一个 objc_class 结构类型的指针, id是...
分类:
其他好文 时间:
2015-08-30 11:27:51
阅读次数:
176
X86的孪生兄弟,Y86指令体系结构
前言
为啥我的排版还是这么丑?排版如人啊,唉.说实话,上一章的内容我没搞明白,先不管了,先放一下,个人比较喜欢鲸吞的学习方式.
正文
Y86指令体系结构
Y86是一个指令体系结构(ISA),它是一个写这本书的作者出的指令集.目的是为了让我们更加清晰地了解ISA,就像在读编译原理的时候,作者会教你做个...
分类:
其他好文 时间:
2015-08-20 20:59:54
阅读次数:
535