
Still, the problem is that Irvine examples cannot build working Windows software as it is not ABI compliant in terms of its register usage.
I have just had a look and there are not many examples of ASM being called from HLL in Irvine book.
Still, I got the impression that that it is not Irvine strongest point,

but I have not seen anything that may lead to a disaster. Actually he appears to act by redundancy, i.e, "let me save this register because we never know". For example he saves ecx on entry, which is not necessary - it is a caller save register not a callee save register.
Summing up - until I see anything better for a newbie I give my vote to this one.

For all the cases where there are no calls from HLL, there is really no concern about that. This means that the routines may not be directly portable to interface with HLL. This was left as Home Work to the reader, I guess. :icon_rolleyes: