flat assembler
Message board for the users of flat assembler.
![]() |
Author |
|
LocoDelAssembly 18 May 2006, 19:22
Same problem with 1.64. When you use 65536KB you get an access violation when reading 0x20202020
Code: 00417B75 C1E0 08 SHL EAX,8 00417B78 88C8 MOV AL,CL 00417B7A 89C5 MOV EBP,EAX 00417B7C BB A4454200 MOV EBX,FASMW.004245A4 00417B81 8B13 MOV EDX,DWORD PTR DS:[EBX] ; <- Faulty instruction 00417B83 09D2 OR EDX,EDX 00417B85 74 13 JE SHORT FASMW.00417B9A 00417B87 31C0 XOR EAX,EAX 00417B89 D1ED SHR EBP,1 00417B8B 83D0 00 ADC EAX,0 00417B8E 8D1C82 LEA EBX,DWORD PTR DS:[EDX+EAX*4] 00417B91 09ED OR EBP,EBP 00417B93 ^75 EC JNZ SHORT FASMW.00417B81 00417B95 83C3 08 ADD EBX,8 00417B98 F8 CLC 00417B99 C3 RETN 00417B9A F9 STC 00417B9B C3 RETN [edit] Now with 1.66 Code: 00417D6C 51 PUSH ECX 00417D6D E8 20000000 CALL FASMW.00417D92 00417D72 72 1B JB SHORT FASMW.00417D8F 00417D74 8B13 MOV EDX,DWORD PTR DS:[EBX] ;<- Faulty instruction 00417D76 89F3 MOV EBX,ESI 00417D78 09D2 OR EDX,EDX 00417D7A 74 13 JE SHORT FASMW.00417D8F 00417D7C 8B0C24 MOV ECX,DWORD PTR SS:[ESP] 00417D7F 8B7A 04 MOV EDI,DWORD PTR DS:[EDX+4] 00417D82 F3:A6 REPE CMPS BYTE PTR ES:[EDI],BYTE PTR DS:> 00417D84 74 06 JE SHORT FASMW.00417D8C 00417D86 89DE MOV ESI,EBX 00417D88 8B12 MOV EDX,DWORD PTR DS:[EDX] 00417D8A ^EB EC JMP SHORT FASMW.00417D78 00417D8C 59 POP ECX 00417D8D F8 CLC 00417D8E C3 RETN 00417D8F 59 POP ECX 00417D90 F9 STC 00417D91 C3 RETN Something curious, 0x2020202C also is ",<sp><sp<sp>", maybe a buffer overflow that overwrites pointer table? |
|||
![]() |
|
revolution 19 May 2006, 02:15
Here is another access violation, I think related to the previous
Code: rept 99{a equ a,a} As for the above code dissassembly, that is the hash table walker, clearly the pointer is being clobbered by the strings, perhaps this simpler example shows where the memory is being errantly written. |
|||
![]() |
|
LocoDelAssembly 19 May 2006, 02:49
With rept 23{a equ a,a} is enough too. With flat assembler preprocessor version 1.64 works good both "rept 23{a equ a,a}" and the first code you posted.
PS: Note that if you use an odd number below the required memory you will get an "Out of memory" instead of a crash, for example with 65536 crashes but with 65537 no. Note that there is a lot of odd number that doesn't work anyway but I didn't find an even number that doesn't crash (of course I didn't test all the possible values). |
|||
![]() |
|
revolution 19 May 2006, 04:18
Access violation when writing 0x00000011
Another 18 byte source file Code: label a at word ax |
|||
![]() |
|
Tomasz Grysztar 19 May 2006, 11:32
I'm forced to do the "silent update" (so far the only one for 1.66).
![]() |
|||
![]() |
|
< Last Thread | Next Thread > |
Forum Rules:
|
Copyright © 1999-2025, Tomasz Grysztar. Also on GitHub, YouTube.
Website powered by rwasa.