Wednesday, February 1, 2006

Professional Assembly Language

Professional Assembly Language

沒有很 professional,不過是在 IA-32 和 Linux 環境下用 GNU assembler 寫 assembly 很好的入門書

我覺得這本書比較不是著重在 assembly 的硬功夫,所以怎麼在 C 裡用 inline assembly,assembly 怎麼呼叫 C,C 怎麼呼叫 assembly,Linux system call 等等,就佔了好幾章

反而 GNU assembler 的 directive 沒介紹幾個,macro 也沒講到

而且程式寫法上也沒有講到多少好的寫法,像是 14 章範例程式裡字串長度都還用寫死的方法

string1:
.asciz "This is a TEST, of the conversion program!n"
length:
.int 43


其實只要

string1:
.asciz "This is a TEST, of the conversion program!n"
Length = (. - string1)

之後用到 Length 時,前面加上 $ 就可以了(movl $Length, %ecx)

比起來,我接觸的第一本 assembly 書,Assembly Language for Intel-Based Computers, 4th,在 assembly 的功夫上就扎實得多了

不過因為我現在需要的是了解 GNU assembler 和在 C 裡用 inline assembly,而不是 用 assembly 寫 OS,所以這本書還算足夠。至於 GNU assembler 介紹不夠詳細的地方,就再自己翻翻文件好了。

No comments:

Post a Comment