1、 当前编译器支持若干种数据类型,分别是:
名称 长度(字节) 位长
short_int 1 8
int 2 16
long_int 4 32
char 1 8
float 2 16
long_float 4 32
2、虚拟机的存储器(闪存、寄存器、永久存储)的最小分配单元是1字节,在对齐时会采取截断/增补方式。例如:
short_int si=0 ;
int ii = si ;
$ 上述代码在运行时会发生增补,即ii = si 中的si会由原来的8位扩张为16位,其高8位全部置0,以适应ii。
long_int li = 1 ;
int ii = li ;
-$
此时,li由于位长有32位比ii多出16位,为适应右操作数会被截断,即在表达式 ii=li 中转换为int型。
$-
3、基于2中所述最小分配单元,进程的运行时堆栈被设计为元素可变长度,即压栈/出栈元素长度可以是8/16/32中的任意位长,长度区别只需在指令处指定:
psh <2> [psb + 4]
pop <2> reg0
psb为堆栈的基址寄存器,普通寄存器reg0长度32位。