
汇编学习
程序员Linc
资深技术专家,专注移动开发与人工智能领域15年+
展开
-
32位CPU所含有的寄存器
4个数据寄存器(EAX、EBX、ECX和EDX)2个变址和指针寄存器(ESI和EDI) 2个指针寄存器(ESP和EBP)6个段寄存器(ES、CS、SS、DS、FS和GS)1个指令指针寄存器(EIP) 1个标志寄存器(EFlags)1、数据寄存器数据寄存器主要用来保存操作数和运算结果等信息,从而节省读取操作数所需占用总线和访问存储器的时间。32位CPU有4个32位的通用寄存器EAX、EBX、ECX和转载 2010-04-01 11:23:00 · 3942 阅读 · 0 评论 -
汇编语言里 eax, ebx, ecx, edx, esi, edi, ebp, esp这些都是什么意思啊?
eax, ebx, ecx, edx, esi, edi, ebp, esp等都是X86 汇编语言中CPU上的通用寄存器的名称,是32位的寄存器。如果用C语言来解释,可以把这些寄存器当作变量看待。比方说:add eax,-2 ; //可以认为是给变量eax加上-2这样的一个值。这些32位寄存器有多种用途,但每一个都有“专长”,有各自的特别之处。EAX 是"累加器"(accum转载 2010-04-01 13:05:00 · 37368 阅读 · 5 评论 -
ARM 指令的条件码
1.程序状态寄存器的条件标志位N 运算结果的b31位值。对于有符号二进制补码,结果为负数时N=1,结果为正数或零时N=0;Z 指令结果为0时Z=1,否则Z=0;C 使用加法运算(包括CMN指令),b31位产生进位时C=1,否则C=0。使用减法运算(包括CMP),b31位产生借位时C=0,否则C=1。对于结合移位操作的非加法/减法指令,C为b31位最后的移出值,其它指令C通常不原创 2013-10-30 10:52:50 · 7908 阅读 · 0 评论 -
AT&T与Intel格式的汇编语法
一、AT&T 格式Linux 汇编语法格式在 AT&T 汇编格式中,寄存器名要加上 '%' 作为前缀;而在 Intel 汇编格式中,寄存器名不需要加前缀。例如:AT&T 格式Intel 格式pushl %eaxpush eax在 AT&T 汇编格式中,用 '$' 前缀表示一个立即操作数;转载 2014-06-27 21:10:20 · 5910 阅读 · 0 评论