Thank you for all delighted people

A few days ago, two of my favorites artists released new music. First, folk star Sufjan Stevens published his EP “All delighted people”, which is a musical delight. The EP contains 8 tracks, some of which are really long (e.g., the track “Djohariah” is 17:02 minutes long), and all of which are really good. My favorite one is “The Owl and the Tanager”. This EP let us foresee that Sufjan’s upcoming album (The Age of Adz) will be a masterpiece. By the way, we can already pre-order “The Age of Adz” here.

Cover of Surfjan's "All Delighted People" EP

And now it’s time for talking about other gifted singer, Antony Hegarty, known best as the lead singer of Antony and the Johnsons. Antony Hegarty is a full-fledged artist: writer, director, painter, and of course, an excellent crooner. If you like Nina Simone or Billie Holiday, I think you will like Antony and the Johnsons too. Their most recent EP, “Thank you for your love”, is excellent. The homonymous track of this EP is a tribute to sweetness. I also liked the Dylan and Lennon’s covers. Their next album, Swanlights, will be released October 5 through the label Secretly Canadian, and we can pre-order it here.

Cover of Antony and the Johnsons' "Thank you for your love" EP
Cover of Antony and the Johnsons' "Thank you for your love" EP

Here’s the official video of “Thank you for your love”:

Lovely music. I’ve been listening to these two EPs in recent nights, surrounded by notes of pure delight.

hello world, C and GNU as

A thing all these programs had in common was their use of the 09h function of INT 21h for printing the “hello, world!” string. But it’s time to move forward. Now I plan to use the lovely C printf function.

GNU Head

Finally, it’s time to switch to the fabulous GNU as. We’ll forget about DEBUG for some time. Thanks DEBUG. GNU as, Gas, or the GNU Assembler, is obviously the assembler used by the GNU Project. It is part of the Binutils package, and acts as the default back-end of gcc. Gas is very powerful and can target several computer architectures. Quite a program, then. As most assemblers, Gas’ input is comprised of directives (also referred to as Pseudo Ops), comments, and of course, instructions. Instructions are very dependent on the target computer architecture. Conversely, directives tend to be relatively homogeneous.

1 Syntax

Originally, this assembler only accepted the AT&T assembler syntax, even for the Intel x86 and x86-64 architectures. The AT&T syntax is different to the one included in most Intel references. There are several differences, the most memorable being that two-operand instructions have the source and destinations in the opposite order. For example, instruction mov ax, bx would be expressed in AT&T syntax as movw %bx, %ax, i.e., the rightmost operand is the destination, and the leftmost one is the source. Other distinction is that register names used as operands must be preceded by a percent (%) sign. However, since version 2.10, Gas supports Intel syntax by means of the .intel_syntax directive. But in the following we’ll be using AT&T syntax.

Continue reading “hello world, C and GNU as”