Page 1 of 2
Hydrogen Assembler 0.2.x
Posted: Wed Oct 14, 2009 10:08 am
by f2
Here's a new major alpha release of HyASM:
0.2.0.
What's new?
- added new instructions:
- FPU instructions
- some privileged instructions (LTR, LLDT, VERR...)
- bit scan and bit test instructions
- SHLD and SHLR instructions
- SETxx instructions
- CMPXCHG and CMPXCHG8B instructions
- XADD instruction
- a16/a32 prefix is now supported
- some bugs fixes
The manual is still being written.
As usual, please feel free to test, bug report, suggest ideas, features request, etc...
Re: Hydrogen Assembler 0.2.x
Posted: Thu Oct 15, 2009 5:23 am
by f2
New release:
0.2.1.
This version does not include new features or new instructions, but I have released a test version of HyASM for MIPS and MIPSEL architectures. Some instructions (including FPU) are implemented.
Re: Hydrogen Assembler 0.2.x
Posted: Thu Oct 15, 2009 3:21 pm
by f2
New release:
0.2.2.
What's new?
- X86: fixed address encoding with Jxx and LOOP instructions.
- fixed a critical bug with local labels.
I think this release is now really usable for OSDev-ing (unless other bugs are discovered).
Re: Hydrogen Assembler 0.2.x
Posted: Thu Oct 15, 2009 5:20 pm
by AaronMiller
This looks cool. I'll test it out.
Cheers,
-naota
Re: Hydrogen Assembler 0.2.x
Posted: Fri Oct 16, 2009 11:22 am
by qw
Wow Tommy, you're working hard!
Re: Hydrogen Assembler 0.2.x
Posted: Fri Oct 16, 2009 12:31 pm
by qw
Wrote a little "Hello, world!" program. It's a console application.
Re: Hydrogen Assembler 0.2.x
Posted: Fri Oct 16, 2009 12:54 pm
by f2
Hobbes wrote:Wow Tommy, you're working hard!
Very hard. I'm trying to implement the "include" directive. But I need to rewrite some important parts
of the code to implement this useful directive.
Hobbes wrote:Wrote a little "Hello, world!" program. It's a console application.
Very good! This sample will be included in the next release.
Re: Hydrogen Assembler 0.2.x
Posted: Sat Oct 17, 2009 1:53 am
by f2
New release:
0.2.3.
What's new?
- fixed a critical bug in the section expansion routine.
- added INCLUDE directive for including other asm files.
- added FILE/INCBIN directive for including binary files.
- X86: added FB, FW and FD directives for buffer creation.
- MIPS: added some FPU instructions.
The archive contains a draft documentation.
Hobbes wrote:Wrote a little "Hello, world!" program. It's a console application.
Added some comments on your sample and added to the "samples" directory. Thanks!
Re: Hydrogen Assembler 0.2.x
Posted: Sat Oct 17, 2009 11:04 am
by f2
New release:
0.2.4.
What's new?
- released, just for fun, a test version of HyASM for i8080 processors.
Re: Hydrogen Assembler 0.2.x
Posted: Sat Oct 17, 2009 2:53 pm
by AaronMiller
Wow! You're pumping out releases fast! Downloaded latest version. Keep up the good work.
Cheers,
-naota
Re: Hydrogen Assembler 0.2.x
Posted: Sat Oct 17, 2009 3:28 pm
by f2
AaronMiller wrote:Wow! You're pumping out releases fast! Downloaded latest version. Keep up the good work.
i8080 port took me an hour. I just did for fun, and then it may interest someone.
So, I'm working on version 0.3.0. This release will implement the support of procedures and structures.
Perhaps I will begin my other project of a new programming language...
Re: Hydrogen Assembler 0.2.x
Posted: Sat Oct 17, 2009 3:39 pm
by AaronMiller
What do you suppose your new programming language will look like?
Re: Hydrogen Assembler 0.2.x
Posted: Sat Oct 17, 2009 3:42 pm
by f2
AaronMiller wrote:What do you suppose your new programming language will look like?
A dialect of Pascal, with bits of Basic and C. As for its name, I called it "HL" (for Hydrogen Language).
Re: Hydrogen Assembler 0.2.x
Posted: Sat Oct 17, 2009 3:44 pm
by AaronMiller
Have any examples of the syntax? It sounds cool.
Re: Hydrogen Assembler 0.2.x
Posted: Sat Oct 17, 2009 3:55 pm
by f2
AaronMiller wrote:Have any examples of the syntax? It sounds cool.
OK! That might look like a source file in HL:
Code: Select all
#
# Example code
#
WORD Value1 = 3 # initialized data.
BYTE Value2 # uninitialized data.
STRING String1 = "Hello" # a string...
# Example procedure
PROC TestProcedure (WORD Arg1, DWORD Arg2) AS DWORD
BYTE LocalVar1 = 5
DWORD LocalVar2
IF (Arg1 == 0)
RETURN (LocalVar1 + 6)
ELSE
SWITCH Arg2
CASE 0:
LocalVar2 = LocalVar1 + 3
BREAK
CASE 1:
RETURN Arg2
DEFAULT:
RETURN -1
END SWITCH
END IF
LocalVar1 = 0
RETURN LocalVar1
END PROC
Of course, this is a draft of the language, everything can change before the first release ...