Codebase list fasm / cffa793
New upstream version 1.71.59 Tomasz Buchert 7 years ago
31 changed file(s) with 88 addition(s) and 67 deletion(s). Raw diff Collapse all Expand all
Binary diff not shown
Binary diff not shown
00
11 flat assembler version 1.71
2 Copyright (c) 1999-2016, Tomasz Grysztar.
2 Copyright (c) 1999-2017, Tomasz Grysztar.
33 All rights reserved.
44
55 This program is free for commercial and non-commercial use as long as
00
11 ; flat assembler interface for DOS
2 ; Copyright (c) 1999-2016, Tomasz Grysztar.
2 ; Copyright (c) 1999-2017, Tomasz Grysztar.
33 ; All rights reserved.
44
55 init_dpmi_memory:
00
11 ; flat assembler interface for DOS
2 ; Copyright (c) 1999-2016, Tomasz Grysztar.
2 ; Copyright (c) 1999-2017, Tomasz Grysztar.
33 ; All rights reserved.
44
55 format MZ
335335 include '..\version.inc'
336336
337337 _logo db 'flat assembler version ',VERSION_STRING,24h
338 _copyright db 'Copyright (c) 1999-2016, Tomasz Grysztar',0Dh,0Ah,0
338 _copyright db 'Copyright (c) 1999-2017, Tomasz Grysztar',0Dh,0Ah,0
339339
340340 _usage db 0Dh,0Ah
341341 db 'usage: fasm <source> [output]',0Dh,0Ah
00
11 ; flat assembler interface for DOS
2 ; Copyright (c) 1999-2016, Tomasz Grysztar.
2 ; Copyright (c) 1999-2017, Tomasz Grysztar.
33 ; All rights reserved.
44
55 segment modes use16
00
11 ; flat assembler interface for DOS
2 ; Copyright (c) 1999-2016, Tomasz Grysztar.
2 ; Copyright (c) 1999-2017, Tomasz Grysztar.
33 ; All rights reserved.
44
55 go32:
00
11 ; flat assembler interface for Linux
2 ; Copyright (c) 1999-2016, Tomasz Grysztar.
2 ; Copyright (c) 1999-2017, Tomasz Grysztar.
33 ; All rights reserved.
44
55 format ELF executable 3
279279
280280 include '..\version.inc'
281281
282 _copyright db 'Copyright (c) 1999-2016, Tomasz Grysztar',0xA,0
282 _copyright db 'Copyright (c) 1999-2017, Tomasz Grysztar',0xA,0
283283
284284 _logo db 'flat assembler version ',VERSION_STRING,0
285285 _usage db 0xA
00
11 ; flat assembler interface for Linux
2 ; Copyright (c) 1999-2016, Tomasz Grysztar.
2 ; Copyright (c) 1999-2017, Tomasz Grysztar.
33 ; All rights reserved.
44
55 O_ACCMODE = 0003o
00
11 ; flat assembler interface for Linux x64
2 ; Copyright (c) 1999-2016, Tomasz Grysztar.
2 ; Copyright (c) 1999-2017, Tomasz Grysztar.
33 ; All rights reserved.
44
55 format ELF64 executable 3 at 400000h
295295
296296 include '..\..\version.inc'
297297
298 _copyright db 'Copyright (c) 1999-2016, Tomasz Grysztar',0xA,0
298 _copyright db 'Copyright (c) 1999-2017, Tomasz Grysztar',0xA,0
299299
300300 _logo db 'flat assembler version ',VERSION_STRING,0
301301 _usage db 0xA
0
1 ; flat assembler interface for Linux x64
2 ; Copyright (c) 1999-2017, Tomasz Grysztar.
3 ; All rights reserved.
04
15 esp equ +rsp
26
00
11 ; flat assembler interface for Linux x64
2 ; Copyright (c) 1999-2016, Tomasz Grysztar.
2 ; Copyright (c) 1999-2017, Tomasz Grysztar.
33 ; All rights reserved.
44
55 O_ACCMODE = 0003o
00
11 ; flat assembler interface for Win32
2 ; Copyright (c) 1999-2016, Tomasz Grysztar.
2 ; Copyright (c) 1999-2017, Tomasz Grysztar.
33 ; All rights reserved.
44
55 format PE console
327327
328328 include '..\version.inc'
329329
330 _copyright db 'Copyright (c) 1999-2016, Tomasz Grysztar',0Dh,0Ah,0
330 _copyright db 'Copyright (c) 1999-2017, Tomasz Grysztar',0Dh,0Ah,0
331331
332332 _logo db 'flat assembler version ',VERSION_STRING,0
333333 _usage db 0Dh,0Ah
00
11 ; flat assembler interface for Win32
2 ; Copyright (c) 1999-2016, Tomasz Grysztar.
2 ; Copyright (c) 1999-2017, Tomasz Grysztar.
33 ; All rights reserved.
44
55 CREATE_NEW = 1
00
11 ; flat assembler core
2 ; Copyright (c) 1999-2016, Tomasz Grysztar.
2 ; Copyright (c) 1999-2017, Tomasz Grysztar.
33 ; All rights reserved.
44
55 assembler:
13021302 push ebx
13031303 jmp stop_while
13041304
1305 data_unicode:
1306 or [base_code],-1
1307 jmp define_words
1308 data_words:
1309 mov [base_code],0
1310 define_words:
1311 push define_data_word
1312 jmp define_data
1313 data_dwords:
1314 push define_data_dword
1315 jmp define_data
1316 data_pwords:
1317 push define_data_pword
1318 jmp define_data
1319 data_qwords:
1320 push define_data_qword
1321 jmp define_data
1322 data_twords:
1323 push define_data_tword
1324 jmp define_data
1325 data_bytes:
1326 push define_data_byte
13271305 define_data:
13281306 cmp edi,[tagged_blocks]
13291307 jae out_of_memory
13481326 duplicated_values:
13491327 cmp edi,[tagged_blocks]
13501328 jae out_of_memory
1329 clc
13511330 call near dword [esp+8]
13521331 lods byte [esi]
13531332 cmp al,','
13631342 cmp edi,[tagged_blocks]
13641343 jae out_of_memory
13651344 push eax esi
1345 clc
13661346 call near dword [esp+8]
13671347 pop ebx eax
13681348 dec eax
13861366 simple_data_value:
13871367 cmp edi,[tagged_blocks]
13881368 jae out_of_memory
1369 clc
13891370 call near dword [esp]
13901371 data_defined:
13911372 lods byte [esi]
13921373 cmp al,','
13931374 je define_data
13941375 dec esi
1395 add esp,4
1396 jmp instruction_assembled
1397
1398
1399
1400
1376 stc
1377 ret
1378 data_bytes:
1379 call define_data
14011380 define_data_byte:
1381 jc instruction_assembled
14021382 lods byte [esi]
14031383 cmp al,'('
14041384 je get_byte
14361416 undefined_data_ok:
14371417 mov [undefined_data_end],edi
14381418 ret
1419 data_unicode:
1420 or [base_code],-1
1421 jmp define_words
1422 data_words:
1423 mov [base_code],0
1424 define_words:
1425 call define_data
14391426 define_data_word:
1427 jc instruction_assembled
14401428 lods byte [esi]
14411429 cmp al,'('
14421430 je get_word
14731461 word_string_ok:
14741462 inc esi
14751463 ret
1464 data_dwords:
1465 call define_data
14761466 define_data_dword:
1467 jc instruction_assembled
14771468 lods byte [esi]
14781469 cmp al,'('
14791470 je get_dword
15151506 call mark_relocation
15161507 stos word [edi]
15171508 ret
1509 data_pwords:
1510 call define_data
15181511 define_data_pword:
1512 jc instruction_assembled
15191513 lods byte [esi]
15201514 cmp al,'('
15211515 je get_pword
15611555 call mark_relocation
15621556 stos word [edi]
15631557 ret
1558 data_qwords:
1559 call define_data
15641560 define_data_qword:
1561 jc instruction_assembled
15651562 lods byte [esi]
15661563 cmp al,'('
15671564 je get_qword
15801577 mov eax,edx
15811578 stos dword [edi]
15821579 ret
1580 data_twords:
1581 call define_data
15831582 define_data_tword:
1583 jc instruction_assembled
15841584 lods byte [esi]
15851585 cmp al,'('
15861586 je get_tword
00
11 ; flat assembler core
2 ; Copyright (c) 1999-2016, Tomasz Grysztar.
2 ; Copyright (c) 1999-2017, Tomasz Grysztar.
33 ; All rights reserved.
44
55 avx_single_source_pd_instruction_er_evex:
00
11 ; flat assembler core
2 ; Copyright (c) 1999-2016, Tomasz Grysztar.
2 ; Copyright (c) 1999-2017, Tomasz Grysztar.
33 ; All rights reserved.
44
55 out_of_memory:
00
11 ; flat assembler core
2 ; Copyright (c) 1999-2016, Tomasz Grysztar.
2 ; Copyright (c) 1999-2017, Tomasz Grysztar.
33 ; All rights reserved.
44
55 calculate_expression:
10631063 mov cx,bx
10641064 neg cx
10651065 inc cx
1066 cmp cx,52
1066 cmp cx,52+1
10671067 ja value_out_of_range
10681068 cmp cx,32
10691069 jb fp_qword_small_shift
10881088 fp_qword_exp_ok:
10891089 shl ebx,20
10901090 or edx,ebx
1091 jnz fp_qword_store
1092 or eax,eax
1093 jz value_out_of_range
10911094 fp_qword_store:
10921095 mov bl,[esi+11]
10931096 shl ebx,31
11211124 mov cx,bx
11221125 neg cx
11231126 inc cx
1124 cmp cx,10
1127 cmp cx,10+1
11251128 ja value_out_of_range
11261129 xor bx,bx
11271130 shr ax,cl
11341137 fp_word_exp_ok:
11351138 shl bx,10
11361139 or ax,bx
1140 jz value_out_of_range
11371141 fp_word_store:
11381142 mov bl,[esi+11]
11391143 shl bx,15
11681172 mov cx,bx
11691173 neg cx
11701174 inc cx
1171 cmp cx,23
1175 cmp cx,23+1
11721176 ja value_out_of_range
11731177 xor bx,bx
11741178 shr eax,cl
11811185 fp_dword_exp_ok:
11821186 shl ebx,23
11831187 or eax,ebx
1188 jz value_out_of_range
11841189 fp_dword_store:
11851190 mov bl,[esi+11]
11861191 shl ebx,31
00
11 ; flat assembler core
2 ; Copyright (c) 1999-2016, Tomasz Grysztar.
2 ; Copyright (c) 1999-2017, Tomasz Grysztar.
33 ; All rights reserved.
44
55 convert_expression:
00
11 ; flat assembler core
2 ; Copyright (c) 1999-2016, Tomasz Grysztar.
2 ; Copyright (c) 1999-2017, Tomasz Grysztar.
33 ; All rights reserved.
44
55 formatter:
00
11 ; flat assembler interface for Unix/libc
2 ; Copyright (c) 1999-2016, Tomasz Grysztar.
2 ; Copyright (c) 1999-2017, Tomasz Grysztar.
33 ; All rights reserved.
44
55 format ELF
301301
302302 include '..\version.inc'
303303
304 _copyright db 'Copyright (c) 1999-2016, Tomasz Grysztar',0xA,0
304 _copyright db 'Copyright (c) 1999-2017, Tomasz Grysztar',0xA,0
305305
306306 _logo db 'flat assembler version ',VERSION_STRING,0
307307 _usage db 0xA
00
11 ; flat assembler interface for Unix/libc
2 ; Copyright (c) 1999-2016, Tomasz Grysztar.
2 ; Copyright (c) 1999-2017, Tomasz Grysztar.
33 ; All rights reserved.
44
55 extrn malloc
00
11 ; flat assembler core
2 ; Copyright (c) 1999-2016, Tomasz Grysztar.
2 ; Copyright (c) 1999-2017, Tomasz Grysztar.
33 ; All rights reserved.
44
55 _out_of_memory db 'out of memory',0
00
11 ; flat assembler core
2 ; Copyright (c) 1999-2016, Tomasz Grysztar.
2 ; Copyright (c) 1999-2017, Tomasz Grysztar.
33 ; All rights reserved.
44
55 parser:
00
11 ; flat assembler core
2 ; Copyright (c) 1999-2016, Tomasz Grysztar.
2 ; Copyright (c) 1999-2017, Tomasz Grysztar.
33 ; All rights reserved.
44
55 preprocessor:
557557 jne next_directive
558558 repe cmps byte [esi],[edi]
559559 jb no_directive
560 je directive_handler
560 je directive_found
561561 next_directive:
562562 mov edi,ebx
563563 add edi,2
567567 mov ecx,ebp
568568 stc
569569 ret
570 directive_found:
571 call get_directive_handler_base
570572 directive_handler:
571573 lea esi,[edx+ebp]
572 movzx eax,word [ebx]
573 add eax,directive_handler
574 movzx ecx,word [ebx]
575 add eax,ecx
574576 clc
577 ret
578 get_directive_handler_base:
579 mov eax,[esp]
575580 ret
576581
577582 preprocess_line:
00
11 ; flat assembler core
2 ; Copyright (c) 1999-2016, Tomasz Grysztar.
2 ; Copyright (c) 1999-2017, Tomasz Grysztar.
33 ; All rights reserved.
44
55 dump_symbols:
00
11 ; flat assembler core
2 ; Copyright (c) 1999-2016, Tomasz Grysztar.
2 ; Copyright (c) 1999-2017, Tomasz Grysztar.
33 ; All rights reserved.
44
55 include_variable db 'INCLUDE',0
00
11 ; flat assembler core variables
2 ; Copyright (c) 1999-2016, Tomasz Grysztar.
2 ; Copyright (c) 1999-2017, Tomasz Grysztar.
33 ; All rights reserved.
44
55 ; Variables which have to be set up by interface:
00
11 ; flat assembler version 1.71
2 ; Copyright (c) 1999-2016, Tomasz Grysztar.
2 ; Copyright (c) 1999-2017, Tomasz Grysztar.
33 ; All rights reserved.
44 ;
55 ; This programs is free for commercial and non-commercial use as long as
3232 ; cannot simply be copied and put under another distribution licence
3333 ; (including the GNU Public Licence).
3434
35 VERSION_STRING equ "1.71.58"
35 VERSION_STRING equ "1.71.59"
3636
3737 VERSION_MAJOR = 1
3838 VERSION_MINOR = 71
00
11 ; flat assembler core
2 ; Copyright (c) 1999-2016, Tomasz Grysztar.
2 ; Copyright (c) 1999-2017, Tomasz Grysztar.
33 ; All rights reserved.
44
55 simple_instruction_except64:
00
11 Visit http://flatassembler.net/ for more information.
2
3
4 version 1.71.59 (Jan 20,2017)
5
6 [-] Corrected range-checking for minimal denormal floating-point values.
7
8 [-] Other minor fixes.
29
310
411 version 1.71.58 (Dec 08, 2016)