All fortran function and subroutine args are pointers. One can change their values inside a function.
procedure swap(a, b)
temp : Integer;
begin
temp := a;
a := b;
b := temp;
end swap;
The struc is interesting. I understand it's done with a macro and a recent addition to nasm, not built into the compiler from the ground up. I first encountered macros in Lisp back in the '70s. Not being aware of this macro's existence could be the reason they weren't used in this code. I wrote some of the simple code, Frank did the more complicated functions and subroutines, four or more years ago. It works very well. What I'm doing now is trying to add to that, this first followed by three more.
From what I've read about a struc, one needs to be instantiated before use. I'm confused, where in the code does this occur?
-mjrice
struc rot8left64_stk
resd 1 ; return address.
.lo: resd 1
.hi: resd 1
endstruc
section .text
global rot8left64_
rot8left64_:
mov eax, [esp+rot8left64_stk.lo]
mov edx, [esp+rot8left64_stk.hi]
mov ecx, eax
shld eax, edx, 8
shld edx, ecx, 8
ret