“Dalvik位元码”的版本间的差异
来自个人维基
(以“= 概述 = * 设计模型和调用规范,分别是仿照真实的机器架构和 C语言风格设计的: :<nowiki>*</nowiki> 模拟器是基于寄存器的,...”为内容创建页面) |
小 |
||
第1行: | 第1行: | ||
= 概述 = | = 概述 = | ||
− | * | + | * 模拟器和调用规范,分别是仿照真实的机器架构和 C语言风格设计的: |
− | :<nowiki>*</nowiki> | + | :<nowiki>*</nowiki> 模拟器是基于寄存器的,所有的帧在创建时大小都是固定的。每一帧由相当数量的寄存器组成,这些寄存器和函数执行所需要的参数一样,例如程序计数器、指向对应 .dex文件的引用。 |
:<nowiki>*</nowiki> 对于位数(例如整型和浮点型),寄存器为 32位宽度,对于 64位的值,由两个相邻的 32位配对存储,且没有对齐要求。 | :<nowiki>*</nowiki> 对于位数(例如整型和浮点型),寄存器为 32位宽度,对于 64位的值,由两个相邻的 32位配对存储,且没有对齐要求。 |
2015年5月20日 (三) 12:17的版本
概述
- 模拟器和调用规范,分别是仿照真实的机器架构和 C语言风格设计的:
- * 模拟器是基于寄存器的,所有的帧在创建时大小都是固定的。每一帧由相当数量的寄存器组成,这些寄存器和函数执行所需要的参数一样,例如程序计数器、指向对应 .dex文件的引用。
- * 对于位数(例如整型和浮点型),寄存器为 32位宽度,对于 64位的值,由两个相邻的 32位配对存储,且没有对齐要求。
- * 寄存器被设计成足够的宽度,以便能完整地存储对像的引用
- * In terms of bitwise representation, (Object) null == (int) 0.
- * 函数中所带的参数,按顺序依次保存在寄存器中,较大的数据使用两个寄存器,实例方法使用 this引用作为其第一个参数。
- 指令流中的存储单元由 16位无符号构成,一些指令中的某些位可能会被忽略或必须要求是0。
- 指令并不会限制于某一种特定的类型。例如,单纯的一个移动 32位数据的指令,不必指明是在移动 整型 或者 浮点型。
- 提供专用的常量池,用来保存 字串、类型、fields和函数的引用。
- Bitwise literal data is represented in-line in the instruction stream.