Important alert: (current site time 7/16/2013 2:23:11 AM EDT)
 

winzip icon

X86 32 Bit Assembler

Email
Submitted on: 1/3/2008 11:43:45 AM
By: Arne Elster 
Level: Advanced
User Rating: By 29 Users
Compatibility: VB 6.0
Views: 15940
author picture
(About the author)
 
     This is an experimental 32 Bit Assembler. Originally planned for me to learn assembly language it turned out way bigger then I thought. It supports most of the standard, FPU, MMX, SSE and 3DNow instructions, can write Windows executables, has WinAPI support, can assemble SIB expressions (for example [eax*2+ebx-10]) and of course has labels. There are 2 examples in the zip file: An editor for writing Windows Executables and an example of assembling source code at runtime to directly call it (a touch of inline assembler). //Update: The examples had German comments and there was a small bug in the console example.

 
winzip iconDownload code

Note: Due to the size or complexity of this submission, the author has submitted it as a .zip file to shorten your download time. Afterdownloading it, you will need a program like Winzip to decompress it.Virus note:All files are scanned once-a-day by Planet Source Code for viruses, but new viruses come out every day, so no prevention program can catch 100% of them. For your own safety, please:
  1. Re-scan downloaded files using your personal virus checker before using it.
  2. NEVER, EVER run compiled files (.exe's, .ocx's, .dll's etc.)--only run source code.
  3. Scan the source code with Minnow's Project Scanner

If you don't have a virus scanner, you can get one at many places on the net including:McAfee.com

 
Terms of Agreement:   
By using this code, you agree to the following terms...   
  1. You may use this code in your own programs (and may compile it into a program and distribute it in compiled format for languages that allow it) freely and with no charge.
  2. You MAY NOT redistribute this code (for example to a web site) without written permission from the original author. Failure to do so is a violation of copyright laws.   
  3. You may link to this code from another website, but ONLY if it is not wrapped in a frame. 
  4. You will abide by any additional copyright restrictions which the author may have placed in the code or code's description.


Other 23 submission(s) by this author

 


Report Bad Submission
Use this form to tell us if this entry should be deleted (i.e contains no code, is a virus, etc.).
This submission should be removed because:

Your Vote

What do you think of this code (in the Advanced category)?
(The code with your highest vote will win this month's coding contest!)
Excellent  Good  Average  Below Average  Poor (See voting log ...)
 

Other User Comments

1/3/2008 2:36:36 PMDave

Hey Arne,

I tried to send you an email but your email account was bouncing. We spoke a few months back (maybe 6+ or more) regarding VST processing, wave editing, etc.

Let me know what your new email address is so i can contact you.

- Dave
(If this comment was disrespectful, please report it.)

 
1/5/2008 9:36:01 AMNorm Cook

Nice job. Had to add ".dll" to the external definitions but after that
all ran fine. BTW: Win2k SP4
(If this comment was disrespectful, please report it.)

 
1/5/2008 11:28:37 PMpolaris

It's the first time i'm that impressed, u are a genius, who told that Vb was a slow programming language. German Guy you are the Best. Very very Nice code.
(If this comment was disrespectful, please report it.)

 
1/10/2008 4:55:20 AMULLI

sehr schön, arne, kompliment! *****
(If this comment was disrespectful, please report it.)

 
1/10/2008 10:46:31 AMULLI

a little bug: when you try to remove the last module of a project (in lstFiles) you get an index out of range error (unless that is the only module in lstFiles)


(If this comment was disrespectful, please report it.)

 
1/11/2008 7:45:47 AMenmity

as good as the viking compiler, though the viking was gone.... how about improving the viking compiler and make it work with VB?
(If this comment was disrespectful, please report it.)

 
1/12/2008 7:09:16 AMULLI

the line numbers are out because EQU lines are removed in the prepocessr. EQU lines however should appear in the preprocessor output as vbCRLFs to keep the linecount consistent. also in the prepocessor you should check for " EQU " with a preceeding and a succeding space to make sure it's not something like PREQURA.

and finally after assembly insert the following:

Else '.ASSEMBLE(STRSOURCE) = FALSE/0
For i = 0 To lstModules.ListCount - 1
If lstModules.List(i) = .LastErrorSection Then
lstModules.ListIndex = i
Exit For 'loop varying i
End If
Next i
i = .LastErrorLine
MsgBox .LastErrorMessage & " (" & .LastErrorSection & " in line " & i & ")", vbExclamation, "Error"
With txtCode
.SelStart = SendMessage(.hWnd, EM_LINEINDEX, i - 1, ByVal 0&)
.SelLength = SendMessage(.hWnd, EM_LINELENGTH, .SelStart, ByVal 0&)
End With 'TXTCODE

(If this comment was disrespectful, please report it.)

 
1/14/2008 6:15:50 PMsukusnairss

very nice, it really works
(If this comment was disrespectful, please report it.)

 
1/16/2008 1:49:38 AMEvilgenious

This guy deserve to be praised.
(If this comment was disrespectful, please report it.)

 
2/9/2008 7:47:46 AMGioRock

Very excellent work!!!!
I've implemented some features like icon and verinfo resources and page navigator, other dup(n) statment and invoke single line command type invoke SetCursor, dword [hCursor] using / to remind at follow line, custom MemCommit and Heap etc.
Using a Text Editor as CodeMax, you can registered word to colourize your code.
If you are interested about this send me an email.
PS. Some problem about div idiv opCode, sometime program crashes.
Well done......
(If this comment was disrespectful, please report it.)

 
2/16/2008 10:24:26 PMguideX

Really great, 5 Stars!
(If this comment was disrespectful, please report it.)

 
4/14/2009 9:00:27 PMDiego

how can display a msgbox from the dll when is injected regards
(If this comment was disrespectful, please report it.)

 

Add Your Feedback
Your feedback will be posted below and an email sent to the author. Please remember that the author was kind enough to share this with you, so any criticisms must be stated politely, or they will be deleted. (For feedback not related to this particular code, please click here instead.)
 

To post feedback, first please login.