flat assembler
Message board for the users of flat assembler.
Index
> Main > Question about conditional if |
Author |
|
Fulgurance 18 Nov 2020, 17:32
Code: macro UEFI Interface*,Protocol*,Function*,Argument1,Argument2,Argument3,Argument4,Argument5,Argument6,Argument7,Argument8,Argument9,Argument10 { ArgumentsNumber = 10 if Argument10 eq ArgumentsNumber = ArgumentsNumber-1 end if if Argument9 eq ArgumentsNumber = ArgumentsNumber-1 end if if Argument8 eq ArgumentsNumber = ArgumentsNumber-1 end if if Argument7 eq ArgumentsNumber = ArgumentsNumber-1 end if if Argument6 eq ArgumentsNumber = ArgumentsNumber-1 end if if Argument5 eq ArgumentsNumber = ArgumentsNumber-1 end if if Argument4 eq ArgumentsNumber = ArgumentsNumber-1 end if if Argument3 eq ArgumentsNumber = ArgumentsNumber-1 end if if Argument2 eq ArgumentsNumber = ArgumentsNumber-1 end if if Argument1 eq ArgumentsNumber = ArgumentsNumber-1 end if mov rdx,[UEFISystemTable] if ArgumentsNumber > 4 sub rsp,ArgumentsNumber*8 else sub rsp,0x20 end if mov rbx,[rdx+SystemTable.#Interface] mov rax,[rbx+#Protocol.#Function] if ArgumentsNumber > 0 mov rcx,Argument1 end if if ArgumentsNumber > 1 mov rdx,Argument2 end if if ArgumentsNumber > 2 mov r8,Argument3 end if if ArgumentsNumber > 3 mov r9,Argument4 end if if ArgumentsNumber > 4 mov qword[rsp + 8*4],Argument5 end if if ArgumentsNumber > 5 mov qword[rsp + 8*5],Argument6 end if if ArgumentsNumber > 6 mov qword[rsp + 8*6],Argument7 end if if ArgumentsNumber > 7 mov qword[rsp + 8*7],Argument8 end if if ArgumentsNumber > 8 mov qword[rsp + 8*8],Argument9 end if if ArgumentsNumber > 9 mov qword[rsp + 8*9],Argument10 end if call rax if ArgumentsNumber > 4 add rsp,ArgumentsNumber*8 else add rsp,0x20 end if } Look this, I want to assemble this: mov rax,[rbx+#Protocol.#Function] |
|||
18 Nov 2020, 17:32 |
|
Fulgurance 18 Nov 2020, 17:41
If I do that, it's almost the good result, but assembly put space.... Why?
Code: mov rax,[rbx+#Protocol\.#Function] Result: UEFI ConOut,SimpleTextOutputProtocol,ClearScreen UEFI/UEFI.fasm [44] UEFI [42]: mov rax,[rbx+#Protocol\\.#Function] processed: mov rax,[rbx+SimpleTextOutputProtocol \.ClearScreen] error: invalid address. |
|||
18 Nov 2020, 17:41 |
|
revolution 18 Nov 2020, 22:32
The dot is not a special character.
Code: mov rax,[rbx+#Protocol#.#Function] |
|||
18 Nov 2020, 22:32 |
|
Fulgurance 20 Nov 2020, 18:35
Oh thanks
|
|||
20 Nov 2020, 18:35 |
|
< Last Thread | Next Thread > |
Forum Rules:
|
Copyright © 1999-2025, Tomasz Grysztar. Also on GitHub, YouTube.
Website powered by rwasa.