flat assembler
Message board for the users of flat assembler.
![]() |
Author |
|
CandyMan 05 Dec 2019, 18:42
I found yet few new instructions that are still missing, such as VDPBF16PS and similar.
https://software.intel.com/en-us/download/intel-architecture-instruction-set-extensions-programming-reference _________________ smaller is better |
|||
![]() |
|
revolution 05 Dec 2019, 19:02
Tomasz Grysztar wrote: It adds $% and $%% built-in variables ... |
|||
![]() |
|
Tomasz Grysztar 05 Dec 2019, 19:11
CandyMan wrote: I found yet few new instructions that are still missing, such as VDPBF16PS and similar. revolution wrote: For those that don't know fasmg's workings, what do these variables do? From the example code it looks like $%% is the emitted code length. |
|||
![]() |
|
revolution 05 Dec 2019, 19:23
What is the difference between the "current offset" from $% and the "actual offset" from $%%? How does "current" or "actual" differ from the $ value?
|
|||
![]() |
|
Tomasz Grysztar 05 Dec 2019, 19:57
revolution wrote: What is the difference between the "current offset" from $% and the "actual offset" from $%%? How does "current" or "actual" differ from the $ value? $%, on the other hand, is just the raw offset in the output, this is the offset in the output file where you're going to find the bytes that you generate at this point in program (as long as they actually go into the output - the ones in VIRTUAL block have no effect at all). And $%% is the actual offset, that is: the number of bytes that have already been "committed" to the output. Uninitialized data (like "db ?") is normally not written into output, unless it is followed by some initialized values. $%% is therefore the offset that does not count any uninitialized data at the end of so far generated output. In fasmg this is a little more complex, with directives like SECTION also affecting these values - you can see these things explained with examples in the introductory part of my file formats tutorial. |
|||
![]() |
|
revolution 05 Dec 2019, 20:05
So in most circumstances $% and $%% give the same value? But when there are uninitialised data at the current position then $% and $%% will have different values?
|
|||
![]() |
|
Tomasz Grysztar 05 Dec 2019, 20:07
revolution wrote: So in most circumstances $% and $%% give the same value? But when there are uninitialised data at the current position then $% and $%% will have different values? |
|||
![]() |
|
revolution 05 Dec 2019, 20:14
I very happy that I finally managed to realise that "data" is a plural noun. Haha, that never made sense to me before, but now I get it.
Byte ---> bytes Datum ---> data But not: Data ---> datas "Here is some data" Wrong. "Here are some data" Correct. [/offtopic] |
|||
![]() |
|
DimonSoft 06 Dec 2019, 07:03
Tomasz Grysztar wrote: It adds $% and $%% built-in variables, and a syntax variant for LOAD/STORE that allows to use output file offsets instead of addresses. Wow, couldn’t even dream about them being backported and backported this fast. Will help me make my current project (that is planned to be finished till the end of the year) code a bit more readable. Well, for certain definitions of “readable”, ’cause, y’know, $%%, but there aren’t much alternatives to choose from anyway that would not break some existing code somewhere. So, thanks a lot. |
|||
![]() |
|
Tomasz Grysztar 06 Dec 2019, 13:42
DimonSoft wrote: Well, for certain definitions of “readable”, ’cause, y’know, $%%, but there aren’t much alternatives to choose from anyway that would not break some existing code somewhere. So, thanks a lot. |
|||
![]() |
|
DimonSoft 06 Dec 2019, 17:00
Tomasz Grysztar wrote:
Yes, I looked through the docs. This one just looked a bit more bizarre. |
|||
![]() |
|
Tomasz Grysztar 06 Dec 2019, 18:24
DimonSoft wrote: Yes, I looked through the docs. This one just looked a bit more bizarre. ![]() |
|||
![]() |
|
DimonSoft 07 Dec 2019, 17:02
Tomasz Grysztar wrote:
What is the policy for using symbols like that? Things related to addresses and generated data seem to start with $. As far as I can tell, we only have two things starting with %: % itself in loops and %t for current timestamp—some general purpose integer stuff. Am I missing something else? @ is used in anonymous labels. But what are the rules for new features? |
|||
![]() |
|
Tomasz Grysztar 07 Dec 2019, 17:35
DimonSoft wrote: What is the policy for using symbols like that? Things related to addresses and generated data seem to start with $. As far as I can tell, we only have two things starting with %: % itself in loops and %t for current timestamp—some general purpose integer stuff. Am I missing something else? @ is used in anonymous labels. But what are the rules for new features? All symbols starting with $ are related to current address/offset tracking. One that I could not easily backport from fasmg is $@, but all others are now shared with fasm 1. I actually feel that %t was a wrong choice for the timestamp, and it became apparent in the fasmg's implementation, where % and %% are special parameters and %t is just a regular built-in variable. It is more akin to __SOURCE__, __FILE__ and __LINE__ - I still consider at least giving it an alias like __TIME__. |
|||
![]() |
|
guignol 10 Dec 2019, 17:22
revolution wrote:
|
|||
![]() |
|
Calanor 13 Dec 2019, 09:00
Thanks for the update, Tomasz! Speaking of backporting fasmg features, is there any chance that we'll get support for case-insensitive matching in fasm? That would be tremendously useful!
|
|||
![]() |
|
Tomasz Grysztar 13 Dec 2019, 09:50
I did not seriously consider it before. It definitely would be a challenge. I'm not saying it's impossible, though.
|
|||
![]() |
|
< Last Thread | Next Thread > |
Forum Rules:
|
Copyright © 1999-2025, Tomasz Grysztar. Also on GitHub, YouTube.
Website powered by rwasa.