gforth
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

amd64 missing addressing modes


From: anthony
Subject: amd64 missing addressing modes
Date: Wed, 26 Aug 2020 14:35:45 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0

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






reply via email to

[Prev in Thread] Current Thread [Next in Thread]