2011年2月28日

摘要: 绝大多数Linux程序员以前只接触过DOS/Windows下的汇编语言,这些汇编代码都是Intel风格的。但在Unix和Linux系统中,更多采用的还是AT&T格式,两者在语法格式上有着很大的不同:在AT&T汇编格式中,寄存器名要加上' %'作为前缀;而在Intel汇编格式中,寄存器名不需要加前缀。例如:AT&T格式Intel格式pushl %eaxpush eax在AT&T汇编格式中,用'$'前缀表示一个立即操作数;而在Intel汇编格式中,立即数的表示不用带任何前缀。例如:AT&T格式Intel格式pushl $1pu 阅读全文
posted @ 2011-02-28 21:23 yming0221 阅读(415) 评论(0) 推荐(0)
摘要: 刚修复了集成盘在gcc 4.3下无法工作的问题。启动是只是显示“Loading System ...”1. 原因gcc 4.3对内存拷贝优化时出错,当然,glibc里头的memcpy是没有问题的,因为glibc中的memcpy实现方式不一样,但是linux-0.11里头的memcpy有问题。类似的 *p1=*p2 操作在gcc 4.3中会自动优化,而在4.3之前的版本会自动调用memcpy,所以这里我们把类似的 *p1=*p2 操作修改为 memcpy,但是编译时不能用优化选项,否则gcc 4.3还是会对memcpy优化,直接把代码嵌套到使用memcpy的代码,而不会调用,这种优化的结果并不正 阅读全文
posted @ 2011-02-28 17:19 yming0221 阅读(193) 评论(0) 推荐(0)

导航