Here I compiled two basic "Hello, World!" programs. The only difference between them is that one has a capital "W" and the other has a lowercase "w".
This is the hex output of the two:
Code:
Code:
If you look, all the bytes are exactly identical except for two.
The first one is " 6F 20 77 " and " 6F 20 57 ". That's because "57" is a "W" while "77" is a "w". That's not what's confusing me.
What I want to know about is the second-to-the-last byte.
In the first file, it says "CB". In the next file, it says "AB".
This number changes even if I change the value of even one byte in the file (such as, "w" to "W").
And if I change that value at all, the program becomes "Invalid" and won't run.
What is this byte? How do I generate the correct byte so that the program will run on the calculator?
If that byte isn't exactly the right value, the assembled program would refuse to run.
This is the hex output of the two:
Code:
2A 2A 54 49 38 33 46 2A 1A 0A 00 43 6F 6D 70 69 6C 65 64 20 77 69 74 68 20 4F 52 47 3A 20 68 74 74 70 3A 2F 2F 63 6C 72 68 6F 6D 65 2E 6F 72 67 2F 61 73 6D 2F 35 00 0D 00 24 00 06 48 45 4C 4C 4F 00 00 00 00 00 24 00 22 00 BB 6D EF 40 45 21 00 00 22 4B 84 21 A8 9D EF 0A 45 EF 2E 45 C9 48 65 6C 6C 6F 20 77 6F 72 6C 64 21 00 CB 0E
**TI83F*
Compiled with ORG: http://clrhome.org/asm/5
$HELLO$"�m�@E!"K�!���
E�.E�Hello world!�
Code:
2A 2A 54 49 38 33 46 2A 1A 0A 00 43 6F 6D 70 69 6C 65 64 20 77 69 74 68 20 4F 52 47 3A 20 68 74 74 70 3A 2F 2F 63 6C 72 68 6F 6D 65 2E 6F 72 67 2F 61 73 6D 2F 35 00 0D 00 24 00 06 48 45 4C 4C 4F 00 00 00 00 00 24 00 22 00 BB 6D EF 40 45 21 00 00 22 4B 84 21 A8 9D EF 0A 45 EF 2E 45 C9 48 65 6C 6C 6F 20 57 6F 72 6C 64 21 00 AB 0E
**TI83F*
Compiled with ORG: http://clrhome.org/asm/5
$HELLO$"�m�@E!"K�!���
E�.E�Hello World!�
If you look, all the bytes are exactly identical except for two.
The first one is " 6F 20 77 " and " 6F 20 57 ". That's because "57" is a "W" while "77" is a "w". That's not what's confusing me.
What I want to know about is the second-to-the-last byte.
In the first file, it says "CB". In the next file, it says "AB".
This number changes even if I change the value of even one byte in the file (such as, "w" to "W").
And if I change that value at all, the program becomes "Invalid" and won't run.
What is this byte? How do I generate the correct byte so that the program will run on the calculator?
If that byte isn't exactly the right value, the assembled program would refuse to run.