This utility gives you a visual representation of what's going on with the SAR (and several other CPU) instructions. Check it out if you like. The small manual also has examples on several useful...
I'm not familiar with the assembler you are using, but it seems to be a compiling/linking problem. Have you seen other examples of code using multiple modules written in your assembler syntax?
One of the attractions of HLA is that it allows for flexible data representation: types, records and classes. MASM also has built in support for structures.
Assembly knowledge does help in writing better high level code and a good project to take on if you have already learned a high level language pretty well. HLA might be a good entry point for you as...
I tried several assemblers but settled on HLA myself. As for TASM, It's a fine assembler, but I wouldn't recommend it since it is discontinued by the developer. I see no future in it.
The only reason for this is due to the lack of commercial support for assembler. Assembly tends to be less portable (though an assembler such as gas is able to transcend across different processors)...
I don't know exactly what kind of problem you are getting, so this solution may not apply to you: Offset zero = 1st byte, you are modifying the 3rd byte.
Anyway, just to give you an idea, here is some HLA code that displays an array of strings. As an exercise, translate it to your assembly syntax and it will give you something to work on. Remember,...
Dev-Cpp (and MinGW) use binutils - the 'nix lineup: AS, AR, LD, etc.
A COFF object won't link. There might be a conversion utility somewhere, I don't know.
(Assuming x/86 processor)
What normally happens is that a stack frame is built around the ebx register, then uses addressing [ebx +parm. offset] to get the parameters of the function and [ebx -...