Some Intel Assembler Examples

Some Intel assembly language using gcc... these generally show how some high-level language constructs are accomplished in assembly code:

Test case Description
array1 define and use a global array
array2 define and use an un-initialized global array
array3 define and use a local array variable
array4 loop through the values in an array
array5 a "proper" usage of base-index-scale *NEW*
for1 demonstrate a for loop
func1 demonstrate a function call
hello1 "Hello world" example
if1 demonstrate an if statement
if2 demonstrate an if-then-else statement
local1 define and use local variables
scanf1 demonstrate use of scanf() function
switch1 demonstrate a switch statement
while1 demonstrate a while loop

For each test case above, here are links to the C code, gcc-generated assembly code, and my clean-up version of the assembly code.

Test case C code gcc -S assembly My modified assembly
array1 array1.c array1.s array1_mod.s
array2 array2.c array2.s array2_mod.s
array3 array3.c array3.s array3_mod.s
array4 array4.c array4.s array4_mod.s
array5 *new*     array5_mod.s
for1 for1.c for1.s for1_mod.s
func1 func1.c func1.s func1_mod.s
hello1 hello1.c hello1.s hello1_mod.s
if1 if1.c if1.s if1_mod.s
if2 if2.c if2.s if2_mod.s
local1 local1.c local1.s local1_mod.s
scanf1 scanf.c scanf.s scanf_mod.s
switch1 switch1.c switch1.s switch1_mod.s
while1 while1.c while1.s while1_mod.s

One more "example." Here's a file I use as a starting point or template when creating assembly code files. This may keep you from making silly mistakes and also keeps a nice common style across files.

template.s

Copy this template file to your local folder and modify it for your purposes.

Please note: all these examples and the template reside in the Common Area of our class k: drive.