1
0
mirror of https://github.com/cc65/cc65.git synced 2024-06-22 02:29:29 +00:00

Fixed a small error.

git-svn-id: svn://svn.cc65.org/cc65/trunk@3969 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
uz 2009-07-02 14:20:38 +00:00
parent 4c8839dfe6
commit d7ff0daac3

View File

@ -110,9 +110,9 @@ if you don't help. Look at this example:
</verb></tscreen>
The expression is parsed from left to right, that means, the compiler sees 'i',
and puts it contents into the secondary register. Next is OFFS, which is
and puts it contents into the secondary register. Next is OFFS, which is
constant. The compiler emits code to add a constant to the secondary register.
Same thing again for the constant 3. So the code produced contains a fetch
Same thing again for the constant 3. So the code produced contains a fetch
of 'i', two additions of constants, and a store (into 'i'). Unfortunately, the
compiler does not see, that "OFFS + 3" is a constant for itself, since it does
it's evaluation from left to right. There are some ways to help the compiler
@ -163,7 +163,7 @@ The compiler produces optimized code, if the value of a pointer is a constant.
So, to access direct memory locations, use
<tscreen><verb>
#define VDC_DATA 0xD601
#define VDC_STATUS 0xD601
*(char*)VDC_STATUS = 0x01;
</verb></tscreen>
@ -171,7 +171,7 @@ That will be translated to
<tscreen><verb>
lda #$01
sta $D600
sta $D601
</verb></tscreen>
The constant value detection works also for struct pointers and arrays, if the