From: "Rylan" Newsgroups: comp.os.msdos.djgpp Subject: Parameters for NASM Date: 5 Feb 1998 13:00:48 GMT Organization: The South African Internet Exchange. Lines: 43 Message-ID: <01bd3235$1bc20ec0$LocalHost@default> NNTP-Posting-Host: pc25-01-p03.saix.net To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Precedence: bulk Hi, I know how to pass 1 paramter to a function in NASM: SECTION .data pwhere EQU 8 and then mov eax,[ebp + pwhere] to get the parameter from the stack into eax, in the NASM module. The C function: extern void volatile clearhid(unsigned char pcolor); And the call: clearhid(1); //supposed to set the hidden page to deep blue My question: how do you pass a second parameter to the NASM function from C? I've tried replacing "phwere" with a label that equals 10, 12 and 14 with no success. What is the number to add in the "mov eax,[ebp + ????]" above to get at the second parameter stored on the stack by the DJGPP C compiler? I read that C stores parameters to a function on the stack in reverse order. Should I then use an index value of 8 + ??? for the first parameter to the function, and just 8 for the second parameter? What is the number to use where ??? is to access second, third and n parameters? The grand question then: how to pass multiple parameters between Nasm and C, using the stack? Please reply by mail if possible. Any replies appreciated! :) -- Spawned By Rylan Is truth beauty or beauty truth?