flat assembler
Message board for the users of flat assembler.
![]() Goto page Previous 1, 2, 3, 4, 5, 6, 7, 8 Next |
Author |
|
baldr 12 Mar 2010, 22:11
ouadji,
Looks like you're as crazy as I am. ![]() BTW, "release" means something complete, maybe "revision"? "Version" will fit the bill too. ![]() |
|||
![]() |
|
ouadji 12 Mar 2010, 22:52
Quote:
![]() ![]() ![]() Code: /*init!!!()! db 0,\ !(comment)!/*init!!/**//*comment*/ 1,/*init!!{==}{=com ment=}2,/*idle!!3,4/*idle!!/*init!!§--§§-com ment-§,5 flat assembler version 1.69.12 (multiline comment) 5 passes, 0.2 seconds ![]() |
|||
![]() |
|
revolution 13 Mar 2010, 01:12
ouadji wrote:
|
|||
![]() |
|
Coddy41 13 Mar 2010, 01:47
revolution wrote: And this is supposed to be more readable? Only to those whom want to believe it is more readable... I am not one of them. ![]() _________________ Want hosting for free for your asm project? You can PM me. (*.fasm4u.net) |
|||
![]() |
|
ouadji 13 Mar 2010, 03:24
Quote: And this is supposed to be more readable? ![]() ![]() it's just for the fun revolution. ![]() like we say in french :"who can do more, can do less" but you can do this too : Code: db 0,\ (! comment only for revolution !) 1 just a sample to show the power of engine, like macros. ![]() |
|||
![]() |
|
baldr 13 Mar 2010, 06:25
ouadji wrote:
Code: db 0,\ (! 1,\ 2,\ !) 3 db 0,\ (! 1,\ 2,\ !) 3 |
|||
![]() |
|
ouadji 13 Mar 2010, 08:29
hi baldr, ![]() I think I don't understand fully the meaning of your message. 1) this below, does compile without problem; Code: /*init!!(!!) A -- db 0,\ (! 1,\ 2,\ !) 3 ; the result is : db 0,\ 3 ;------------------------------------------- B -- db 0,\ (! 1,\ 2,\ !) 3 ; same result too. db 0,\ 3 in both cases (above), and in any cases, line numbers are preserved. Quote:
a) stream comment should be like "can be placed anywhere space is allowed and behave as single space (line numbers are preserved)". no, but : Can be placed anywhere (and nothing else), and behave as "nothing" ... like "ghost comment". And obviously, the line numbering is preserved in all cases. Quote:
hummm, here, i don't quite understand. like this ? Code: db 0,\ (! 1,\ 2,\ !) "666,\" ;no problem with this, compilation ok ;or this (?) : dd 0,\ (! 1,\ 2,\ !) 666,\ 667 ;compilation ok too baldr, Give me an example about what you think (about "666") thank you. PS : but why exactly "666" ? ![]() ![]() is there a hidden message in this number ? ![]() |
|||
![]() |
|
baldr 13 Mar 2010, 11:18
ouadji wrote: Can be placed anywhere (and nothing else), and behave as "nothing" ... like "ghost comment". As to that 666 thingy (nothing special, I just punched random key on numpad thrice ![]() Code: ; For the following to compile db 0,\ (! !) 1 ; it should be equivalent to db 0,\ \ \ 1 ; Am I right? If so, consider db 0,\ (! !) 666,\ 1 ; How it should be interpreted? |
|||
![]() |
|
ouadji 13 Mar 2010, 11:46
a) a/**/b,c == ab,c (ghost comment) mov/*comment*/eax,ebx == moveax,ebx mov/*comment*/ eax,ebx == mov eax,ebx b) Code: db 0,\ (! !) 1 ; it should be equivalent to db 0,\ \ \ 1 but, it's just a virtual view look below : Code: db 0,\ \ \ 1 nop <--- line n°x OR, db 0,\ ;ghost line with ghost "\" ;ghost line with ghost "\" 1 nop <------- line n°x too it's the same thing. in fact, I just explained exactly the same as you by other way. Code: db 0,\ (! !) 666,\ 1 == dw 0,\ \ 666,\ 1 ;dw or dd, not db. comment == a) ghost comment b) + if need, ghost line (ghost "\") to preserve line numbering. c) backslash effect, jumps over comment. |
|||
![]() |
|
baldr 13 Mar 2010, 12:30
ouadji,
Ability to splice two adjacent non-symbol sequences together still looks suspicious. How often do you need to place comment inside symbolic name/mnemonic/numeric constant? d/*efine*/b/*yte*/? ![]() I'm eager to get your next revision in my hands. ![]() |
|||
![]() |
|
ouadji 13 Mar 2010, 14:59
Quote:
if they are contiguous, they remain contiguous after too. But if they are not, they are not after either ! Code: abcd ab/*v*/cd == abcd ;no changes ab cd ab/*v*/ cd or ab /*v*/cd == ab cd ;no changes ;comment make no changes. Code: d/*efine*/b/*yte*/ 0 ;does compile. (== db 0) d/*efine*/b/*yte*/0 ;does NOT compile (== db0) Yes, I know ... it makes no sense to allow that. This is the result of "ghost_engine" ... too permissive. I think I'm going to prohibit this possibility. But it is easier to allow it, than to remove it. Delete this possibility, in fact, it's create a "engine exception". I'll think about it ! Quote: I'm eager to get your next revision in my hands ![]() |
|||
![]() |
|
ouadji 13 Mar 2010, 17:25
That said, I don't see the interest, nor the sense to remove this possibility. "We must know what we want". If we want a flexible engine which allows to place comments wherever we want ... it's clear, in this case, this will allow the engine to go too far. To avoid cases that have no meaning or usefulness, It should then analyze the meaning of the text, the semantics around the comment. This would need an artificial intelligence engine. The possibility of placing a comment in a symbolic name, obviously, makes no sense. But it's the user not to use it. Like, lea eax, [eax] .. allowed by the compiler, but it has no real meaning. Also with macro language .. there are a lot of ways to write a lot of things allowed, but that have meaningless. Dialectic and Semantic are two very different things. (sorry for English, I tried to do my best) Last edited by ouadji on 13 Mar 2010, 23:41; edited 1 time in total |
|||
![]() |
|
ouadji 13 Mar 2010, 18:11
Code: /*init!!;\\; db 0,\;\ ;== db 0,3 1,2,\; 3 1 passes, 2 bytes /*idle!! db 0,\;\ ;== db 0,1,2,3 1,2,\; 3 1 passes, 4 bytes just the last for fun, absolutely useless, but I find it very funny. ![]() ![]() |
|||
![]() |
|
ouadji 14 Mar 2010, 16:56
Code: ;Ouadji - Multiline Comments for FASM - revision 6 Last edited by ouadji on 21 Sep 2010, 20:30; edited 3 times in total |
|||
![]() |
|
revolution 14 Mar 2010, 17:03
What will happen here:
Code: /*init!! mov eax,ebx nop ![]() or here: Code: /*init!!mo mov eax,ebx nop ![]() |
|||
![]() |
|
ouadji 14 Mar 2010, 17:20
These are control words.
These words belong to a "syntax". This syntax must be respected. Being able to follow a syntax, is also the beginning of the learning of programming What will happen here ? Code: a) format MS COFFmo b) format MS c) mov eax, mo d) mov eax, |
|||
![]() |
|
revolution 14 Mar 2010, 17:21
So does your code detect an error or does it carry on through and make a mess of things?
|
|||
![]() |
|
ouadji 14 Mar 2010, 17:29
correct ! good idea for improvement, thank you. this will be done in Version 7 |
|||
![]() |
|
ouadji 15 Mar 2010, 01:10
revision 7 in progress in normal use, the sequence "§--§" is allowed. Here, it's only to check syntax engine. ![]() ![]() if the sequence contains special characters (CR, LF ... or other) in this case, the error message replaces these characters not viewable by question marks. Code: //init!!§ <--- CRLF --§ / * i n i t ! ! : invalid sequence : §??- ;§(CR)(LF)--§ also this, Now the syntax requires that the start sequence and the end sequence are identical, but reversed. ![]() If you have any suggestions and ideas about this, tell me. thank you. ![]() |
|||
![]() |
|
Goto page Previous 1, 2, 3, 4, 5, 6, 7, 8 Next < Last Thread | Next Thread > |
Forum Rules:
|
Copyright © 1999-2025, Tomasz Grysztar. Also on GitHub, YouTube.
Website powered by rwasa.