Program: fmasm017b2.zip Title: Version: Description: FMASM v0.17 BETA 2 Download the latest version of FMASM from: http://milleaf.tripod.com/ FMASM v0.17 BETA 2 is freeware; you may distribute it but at no charge. Now in BETA 2, FMASM is better than ever! FMASM now supports all 8086 instructions except for LEA and LES. These instructions, some optimizations, and EXE format support are planned for v0.18. FMASM now has FULL support for labels, variables, and effective addressing. At v0.15.95, the FMASM source code was nearly 6,000 lines long, too long to effec Keywords: Source-code: Author: frankmillea@come.to. Platforms: Copying-policy: Copyright (C) 1999-2000, Frank Millea --------------------------------------- FMASM v0.17 BETA 2 Download the latest version of FMASM from: http://milleaf.tripod.com/ FMASM v0.17 BETA 2 is freeware; you may distribute it but at no charge. Now in BETA 2, FMASM is better than ever! FMASM now supports all 8086 instructions except for LEA and LES. These instructions, some optimizations, and EXE format support are planned for v0.18. FMASM now has FULL support for labels, variables, and effective addressing. At v0.15.95, the FMASM source code was nearly 6,000 lines long, too long to effectively debug in a decent amount of time, and the .EXE was about 85KB. I decided to rewrite FMASM from scratch, using some of the old source and scrapping the rest; FMASM now is only about 1,400 lines long! FMASM is slightly slower than previous versions of due to added support for more instructions, variables, labels, and a VERY tight coding scheme. Still, the small sacrifice in speed is not noticeable if your code is less than 100,000 lines. The .EXE now is 28KB and should download a lot quicker. Most error messages are different, so here's what some common ones mean: - error:0:Syntax. - generic error message - error:0:Expected: effective addressing bracket not found - error:0:Too many registers - more than three registers are used within effective addressing brackets - error:0:Illegal register(s) - one or more of the registers used with the instruction are not allowed - error:0:Address out of range LOOPx or Jxx instruction's address is too far away - error:0:Expected: PTR - you used BYTE or WORD but didn't have PTR after them. - error:0:Variable not defined - means just what it says - error:0:Label not defined - means just what it says - error:0:Expected: Integer. - you used a string when you should've used a number - warning:0:Overflow - the value you supplied is too large QUICK MANUAL REFERENCE: All instructions must be in the standard Intel assembly language format used by DEBUG. No red tape is needed; the first line can be an instruction. All numbers are interpreted in base 16 (hex) and must start with a 0. label is used like this: jmp labelname labelname: jnz labelname variables are used like this: mov ah,[var1] mov bh,[var3] mov word ptr [var2],ax variables are defined like this and should ALWAYS be at the very end of the source code: db var1 ? dw var2 ? db varstring "HELLO, WORLD" db null_term 0 db var3 0x6D to move the numerical memory address of a variable or label just take off the effective addressing brackets: mov ax,var1 org is used to make addresses relative to a certain address: org 0x7c00 comments start with and continue until the next line. example: div bp ; divide bp Copyright (C) 1999-2000, Frank Millea ---------------------------------------------------------------- /pc/prg/notxt/fmasm017b2.zip/readme.txt FMASM v0.17 BETA 2 Download the latest version of FMASM from: http://milleaf.tripod.com/ FMASM v0.17 BETA 2 is freeware; you may distribute it but at no charge. Now in BETA 2, FMASM is better than ever! FMASM now supports all 8086 instructions except for LEA and LES. These instructions, some optimizations, and EXE format support are planned for v0.18. FMASM now has FULL support for labels, variables, and effective addressing. At v0.15.95, the FMASM source code was nearly 6,000 lines long, too long to effectively debug in a decent amount of time, and the .EXE was about 85KB. I decided to rewrite FMASM from scratch, using some of the old source and scrapping the rest; FMASM now is only about 1,400 lines long! FMASM is slightly slower than previous versions of due to added support for more instructions, variables, labels, and a VERY tight coding scheme. Still, the small sacrifice in speed is not noticeable if your code is less than 100,000 lines. The .EXE now is 28KB and should download a lot quicker. Most error messages are different, so here's what some common ones mean: - error:0:Syntax. - generic error message - error:0:Expected: ] - effective addressing bracket not found - error:0:Too many registers - more than three registers are used within effective addressing brackets - error:0:Illegal register(s) - one or more of the registers used with the instruction are not allowed - error:0:Address out of range - a LOOPx or Jxx instruction's address is too far away - error:0:Expected: PTR - you used BYTE or WORD but didn't have PTR after them. - error:0:Variable not defined - means just what it says - error:0:Label not defined - means just what it says - error:0:Expected: Integer. - you used a string when you should've used a number - warning:0:Overflow - the value you supplied is too large QUICK MANUAL REFERENCE: * I N S T R U C T I O N S * All instructions must be in the standard Intel assembly language format used by DEBUG. No red tape is needed; the first line can be an instruction. * B A S E S A N D N U M B E R S * All numbers are interpreted in base 16 (hex) and must start with a 0. * V A R I A B L E S A N D L A B E L S * a label is used like this: jmp labelname labelname: jnz labelname variables are used like this: mov ah,[var1] mov bh,[var3] mov word ptr [var2],ax variables are defined like this and should ALWAYS be at the very end of the source code: db var1 ? dw var2 ? db varstring "HELLO, WORLD" db null_term 0 db var3 0x6D to move the numerical memory address of a variable or label just take off the effective addressing brackets: mov ax,var1 * O R G * org is used to make addresses relative to a certain address: org 0x7c00 * C O M M E N T S * comments start with a ; and continue until the next line. example: div bp ; divide bp As always, for bug reports or help email frankmillea@come.to. Include your name, source code, and version number of FMASM. Copyright (C) 1999-2000, Frank Millea