flat assembler
Message board for the users of flat assembler.
Index
> Windows > JCAlg1 x64 portation |
Author |
|
marroh 02 Apr 2013, 19:26
Hello to all,
I wonder why the JCAlg1 compression algorithm has no x64 version. Now I ask myself how hard it would be to port this source. What your assembler experts think? A) Easy possible, just work time. B) Not so easy to do, needs lots of skils. C) Not possible, source work only on x86 cpu/can't be port to x64. 'm looking forward to your thoughts! _________________ Greetings from Switzerland Martin |
|||
02 Apr 2013, 19:26 |
|
HaHaAnonymous 02 Apr 2013, 20:03
[ Post removed by author. ]
Last edited by HaHaAnonymous on 28 Feb 2015, 21:07; edited 1 time in total |
|||
02 Apr 2013, 20:03 |
|
marroh 03 Apr 2013, 15:35
Thanks for your assessment. Is there by chance a list in which the CPU commands differences listed?
My assembler skills are unfortunately from Motorola 68000 time. Pointer / memory / structure handling I know still good. Use PureBasic which uses the Flat Assembler compiler, supports pointer, inline assembler... Can I work with search and replace? Are x86 single instructions ported to x64 instructions sometimes multiple commands? A list of commands that I need to replace would be awesome of course. And I agree, first handle the decompression... smaler code. |
|||
03 Apr 2013, 15:35 |
|
bitRAKE 05 Apr 2013, 17:51
Simple search and replace is not going to work. Some higher-level concepts need to be understood. First, there are differences in calling conventions used - assuming you are trying to produce a DLL for windows, or integrate into a Windows program.
There are nuances with the assemblers themselves which might also hinder successful translation. As an example: Code: cmp (_JCALG1_HEADER ptr [esi]).wSig,'CJ' Not to mention all the syntactical glue on the register. Jeremy's code is not consistent in his use here - having mystery numbers, extended dot notation, to the most complex used above - they are all the same: [esi+0] [esi]._JCALG1_HEADER.wSig (_JCALG1_HEADER ptr [esi]).wSig Compare with jcalg1_gusocb.asm: Code: JCALG1_GetUncompressedSizeOfCompressedBlock: xor eax,eax jrcxz .BadPtr cmp word [rcx],'JC' jnz .BadPtr mov eax,[rcx+2] .BadPtr: retn |
|||
05 Apr 2013, 17:51 |
|
marroh 05 Apr 2013, 20:21
Again thx for this information,
I see that the project is too difficult for me or requires too much training time. Then I'll better use a different compression algorithm where a x64 version already exists. Thanks again for the answers! |
|||
05 Apr 2013, 20:21 |
|
HaHaAnonymous 06 Apr 2013, 16:33
[ Post removed by author. ]
Last edited by HaHaAnonymous on 28 Feb 2015, 21:06; edited 1 time in total |
|||
06 Apr 2013, 16:33 |
|
marroh 07 Apr 2013, 07:13
@HaHaAnonymous
If I were able to write me own algorithm in ASM I would have no problems in portation. Somehow logical - not!? Anyway, I have already found one. |
|||
07 Apr 2013, 07:13 |
|
< Last Thread | Next Thread > |
Forum Rules:
|
Copyright © 1999-2025, Tomasz Grysztar. Also on GitHub, YouTube.
Website powered by rwasa.