Write an IA-32 assembly language macro that simplifies the process of debugging a program by displaying a string, then a 32-bit register's contents on the screen in hex, followed by a carriage return and linefeed, followed by waiting for the user to press any key to continue (call the attached include file calls: WriteString, WriteHex, Crlf and ReadChar from within the macro). Here is how the macro should be invoked: mDebug "string" [,reg32] The first parameter is a string of characters within quotes that is to be displayed, followed by a space character. If the second parameter is present, then the contents of [ ] is a 32-bit register name whose contents are then to be displayed in hex code. Any 32-bit register name may be used, including the stack pointer register esp. Examples mDebug "Calling Proc1" mDebug "ebx register contents:",ebx Be sure to save and then restore the contents of all registers that are used for temporary storage.
## Deliverables
The *.asm file has to compile in masm615. Please use the include file that I'm adding. I need the asm file. 1) Complete and fully-functional working program(s) in executable form as well as complete source code of all work done.
2) Deliverables must be in ready-to-run condition, as follows? (depending on the nature? of the deliverables):
a)? For web sites or? other server-side deliverables intended to only ever exist in one place in the Buyer's environment--Deliverables must be installed by the Seller in ready-to-run condition in the Buyer's environment.
b) For all others including desktop software or software the buyer intends to distribute: A software? installation package that will install the software in ready-to-run condition on the platform(s) specified in this bid request.
3) All deliverables will be considered "work made for hire" under U.S. Copyright law. Buyer will receive exclusive and complete copyrights to all work purchased. (No GPL, GNU, 3rd party components, etc. unless all copyright ramifications are explained AND AGREED TO by the buyer on the site per the coder's Seller Legal Agreement).
## Platform
32-bit dos (has to run on winxp dos box) intel assembly. Masm615 (masm32) or use whatever you want as long as it compiles on my masm615 :)