[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: amd64 missing addressing modes
From: |
Bernd Paysan |
Subject: |
Re: amd64 missing addressing modes |
Date: |
Wed, 26 Aug 2020 15:42:52 +0200 |
Am Mittwoch, 26. August 2020, 15:35:45 CEST schrieb anthony:
> 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
This here works:
abi-code test ok 1
ax cx *4 i) dx mov ok 1
3 ax cx *8 di) dx mov ok 1
ret ok 1
end-code
see test
ABI-Code test
7F38B25582B0: mov rdx,[rax][rcx*4]
7F38B25582B4: mov rdx,$03[rax][rcx*8]
7F38B25582B9: ret
end-code
Your example doesn't work, though. Looks like some storage is not cleaned
after finishing with one instruction. Your syntax is ok.
--
Bernd Paysan
"If you want it done right, you have to do it yourself"
net2o id: kQusJzA;7*?t=uy@X}1GWr!+0qqp_Cn176t4(dQ*
https://net2o.de/
signature.asc
Description: This is a digitally signed message part.
- amd64 missing addressing modes, anthony, 2020/08/26
- Re: amd64 missing addressing modes,
Bernd Paysan <=
- Re: amd64 missing addressing modes, anthony, 2020/08/26
- Re: amd64 missing addressing modes, Bernd Paysan, 2020/08/26
- Re: amd64 missing addressing modes, anthony, 2020/08/26
- Re: amd64 missing addressing modes, Bernd Paysan, 2020/08/26
- Re: amd64 missing addressing modes, anthony, 2020/08/27
- Re: amd64 missing addressing modes, Anton Ertl, 2020/08/27