【csapp读书笔记3】x86 Assembly Language

  这部分其实没什么好笔记的。。。毕竟和课本上的x86汇编是一样的

  不过有需要pay attention的地方就是x86汇编有两种书写形式:Intel format和AT&T format  (csapp  Page200)

  Intel format:就是常见于Microsoft和Intel的文档中。另外中国的教材也用这种format

  AT&T format:csapp就用的这种。另外gcc、objdump等工具反编译的代码默认也是这种格式

  主要区别就是操作数中source和destination的位置颠倒了一下

  还有AT&T格式中寄存器前面要加%,立即数前面加$,内存地址用()表示,16进制数用0xABCDEF的形式表示。

  举个栗子:

  mov ebp,esp    //Intel format      mov %esp,%ebp    //AT&T format

  pop ebp                    pop %ebp

  mov edx,[ebp+8]               mov 8(%ebp),%edx 

 

还有一个小地方:国内课本汇编语言使用的是16位的8086 CPU,

而在更现代的32位CPU中,寄存器还是一样的,唯一的改动就是位数加到了32位。

在IA32汇编语言中,在寄存器名字前面加个e表示是32bit register。

(csapp Page 202)

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。