![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
汇编
文章平均质量分 70
WarEric
这个作者很懒,什么都没留下…
展开
-
寄存器名称与数据类型
寄存器x86-64结构的CPU包含一组16个存储64位值的通用目的寄存器;历史上最开始的寄存器只有8个8位的寄存器,后来经历了16位, 32位直至现在的64位,寄存器也由8个扩展到16个。程序可以依据每个寄存器的名称使用其中的8位,或16位,或32位,或64位;使用每个寄存器有约定的使用目的。下面以表格的形式给出寄存器的名称与用法 63 31 15 7 0...原创 2018-04-15 22:06:22 · 7640 阅读 · 0 评论 -
浮点数寄存器与指令
寄存器AVX浮点体系结构允许数据存储在16个YMM寄存器中 255 127 0 %ymm0 %xmm0 1st FP arg.返回值 %ymm1 %xmm1 2nd FP参数 %ymm2 %xmm2 3rd FP参数 %ymm3 %xmm3 4th FP参数 %ymm4 %xmm4 5th F...原创 2018-04-16 17:49:05 · 9867 阅读 · 0 评论 -
控制指令
条件码CPU维护一组单个位的条件码寄存器 - CF:进位标志。最近的操作使最高位产生了进位。可用来检查无符号操作的溢出。 - ZF:零标志。最近的操作得出得结果为0。 - SF:符号标志。最仅的操作得到的结果为负数。 - OF:溢出标志。最近的操作导致一补码溢出——正溢出或负溢出。leaq指令是用来进行地址计算的,不改变任何条件码。 指令 基于 描述 ...原创 2018-04-22 11:01:22 · 4280 阅读 · 0 评论 -
函数栈结构与内存对齐
函数栈下图是x86-64的函数栈的结构, 函数P调用函数Q的过程,Q正在执行。 这里仅对两个地方解释,其他的很容易理解,就不细说了其中返回地址用来实现函数的返回。当Q要返回到P时,就要调用此地址获取返回位置。参数构造区是对调用函数P传递的参数的拷贝,因为当P传递参数过多时,无法通过寄存器传递,只好在P的栈帧中保存;调用Q时,将其拷贝到参数构造区x86-64过程只分配自己所需...原创 2018-04-23 11:03:21 · 1541 阅读 · 1 评论 -
数据传送指令与栈操作
数据传送指令 指令 效果 描述 MOV S,D D<—S 传送 movb 传送字节 movw 传送字 movl 传送双字 movq 传送四字 movabsq I,R R<—I 传送绝对的四字简单的数据传送指令,注意两个操作数不能都是内存 指...原创 2018-04-20 23:10:19 · 1587 阅读 · 0 评论 -
算数和逻辑操作
这些指令类有各种不同大小操作数的变种,(只有leaq没有)例如ADD由四条加法指令组成:addb, addw, addl, addq。 指令 效果 描述 leaq S,D D<—&S 加载有效地址 INC D D<—D+1 加1 DEC D D<—D-1 减1 NEG D...原创 2018-04-20 23:11:37 · 590 阅读 · 0 评论