码迷,mamicode.com
首页 > 移动开发 > 详细

【csapp读书笔记3】x86 Assembly Language

时间:2015-03-18 21:44:28      阅读:186      评论:0      收藏:0      [点我收藏+]

标签:

  这部分其实没什么好笔记的。。。毕竟和课本上的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)

 

【csapp读书笔记3】x86 Assembly Language

标签:

原文地址:http://www.cnblogs.com/pdev/p/4348690.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!