汇编笔记整理
来源:互联网 发布:mac 10.11.6 双系统 编辑:程序博客网 时间:2024/05/21 17:01
AT&T:
.section .data
value_ascii:
.ascii"without null"
value_asciz:
.asciz"with null"
value_float:
.float0.0
value_single:
.single0.0
value_double:
.double0.0
value_byte:
.byte0
value_short:
.short0
value_int:
.int0
value_long:
.long0
// 8字节整数
value_quad:
.quad0
// 16字节整数
value_octa:
.octa0
.section .bss
.comm value_comm100
.lcomm value_lcomm100
.section .text
.globl _start
_start:
movl $0, %ebx
movl $1, %eax
int $0x80
INTEL:
.data
var1 BYTE 10h
var2 SBYTE -14
var3 WORD 2000h
var4 SWORD +2345
var5 DWORD 12345678h
var6 SDWORD -2342423
var7 FWORD 0 //48位整数
var8 QWORD 1234567812345678h //64位整数
var9 TBYTE 1000000000123456789Ah//80位整数
var10 REAL4 -1.25 //32位短实数
var11 REAL8 3.2E+100 //64位短实数
var12 REAL10 -6.223424E-2343 //80位短实数
.code
main PROC
exit
main ENDP
END main
浮点数编码格式:
单精度:
31位:符号位 23~30位:指数位(需要减去127=2的8次方-1)0~22位:尾数位
双精度:
63位:符号位 52~62位:指数位(需要减去1023=2的10次方-1)0~51位:尾数位
扩展精度:
79位:符号位 64~78位:指数位(需要减去32767=2的15次方-1)0~51位:尾数位
内联汇编:
asm volatile ("汇编代码")
asm:ANSI C标准下不可使用,有别的含义,替代关键字为__asm__
volatile:表明不希望编译器对内联汇编代码进行优化。asm扩展格式下输出隐含在输入中时需要,防止编译器判断此代码段为没有输出的无效的代码段而进行优化删除。
扩展asm:
约束:
a:%eax,%ax,%al
b:%ebx,%bx,%bl
c:%ecx,%cx,%cl
d:%edx,%dx,%dl
S:%esi,%si
D: %edi,%di
r:通用寄存器
q:%eax %ebx %ecx %edx
A:%edx:%eax
f:浮点寄存器
t:%st0
u:%st1
m:内存位置
o:偏移内存位置
V:直接内存位置
i:立即整数值
n:值已知的立即整数值
g:任何
0:使用第一个命名寄存器
输出修饰符:
+:可以读取和写入操作数
=:只能写入操作数
%:如果必要,操作数可以和下一个操作数切换
&:在内联函数完成之前,可以删除或者重新使用操作数
- 汇编笔记整理
- 曾经汇编常用指令整理笔记
- 曾经汇编常用指令整理笔记
- 汇编和可执行文件(Po学校 计算机科学笔记整理)
- 汇编常用知识整理
- 汇编常用知识整理
- 汇编常用知识整理
- 汇编常用知识整理
- 汇编常用知识整理
- 常用汇编指令整理
- 汇编基础知识整理
- arm汇编指令整理
- 汇编指令整理
- 汇编笔记
- 汇编笔记
- 汇编笔记
- 汇编笔记
- 汇编笔记
- leetcode-06-zigzag conversion-python
- 码流 / 码率 / 比特率 / 帧速率 / 分辨率 / 高清
- caffe-stn移植到高版本的方法
- cocos2dx 防御式编程模式
- 安装系统经验总结
- 汇编笔记整理
- 如何实现viewpager自动轮播
- 服务器安装字体库解决出现xx问题
- 关于shared_ptr
- 采购组织0001不对工厂1000负责
- HEVC的帧内预测(1)
- 购物商城shopping连载(9)
- MATLAB Support Package for Arduino Hardware 安装当中的一些问题
- 从B树、B+树、B*树谈到R 树