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