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