文件名称:Linux下的汇编语言
文件大小:201KB
文件格式:ZIP
更新时间:2013-06-27 05:35:08
gcc unix
gcc在编译内嵌汇编语言时,采取的步骤如下 变量输入: 根据限定符的内容将输入操作数放入合适的寄存器,如果限定符指定为立即数("i")或内存变量("m"),则该步被省略,如果限定符没有具体指定输入操作数的类型(如常用的"g"),gcc会视需要决定是否将该操作数输入到某个寄存器.这样每个占位符都与某个寄存器,内存变量,或立即数形成了一一对应的关系.这就是对第二个冒号后内容的解释.如::"a"(foo),"i"(100),"m"(bar)表示%0对应eax寄存器,%1对应100,%2对应内存变量bar. 生成代码: 然后根据这种一一对应的关系(还应包括输出操作符),用这些寄存器,内存变量,或立即数来取代汇编代码中的占位符(则有点像宏操作),注意,则一步骤并不检查由这种取代操作所生成的汇编代码是否合法,例如,如果有这样一条指令asm("movl %0,%1"::"m"(foo),"m"(bar));如果你用gcc -c -S选项编译该源文件,那么在生成的汇编文件中,你将会看到生成了movl foo,bar这样一条指令,这显然是错误的.这个错误在稍后的编译检查中会被发现. 变量输出: 按照输出限定符的指定将寄存器的内容输出到某个内存变量中,如果输出操作数的限定符指定为内存变量("m"),则该步骤被省略.这就是对第一个冒号后内容的解释,如:asm("mov %0,%1":"=m"(foo),"=a"(bar):);编译后为 #APP movl foo,eax #NO_APP movl eax,bar 该语句虽然有点怪怪的,但它很好的体现了gcc的运作方式.
【文件预览】:
gcc中的内嵌汇编语言.txt
at&t汇编说明 - 中国Linux论坛.htm
l-ia.pdf
at&t汇编说明 - 中国Linux论坛.files
----book.gif(153B)
----greyflat.gif(170B)
----threaded.gif(235B)
----stylesheet2.css(2KB)
80x86 Assembly.htm
80x86 Assembly.files
----unconstr.gif(3KB)
gcc-inline-asm.pdf
UNIX汇编语言简介.files
----adv.gif(10KB)
----bithome.gif(98B)
----bitdown.gif(104B)
----title.gif(5KB)
----bitexan.gif(101B)
gccAT&T汇编格式.txt
保护模式编程的例子(1).txt
和luster一起学习在linux下使用汇编语言.txt
developerWorks Linux Inline assembly for x86 in Linux.htm
developerWorks Linux Inline assembly for x86 in Linux.files
----bg-gold.gif(36B)
----icon-email.gif(183B)
----style.js(952B)
----search.gif(247B)
----c.gif(43B)
----ibm-logo.gif(454B)
----dwlogo-small.gif(2KB)
----icon-pdf.gif(615B)
----emailfriend2.js(15KB)
----grabtitle.js(928B)
----spinbox.js(1KB)
----forumwindow.js(445B)
对 《gcc中的内嵌汇编语言》一文的补充说明.txt
AT&T汇编与Intel汇编比较2 - 中国Linux论坛.files
----book.gif(153B)
----greyflat.gif(170B)
----threaded.gif(235B)
----stylesheet2.css(2KB)
AT&T汇编与Intel汇编比较2 - 中国Linux论坛.htm
AT&T汇编与Intel汇编的比较1 - 中国Linux论坛.htm
[hushui110]ASM格式简介 - 中国Linux论坛.htm
[hushui110]ASM格式简介 - 中国Linux论坛.files
----book.gif(153B)
----flat.gif(156B)
----greythreaded.gif(235B)
----mod.gif(123B)
----stylesheet2.css(2KB)
UNIX汇编语言简介.htm
AT&T汇编与Intel汇编的比较1 - 中国Linux论坛.files
----book.gif(153B)
----greyflat.gif(170B)
----threaded.gif(235B)
----stylesheet2.css(2KB)