AT&T汇编学习笔记之数据类型
来源:互联网 发布:windows 8的记事本 编辑:程序博客网 时间:2024/05/16 04:01
数据操作:
movw $0xffb1 , %dx
movzx source , destination
source可以是8,16位 destination可以是16位或32位
movzx %cl , %ebx
movsx 扩展带符号整数。
.quad可以定义一个或者多个带符号整数值。每个整数占8个字节。
多媒体扩展整数
mmx整数 8字节64位 1 2 4 打包
movq把数据传送到MMX寄存器,但必须决定当前应用程序将使用打包整数中的哪一种。
movq source , destination dest可以是MMX SSE 64位内存位置。
values1:
.int 1 , -1
values2:
.byte 0x10 , ,0x01
movq values1 , %mm0
movq values2 , %mm1
SSE流化SIMD扩展
8个128位的XMM寄存器。 xmm0-7 2 4 8 16
movdqa source , destination 。
values1:
.int 1 , -1 , 0 , 1234
values2:
.quad 1 , -1
movdqa values1 , %xmm0
movdqa values2 , %xmm1
BCD整数 8位 0-9
加载bcd值到FPU寄存器。必须使用80位打包BCD格式在内存中创建值。值被传送给FPU寄存器
之后,就被自动转换为扩展双精度浮点型。
fbld source 优先使用FPU0 ST0
浮点数
single 31,30-23,22-0 符号 指数 有效数字
double 63,62-52,51-0
fld source FPU寄存器
fld1将+1.0压入FPU堆栈
FLDL2T 把10的对数(底2)压入堆栈
FLDL2E e
FLDPI pi
FLDLG2 2的对数(底10)
FLDLN2 2的对数(底e)
FLDZ +0.0压入FPU堆栈
查看st0-7
每次进入浮点栈后都后进先出,依次往后叠,最后进入的占用st0。
SSE浮点 128位
MOVAPS 把4个对准的打包单精度值传送到XMM寄存器或者内存。
MOVUPS 不对准的
MOVSS 一个单精度传送到XMM或者内存低四字
MOVLPS 把两个单精度值传送到内存或者寄存器低四字
MOVHPS 高四字
MOVHLPS 两个单精度值从高四字传送到低四字
MOVLHPS 低到高
xmmX 0-7依次用。
MOVAPD 把两个对准的双精度传送到XMM寄存器或者内存
MOVUPD
MOVSD 把一个双精度传送到内存或者寄存器低四字
MOVHPD 一个双精度值传送到寄存器或者内存高四字
MOVLPD
转换指令
CVTDQ2PD 双字型整数到打包双精度FP (XMM)
CVTDQ2PS 单精度 (XMM)
CVTPD2DQ 双精度FP到打包双字型整数 (XMM)
CVTPD2PI (MMX)
CVTPD2PS 双精度FP到单精度FP (XMM)
CVTPI2PD
CVTPI2PS
CVTPS2DQ
CVTPS2PD
CVTPS2PI (MMX)
CVTTPD2PI 双精度FP到打包双字型整数 (MMX 截断)
CVTTPD2DQ (XMM 截断)
CVTTPS2DQ 单精度FP到打包双字型整数 (XMM 截断
CVTTPS2PI 单精度FP到双字型整数(MMX 截断)
movw $0xffb1 , %dx
movzx source , destination
source可以是8,16位 destination可以是16位或32位
movzx %cl , %ebx
movsx 扩展带符号整数。
.quad可以定义一个或者多个带符号整数值。每个整数占8个字节。
多媒体扩展整数
mmx整数 8字节64位 1 2 4 打包
movq把数据传送到MMX寄存器,但必须决定当前应用程序将使用打包整数中的哪一种。
movq source , destination dest可以是MMX SSE 64位内存位置。
values1:
.int 1 , -1
values2:
.byte 0x10 , ,0x01
movq values1 , %mm0
movq values2 , %mm1
SSE流化SIMD扩展
8个128位的XMM寄存器。 xmm0-7 2 4 8 16
movdqa source , destination 。
values1:
.int 1 , -1 , 0 , 1234
values2:
.quad 1 , -1
movdqa values1 , %xmm0
movdqa values2 , %xmm1
BCD整数 8位 0-9
加载bcd值到FPU寄存器。必须使用80位打包BCD格式在内存中创建值。值被传送给FPU寄存器
之后,就被自动转换为扩展双精度浮点型。
fbld source 优先使用FPU0 ST0
浮点数
single 31,30-23,22-0 符号 指数 有效数字
double 63,62-52,51-0
fld source FPU寄存器
fld1将+1.0压入FPU堆栈
FLDL2T 把10的对数(底2)压入堆栈
FLDL2E e
FLDPI pi
FLDLG2 2的对数(底10)
FLDLN2 2的对数(底e)
FLDZ +0.0压入FPU堆栈
查看st0-7
每次进入浮点栈后都后进先出,依次往后叠,最后进入的占用st0。
SSE浮点 128位
MOVAPS 把4个对准的打包单精度值传送到XMM寄存器或者内存。
MOVUPS 不对准的
MOVSS 一个单精度传送到XMM或者内存低四字
MOVLPS 把两个单精度值传送到内存或者寄存器低四字
MOVHPS 高四字
MOVHLPS 两个单精度值从高四字传送到低四字
MOVLHPS 低到高
xmmX 0-7依次用。
MOVAPD 把两个对准的双精度传送到XMM寄存器或者内存
MOVUPD
MOVSD 把一个双精度传送到内存或者寄存器低四字
MOVHPD 一个双精度值传送到寄存器或者内存高四字
MOVLPD
转换指令
CVTDQ2PD 双字型整数到打包双精度FP (XMM)
CVTDQ2PS 单精度 (XMM)
CVTPD2DQ 双精度FP到打包双字型整数 (XMM)
CVTPD2PI (MMX)
CVTPD2PS 双精度FP到单精度FP (XMM)
CVTPI2PD
CVTPI2PS
CVTPS2DQ
CVTPS2PD
CVTPS2PI (MMX)
CVTTPD2PI 双精度FP到打包双字型整数 (MMX 截断)
CVTTPD2DQ (XMM 截断)
CVTTPS2DQ 单精度FP到打包双字型整数 (XMM 截断
CVTTPS2PI 单精度FP到双字型整数(MMX 截断)
0 0
- AT&T汇编学习笔记之数据类型
- AT&T学习笔记汇编之函数
- AT&T学习笔记汇编之内核
- AT&T汇编学习笔记之字符串
- AT&T学习笔记汇编之call
- AT&T学习笔记汇编之调用汇编库
- AT&T汇编学习笔记
- AT&T学习笔记汇编之控制指令
- AT&T汇编学习笔记之使用文件
- AT&T学习笔记汇编之高级特性
- AT&T学习笔记汇编之内联c语言
- AT&T学习笔记汇编之数学处理
- AT&T 汇编学习
- AT&T 汇编学习
- AT&T汇编leave学习
- AT&T格式汇编学习
- part4.AT&T汇编学习
- iOS-学习-AT&T汇编
- 关于java的集合类,以及HashMap中Set的用法
- 第四周项目4-指向学生类的指针
- AT&T学习笔记汇编之数学处理
- Android TV 开发笔记一:环境搭建
- Set集合重复元素的判断
- AT&T汇编学习笔记之数据类型
- AT&T汇编学习笔记之字符串
- HtmlUnit测试入门
- 提高MySQL数据库性能
- AT&T学习笔记汇编之调用汇编库
- 第五周程序阅读(6)
- 黑马程序员——Collections、Arrays、增强for、可变参数、静态导入
- AT&T学习笔记汇编之call
- Ihtmldocument2接口的使用