10分钟
3.3.2.2 bool型变量
Go汇编语言定义变量无法指定类型信息,因此需要先通过Go语言声明变量的类型。以下是在Go语言中声明的几个bool类型变量:
var (
boolValue bool
trueValue bool
falseValue bool
)
在Go语言中声明的变量不能含有初始化语句。然后下面是amd64环境的汇编定义:
GLOBL ·boolValue(SB),$1 // 未初始化
GLOBL ·trueValue(SB),$1 // var trueValue = true
DATA ·trueValue(SB)/1,$1 // 非 0 均为 true
GLOBL ·falseValue(SB),$1 // var falseValue = true
DATA ·falseValue(SB)/1,$0
bool类型的内存大小为1个字节。并且汇编中定义的变量需要手工指定初始化值,否则将可能导致产生未初始化的变量。当需要将1个字节的bool类型变量加载到8字节的寄存器时,需要使用MOVBQZX指令将不足的高位用0填充。
学员评价