amd64 missing addressing modes
anthony <[email protected]> Wed, 26 Aug 2020 14:35:45 +0100
| Newsgroups | gmane.comp.lang.forth.gforth |
|---|---|
| Message-ID | <[email protected]> |
I try to use amd64 assembly with addressing mode base with displacement, scaled index and scaled index with displacement gforth i.e. mov (%rdx,%rcx,1),%rax mov (%rdx,%rcx,4),%rax mov 40(%rdx,%rcx,4),%rax I installed gforth from git version 0.7.9_20200820 on linux opensuse 15.1 64 bit. I included this code to test: ABI-CODE A ( -- ) 500 # AX MOV \ AX := 500 DX AX MOV \ AX := DX 200 AX MOV \ AX := (200) DX ) AX MOV \ AX := (DX) 40 DX D) AX MOV \ AX := (DX + 40) \ DX CX I) AX MOV \ AX := (DX + CX) \ DX CX *4 I) AX MOV \ AX := (DX + CX * 4) *1/2/4/8 \ 40 DX CX *4 DI) AX MOV \ AX := (DX + CX * 4 + 40) DI AX MOV RET END-CODE Compiling any of the now commented three lines results in an "invalid memory address" error. Maybe I am using an invalid syntax? Thought this was the correct syntax after reading asm.fs Every help is very much appreciated. Anthony