--------------------------------------------------
整数:
字节(Byte):8
字(Word):16
双字(Doubleword):32
四字(Quadword):64
.short .int .long .quad .octa
小端格式:低位字节存在低位地址,高位字节存在高位地址。 在大多数操作系统中,整数采用这种格式在内存中存储
大端格式:与小端格式相反。
--------------------------------------------------
movzx #剩余位补零
movsx #剩余位补符号位
--------------------------------------------------
MMX整数:
64位打包字节整数
64位打包字整数
64位打包双字整数
movq values1, %mm0
--------------------------------------------------
SSE整数:
128位打包字节整数
128位打包字整数
128位打包双字整数
128位打包四字整数
movdqa values1, %xmm0 #a表示内存边界对齐
movdqu values1, %xmm1 #u表示内存边界不对齐
--------------------------------------------------
BCD码:个位,十位,百位。。。。每一个占用1个字节
打包的BCD码:个位,十位,百位。。。。每一个占用半个字节
--------------------------------------------------
FPU寄存器:
st0~st7 #80位
可以用FPU寄存器进行BCD数学运算操作,最高位为符号位,在FPU中BCD值会被转换成浮点形式
fbld addr1 #加载addr1的值到FPU寄存器堆栈的顶部(st0)
fimul addr1 #st0寄存器中的值乘以addr1中的值
fbstp addr1 #读取st0寄存器中的值到addr1中
--------------------------------------------------
浮点数:
IEEE标准754浮点标准
二进制浮点值:符号,指数,有效数字
单精度:31,30~23,22~0
双精度:63,62~52,51~0
扩展双精度浮点格式:80位
flds 加载单精度
fldl 加载双精度
fsts 读取单精度
fstl 读取双精度
FPU寄存器:80位
预置的浮点值:
fld1 把1.0压入FPU堆栈
fldpi 把pi的值压入FPU堆栈
...............
--------------------------------------------------
SSE浮点数:
三种标准浮点格式
128位打包单精度浮点
128位打包双精度浮点
movaps values1, %xmm0 #a表示内存边界对齐
movups #u表示内存边界不对齐
movss
movlps
movhps
movlhps
movhlps
--SSE2:
movapd
movupd
movsd
movhpd
movlpd
--SSE3:
movshdup
movsldup
movddup
--------------------------------------------------
转换指令:打包的单精度、打包的双精度、打包的整数之间的转换
cvtxx2xx
--------------------------------------------------