069.使用while伪指令在list列表文件中生成Fibbonacci数列

       这段代码在list文件中生成了一个Ficbbonacci数列,这是用.while伪指令来完成的,在list文件中,while指令的工作过程被展开,在文章的末尾会给出list文件的详细内容。所生成的数字,被存放在数据段中。
INCLUDE Irvine32.inc

.data
	val1 = 1
	val2 = 1

	DWORD val1				; first two values
	DWORD val2

	val3 = val1 + val2

	WHILE val3 LT 0F0000000h
		DWORD val3
		val1 = val2
		val2 = val3
		val3 = val1 + val2
	ENDM

.code
	main PROC



		exit
	main ENDP
END main
      下面是上面的程序所涉及的列表文件,其中中间部分是对应循环部分的代码,由此可见,在代码汇编的过程中伪指令所进行的斐波那契数列生成的过程被转化为一系列的变量之间的赋值操作以及加法操作。从而得以将它们存储在数据段之中。
Microsoft (R) Macro Assembler Version 14.25.28610.4	    06/04/20 16:04:11
1.asm							     Page 1 - 1


				INCLUDE Irvine32.inc
			      C ; Include file for Irvine32.lib             (Irvine32.inc)
			      C 
			      C ;OPTION CASEMAP:NONE		; optional: make identifiers case-sensitive
			      C 
			      C INCLUDE SmallWin.inc		; MS-Windows prototypes, structures, and constants
			      C .NOLIST
			      C ; Include file for Calling Windows API Functions      (SmallWin.inc)
			      C 
			      C ; Recent updates:
			      C ;  7/16/05  (printf, scanf)
			      C 
			      C ; To enable columns to line up properly, set your text editor's Tab
			      C ; settings to 5, 35, and 40.
			      C 
			      C .686P		; Pentium Pro or later
			      C .MODEL flat, stdcall
			      C .STACK 4096
			      C 
			      C ;--------- my own constants --------------
 = 00000000		      C DO_NOT_SHARE = 0
 = 00000000		      C NULL = 0
 = 00000001		      C TRUE = 1
 = 00000000		      C FALSE = 0
 = 00000009		      C TAB = 9		; ASCII code for Horiz Tab
			      C ;-----------------------------------------
			      C 
 = DWORD		      C HANDLE TEXTEQU <DWORD>		; used in Win32 API documentation
			      C 
			      C ; Win32 Console handles
 =-0000000A		      C STD_INPUT_HANDLE EQU -10
 =-0000000B		      C STD_OUTPUT_HANDLE EQU -11		; predefined Win API constant
 =-0000000C		      C STD_ERROR_HANDLE EQU -12
			      C 
			      C ;  Input Mode flags (used by GetConsoleMode & SetConsoleMode):
 = 00000001		      C ENABLE_PROCESSED_INPUT = 1
 = 00000002		      C ENABLE_LINE_INPUT      = 2
 = 00000004		      C ENABLE_ECHO_INPUT      = 4
 = 00000008		      C ENABLE_WINDOW_INPUT    = 8
 = 00000010		      C ENABLE_MOUSE_INPUT     = 16
			      C 
			      C ; Event constants
 = 00000001		      C KEY_EVENT       =  1
 = 00000002		      C MOUSE_EVENT     =  2
 = 00000004		      C WINDOW_BUFFER_SIZE_EVENT = 4          ; window change event record
 = 00000008		      C MENU_EVENT      = 8                   ; menu event record
 = 00000010		      C FOCUS_EVENT     = 16                  ; focus change
			      C 
			      C ; ControlKeyState constants (used by ReadKey)
 = 0000001F		      C KEY_MASKS  = 00011111b		; Mask if any Shift/Ctrl/Alt flag is set
 = 00000003		      C ALT_MASK   = 00000011b		; Left and right Alt key flags
 = 0000000C		      C CTRL_MASK  = 00001100b		; Left and right Alt key flags
 = 00000010		      C SHIFT_MASK = 00010000b		; Left or right Shift key flag
			      C 
 = 00000001		      C KBDOWN_FLAG = 00000001h		; Bit set for press, clear for release
			      C 
			      C ;  Output mode flags  (used by GetConsoleMode & SetConsoleMode):
 = 00000001		      C ENABLE_PROCESSED_OUTPUT    = 1
 = 00000002		      C ENABLE_WRAP_AT_EOL_OUTPUT  = 2
			      C 
			      C ; Constants found in WINNT.H
 = 00000001		      C FILE_SHARE_READ                 = 1
 = 00000002		      C FILE_SHARE_WRITE                = 2
 = 00000004		      C FILE_SHARE_DELETE               = 4
			      C 
 = 00000001		      C FILE_ATTRIBUTE_READONLY         = 1
 = 00000002		      C FILE_ATTRIBUTE_HIDDEN           = 2
 = 00000004		      C FILE_ATTRIBUTE_SYSTEM           = 4
 = 00000010		      C FILE_ATTRIBUTE_DIRECTORY        = 10h
 = 00000020		      C FILE_ATTRIBUTE_ARCHIVE          = 20h
 = 00000040		      C FILE_ATTRIBUTE_DEVICE           = 40h
 = 00000080		      C FILE_ATTRIBUTE_NORMAL           = 80h
 = 00000100		      C FILE_ATTRIBUTE_TEMPORARY        = 100h
 = 00000200		      C FILE_ATTRIBUTE_SPARSE_FILE      = 200h
 = 00000400		      C FILE_ATTRIBUTE_REPARSE_POINT    = 400h
 = 00000800		      C FILE_ATTRIBUTE_COMPRESSED       = 800h
 = 00001000		      C FILE_ATTRIBUTE_OFFLINE          =    1000h
 = 00002000		      C FILE_ATTRIBUTE_NOT_CONTENT_INDEXED = 2000h
 = 00004000		      C FILE_ATTRIBUTE_ENCRYPTED           = 4000h
			      C 
 = 00000001		      C FILE_READ_DATA = 1
 = 00000002		      C FILE_WRITE_DATA = 2
 = 00000004		      C FILE_APPEND_DATA = 4
 = 00000040		      C FILE_DELETE_CHILD = 40h
			      C 
 = 80000000		      C GENERIC_READ     = 80000000h
 = 40000000		      C GENERIC_WRITE    = 40000000h
 = 20000000		      C GENERIC_EXECUTE  = 20000000h
 = 10000000		      C GENERIC_ALL      = 10000000h
			      C 
			      C ; Memory allocation constants
 = 00000001		      C HEAP_NO_SERIALIZE              = 00000001h
 = 00000002		      C HEAP_GROWABLE                  = 00000002h
 = 00000004		      C HEAP_GENERATE_EXCEPTIONS       = 00000004h
 = 00000008		      C HEAP_ZERO_MEMORY               = 00000008h
 = 00000010		      C HEAP_REALLOC_IN_PLACE_ONLY     = 00000010h
			      C 
			      C ; Error Handler Variables
 = 00000100		      C FORMAT_MESSAGE_ALLOCATE_BUFFER     = 100h
 = 00001000		      C FORMAT_MESSAGE_FROM_SYSTEM         = 1000h
			      C 
			      C ;------------- Message Box Constants ---------------
			      C 
			      C ; Icons:
 = 00000010		      C MB_ICONHAND            = 10h
 = 00000020		      C MB_ICONQUESTION        = 20h
 = 00000030		      C MB_ICONEXCLAMATION     = 30h
 = 00000040		      C MB_ICONASTERISK        = 40h
 = 00000080		      C MB_USERICON            = 80h
 = 00000030		      C MB_ICONWARNING         = MB_ICONEXCLAMATION
 = 00000010		      C MB_ICONERROR           = MB_ICONHAND
 = 00000040		      C MB_ICONINFORMATION     = MB_ICONASTERISK
 = 00000010		      C MB_ICONSTOP            = MB_ICONHAND
			      C 
			      C ; Buttons:
 = 00000000		      C MB_OK         = 0
 = 00000001		      C MB_OKCANCEL   = 1
 = 00000002		      C MB_ABORTRETRYIGNORE = 2
 = 00000003		      C MB_YESNOCANCEL = 3
 = 00000004		      C MB_YESNO       = 4
 = 00000005		      C MB_RETRYCANCEL = 5
 = 00000006		      C MB_CANCELTRYCONTINUE = 6
 = 00004000		      C MB_HELP        =  4000h          ; does not close the window
			      C 
			      C ; Select the default button:
 = 00000000		      C MB_DEFBUTTON1 = 0
 = 00000100		      C MB_DEFBUTTON2 = 100h
 = 00000200		      C MB_DEFBUTTON3 = 200h
 = 00000300		      C MB_DEFBUTTON4 = 300h
			      C 
			      C ; Modal control buttons:
 = 00000000		      C MB_APPLMODAL     =  0
 = 00001000		      C MB_SYSTEMMODAL   =  1000h	; dialog floats above all windows
 = 00002000		      C MB_TASKMODAL     =  2000h
			      C 
			      C ; Return values:
 = 00000001		      C IDOK               = 1
 = 00000002		      C IDCANCEL           = 2
 = 00000003		      C IDABORT            = 3
 = 00000004		      C IDRETRY            = 4
 = 00000005		      C IDIGNORE           = 5
 = 00000006		      C IDYES              = 6
 = 00000007		      C IDNO               = 7
 = 00000008		      C IDCLOSE            = 8
 = 00000009		      C IDHELP             = 9
 = 0000000A		      C IDTRYAGAIN         = 10
 = 0000000B		      C IDCONTINUE         = 11
 = 00007D00		      C IDTIMEOUT          = 32000
			      C 
			      C ;------------------ From winbase.h ----------------------------
 = 00000001		      C CREATE_NEW         = 1
 = 00000002		      C CREATE_ALWAYS      = 2
 = 00000003		      C OPEN_EXISTING      = 3
 = 00000004		      C OPEN_ALWAYS        = 4
 = 00000005		      C TRUNCATE_EXISTING  = 5
			      C 
 = 00000000		      C FILE_BEGIN         =  0
 = 00000001		      C FILE_CURRENT       =  1
 = 00000002		      C FILE_END           =  2
			      C 
 =-00000001		      C INVALID_HANDLE_VALUE = -1
			      C 
			      C ;--------------------From wincon.h ---------------------------
			      C 
			      C ; ControlKeyState flags
			      C 
 = 00000001		      C RIGHT_ALT_PRESSED    = 0001h      ; the right alt key is pressed.
 = 00000002		      C LEFT_ALT_PRESSED     = 0002h      ; the left alt key is pressed.
 = 00000004		      C RIGHT_CTRL_PRESSED   = 0004h      ; the right ctrl key is pressed.
 = 00000008		      C LEFT_CTRL_PRESSED    = 0008h      ; the left ctrl key is pressed.
 = 00000010		      C SHIFT_PRESSED        = 0010h      ; the shift key is pressed.
 = 00000020		      C NUMLOCK_ON           = 0020h      ; the numlock light is on.
 = 00000040		      C SCROLLLOCK_ON        = 0040h      ; the scrolllock light is on.
 = 00000080		      C CAPSLOCK_ON          = 0080h      ; the capslock light is on.
 = 00000100		      C ENHANCED_KEY         = 0100h      ; the key is enhanced.
			      C 
			      C ;---------------------- from WinUser.h -------------------------
			      C 
 = 00000090		      C VK_NUMLOCK  =   90h
 = 00000091		      C VK_SCROLL   =   91h
 = 000000A0		      C VK_LSHIFT   =   0A0h
 = 000000A1		      C VK_RSHIFT   =   0A1h
 = 000000A2		      C VK_LCONTROL =   0A2h
 = 000000A3		      C VK_RCONTROL =   0A3h
 = 000000A4		      C VK_LMENU    =   0A4h
 = 000000A5		      C VK_RMENU    =   0A5h
			      C 
			      C ;----------------------------------------------------------------
			      C 
 = INVOKE ExitProcess,0	      C exit EQU <INVOKE ExitProcess,0>		; exit program
			      C 
			      C ;======================================================
			      C ;                     ALIASES
			      C ;======================================================
			      C ; The following Win32 API functions have an
			      C ; extra "A" at the end of their name, so they are
			      C ; redefined here with text macros:
			      C 
 = CreateFileA		      C CreateFile 	EQU <CreateFileA>
 = FormatMessageA	      C FormatMessage   	EQU <FormatMessageA>
 = GetCommandLineA	      C GetCommandLine	EQU <GetCommandLineA>
 = MessageBoxA		      C MessageBox      	EQU <MessageBoxA>
 = PeekConsoleInputA	      C PeekConsoleInput	EQU <PeekConsoleInputA>
 = ReadConsoleA		      C ReadConsole 	EQU <ReadConsoleA>
 = ReadConsoleInputA	      C ReadConsoleInput	EQU <ReadConsoleInputA>
 = SetConsoleTitleA	      C SetConsoleTitle	EQU <SetConsoleTitleA>
 = WriteConsoleA	      C WriteConsole 	EQU <WriteConsoleA>
 = WriteConsoleOutputCharac   C WriteConsoleOutputCharacter 	EQU <WriteConsoleOutputCharacterA>
   terA
 = wsprintfA		      C wsprintf 		EQU <wsprintfA>
			      C 
			      C ;=======================================================
			      C ; Standard Windows Structure defintions:
			      C ;=======================================================
			      C 
 00000004		      C COORD STRUCT
 00000000  0000		      C 	X WORD ?
 00000002  0000		      C 	Y WORD ?
			      C COORD ENDS
			      C 
 00000010		      C SYSTEMTIME STRUCT
 00000000  0000		      C 	wYear WORD ?
 00000002  0000		      C 	wMonth WORD ?
 00000004  0000		      C 	wDayOfWeek WORD ?
 00000006  0000		      C 	wDay WORD ?
 00000008  0000		      C 	wHour WORD ?
 0000000A  0000		      C 	wMinute WORD ?
 0000000C  0000		      C 	wSecond WORD ?
 0000000E  0000		      C 	wMilliseconds WORD ?
			      C SYSTEMTIME ENDS
			      C 
			      C ; Date and time, measured in 100ns intervals
			      C ; since January 1, 1601.
 00000008		      C FILETIME STRUCT
 00000000  00000000	      C     loDateTime DWORD ?
 00000004  00000000	      C     hiDateTime DWORD ?
			      C FILETIME ENDS
			      C 
 00000008		      C SMALL_RECT STRUCT
 00000000  0000		      C   Left     WORD ?
 00000002  0000		      C   Top      WORD ?
 00000004  0000		      C   Right    WORD ?
 00000006  0000		      C   Bottom   WORD ?
			      C SMALL_RECT ENDS
			      C 
 00000008		      C CONSOLE_CURSOR_INFO STRUCT
 00000000  00000000	      C   dwSize   DWORD ?
 00000004  00000000	      C   bVisible DWORD ?
			      C CONSOLE_CURSOR_INFO ENDS
			      C 
 00000016		      C CONSOLE_SCREEN_BUFFER_INFO STRUCT
 00000000  0000 0000	      C   dwSize                COORD <>
 00000004  0000 0000	      C   dwCursorPosition      COORD <>
 00000008  0000		      C   wAttributes           WORD ?
 0000000A  0000 0000 0000     C   srWindow              SMALL_RECT <>
	   0000
 00000012  0000 0000	      C   dwMaximumWindowSize   COORD <>
			      C CONSOLE_SCREEN_BUFFER_INFO ENDS
			      C 
 00000010		      C KEY_EVENT_RECORD STRUCT
 00000000  00000000	      C 	bKeyDown          DWORD ?
 00000004  0000		      C 	wRepeatCount      WORD  ?
 00000006  0000		      C 	wVirtualKeyCode   WORD  ?
 00000008  0000		      C 	wVirtualScanCode  WORD  ?
			      C 	UNION uChar
 0000000A  0000		      C 	  UnicodeChar     WORD  ?
			      C 	  AsciiChar       BYTE  ?
			      C 	ENDS
 0000000C  00000000	      C 	dwControlKeyState DWORD ?
			      C KEY_EVENT_RECORD ENDS
			      C 
 00000010		      C MOUSE_EVENT_RECORD STRUCT
 00000000  0000 0000	      C 	dwMousePosition         COORD <>
 00000004  00000000	      C 	dwButtonState           DWORD ?
 00000008  00000000	      C 	dwMouseControlKeyState  DWORD ?  
 0000000C  00000000	      C 	dwEventFlags            DWORD ?
			      C MOUSE_EVENT_RECORD ENDS
			      C 
 00000004		      C WINDOW_BUFFER_SIZE_RECORD STRUCT
 00000000  0000 0000	      C 	dwSize COORD <>
			      C WINDOW_BUFFER_SIZE_RECORD ENDS
			      C 
 00000004		      C MENU_EVENT_RECORD STRUCT
 00000000  00000000	      C 	dwCommandId DWORD ?		; reserved
			      C MENU_EVENT_RECORD ENDS
			      C 
 00000004		      C FOCUS_EVENT_RECORD STRUCT
 00000000  00000000	      C   bSetFocus DWORD ?
			      C FOCUS_EVENT_RECORD ENDS
			      C 
 00000014		      C INPUT_RECORD STRUCT
 00000000  0000		      C 	EventType WORD ?
			      C 	ALIGN DWORD	; align next field on doubleword boundary
			      C 	UNION Event
 00000004  00000000 0000      C 		KEY_EVENT_RECORD <>
	   0000 0000 0000
	   00000000
			      C 		MOUSE_EVENT_RECORD <>
			      C 		WINDOW_BUFFER_SIZE_RECORD <>
			      C 		MENU_EVENT_RECORD <>
			      C 		FOCUS_EVENT_RECORD <>
			      C 	ENDS
			      C INPUT_RECORD ENDS
			      C 
			      C ;==========================================================
			      C ;                   FUNCTION PROTOTYPES
			      C ;==========================================================
			      C 
			      C CloseHandle PROTO,		; close file handle
			      C 	hObject:DWORD
			      C 
			      C CreateFile PROTO,		; create new file
			      C 	lpFilename:PTR BYTE,		; ptr to filename
			      C 	dwDesiredAccess:DWORD,		; access mode
			      C 	dwShareMode:DWORD,		; share mode
			      C 	lpSecurityAttributes:DWORD,  		; pointer to security attributes
			      C 	dwCreationDisposition:DWORD,		; file creation options
			      C 	dwFlagsAndAttributes:DWORD,		; file attributes
			      C 	hTemplateFile:DWORD		; handle to template file
			      C 
			      C ExitProcess PROTO,                  	; exit program
			      C 	dwExitCode:DWORD		; return code
			      C 
			      C FileTimeToSystemTime PROTO,		; convert FILETIME to SYSTEMTIME
			      C 	lpFileTime:PTR FILETIME,
			      C 	lpSystemTime:PTR SYSTEMTIME
			      C 	
			      C FileTimeToDosDateTime PROTO,		; converts a Win32 file time to MS-DOS date/time
			      C 	lpFileTime:PTR FILETIME,
			      C 	lpFatDate:PTR WORD,
			      C 	lpFatTime:PTR WORD
			      C 
			      C FormatMessage PROTO,		; format a message
			      C 	dwFlags:DWORD,		; formatting options
			      C 	lpSource:DWORD,		; location of message definition
			      C 	dwMsgID:DWORD,		; message identifier
			      C 	dwLanguageID:DWORD,		; language identifier
			      C 	lpBuffer:PTR BYTE,		; pointer to buffer receiving string
			      C 	nSize:DWORD,		; buffer size
			      C 	va_list:DWORD		; pointer to list of arguments
			      C 	
			      C FlushConsoleInputBuffer PROTO,		; flush the input buffer
			      C 	hConsoleInput:HANDLE		; standard input handle
			      C 
			      C GetCommandLine PROTO		; returns pointer to command-line string
			      C 
			      C GetConsoleCP PROTO		; returns code page ID in eax
			      C 
			      C GetConsoleCursorInfo PROTO,
			      C 	hConsoleOutput:HANDLE,			; console output handle
			      C 	lpConsoleCursorInfo:PTR CONSOLE_CURSOR_INFO	; cursor information
			      C 
			      C GetConsoleMode PROTO,
			      C 	hConsoleHandle:HANDLE,		; input or output handle
			      C 	lpMode:PTR DWORD		; pointer to dword containing flags
			      C 
			      C GetConsoleScreenBufferInfo PROTO,
			      C 	hConsoleOutput:HANDLE,		; handle to screen buffer
			      C 	lpConsoleScreenBufferInfo:PTR CONSOLE_SCREEN_BUFFER_INFO
			      C 
			      C GetFileTime PROTO,		; get date/time stamp of a file
			      C 	hFile:HANDLE,
			      C 	pCreationTime:PTR FILETIME,
			      C 	pLastAccessTime:PTR FILETIME,
			      C 	pLastWriteTime:PTR FILETIME
			      C 	
			      C GetKeyState PROTO,		; get state of keyboard keys (see Ch11\keybd.asm) 
			      C 	nVirtKey:DWORD
			      C 
			      C GetLastError PROTO		; get most recent error return value
			      C 
			      C GetLocalTime PROTO,		; system time, adjusted for local time zone
			      C 	lpSystemTime:PTR SYSTEMTIME		; ptr to SYSTEMTIME object
			      C 
			      C GetNumberOfConsoleInputEvents PROTO,	; get number of unread records
			      C 	hConsoleInput:HANDLE,		; input handle
			      C 	lpCount:PTR DWORD		; pointer to counter
			      C 
			      C GetStdHandle PROTO,               	; get standard handle
			      C 	nStdHandle:HANDLE  		; type of console handle
			      C 
			      C GetSystemTime PROTO,		; returns the system time
			      C 	lpSystemTime:PTR SYSTEMTIME		; ptr to SYSTEMTIME object
			      C 
			      C GetTickCount PROTO		; get elapsed milliseconds
			      C 				; since computer was turned on
			      C 
			      C GetProcessHeap PROTO   		; Get the current process heap handle
			      C 
			      C HeapAlloc PROTO,
			      C 	hHeap:HANDLE,		; handle to private heap block
			      C 	dwFlags:DWORD,		; heap allocation control flags
			      C 	dwBytes:DWORD		; number of bytes to allocate
			      C 
			      C HeapCreate PROTO,
			      C 	flOptions:DWORD,		; heap allocation options
			      C 	dwInitialSize:DWORD,		; initial heap size, in bytes
			      C 	dwMaximumSize:DWORD		; maximum heap size, in bytes
			      C 
			      C HeapDestroy PROTO,
			      C 	hHeap:HANDLE		; heap handle
			      C 
			      C HeapFree PROTO,
			      C 	hHeap:HANDLE,		; handle to heap with memory block
			      C 	dwFlags:DWORD,		; heap free options
			      C 	lpMem:DWORD		; pointer to block to be freed
			      C 
			      C HeapSize PROTO,
			      C 	hHeap:HANDLE,		; handle to heap
			      C 	dwFlags:DWORD,		; heap size options
			      C 	pMem:DWORD		; pointer to memory block
			      C 
			      C LocalFree PROTO,		; free up local memory, using its handle
			      C 	hMem:HANDLE
			      C 	
			      C MessageBoxA PROTO,		; displays a pop-up message box
			      C 	hWnd:DWORD,		; handle to window (can be null)
			      C 	lpText:PTR BYTE,		; string for inside of dialog box
			      C 	lpCaption:PTR BYTE,		; string for dialog box title
			      C 	uType:DWORD		; contents and behavior of the dialog
			      C 
			      C PeekConsoleInput PROTO,
			      C 	hConsoleInput:HANDLE,		; input handle
			      C 	lpBuffer:PTR BYTE,		; pointer to buffer
			      C 	nLength:DWORD,    		; number of chars to read
			      C 	lpNumberOfEventsRead:PTR DWORD  	; ptr to number of events read
			      C 	
			      C printf PROTO C,		; Std C library function
			      C 	format:PTR BYTE, args:VARARG		; (in libc.lib)
			      C 
			      C ReadConsole PROTO,
			      C 	hConsoleInput:HANDLE,              ; input handle
			      C 	lpBuffer:PTR BYTE,                	; pointer to buffer
			      C 	nNumberOfBytesToRead:DWORD,    	; number of chars to read
			      C 	lpNumberOfCharsRead:PTR DWORD,  	; ptr to number of bytes read
			      C 	lpReserved:DWORD               	; (not used)
			      C 
			      C ReadConsoleInput PROTO,
			      C 	hConsoleInput:HANDLE,		; input handle
			      C 	lpBuffer:PTR INPUT_RECORD,		; ptr to input record
			      C 	nLength:DWORD,		; request number of recs
			      C 	lpNumberOfEventsRead:PTR DWORD	; ptr to number of bytes read
			      C 
			      C ReadFile PROTO,		; read buffer from input file
			      C 	hFile:HANDLE,		; input handle
			      C 	lpBuffer:PTR BYTE,		; ptr to buffer
			      C 	nNumberOfBytesToRead:DWORD,		; num bytes to read
			      C 	lpNumberOfBytesRead:PTR DWORD,	; bytes actually read
			      C 	lpOverlapped:PTR DWORD		; ptr to asynchronous info
			      C 
			      C scanf PROTO C,		; Std C library function
			      C 	format:PTR BYTE, args:VARARG		; (in libc.lib)
			      C 
			      C SetConsoleCursorInfo PROTO,
			      C 	hConsoleOutput:HANDLE,		 ; output handle
			      C 	lpConsoleCursorInfo:PTR CONSOLE_CURSOR_INFO	; cursor information
			      C 
			      C SetConsoleCursorPosition PROTO,
			      C 	hConsoleOutput:HANDLE,		; output handle
			      C 	dwCursorPosition:COORD		; screen X,Y coordinates
			      C 
			      C SetConsoleMode PROTO,
			      C 	hConsoleHandle:HANDLE,		; output handle
			      C 	dwMode:DWORD		; console mode flags
			      C 
			      C SetConsoleScreenBufferSize PROTO,
			      C 	hConsoleOutput:HANDLE,		; handle to screen buffer
			      C 	dwSize:COORD		; new screen buffer size
			      C 
			      C SetConsoleTextAttribute PROTO,
			      C 	hConsoleOutput:HANDLE,		; output handle
			      C 	wAttributes:WORD		; color attribute (fixed 6/20/05)
			      C 
			      C SetConsoleTitle PROTO,		; set console window title
			      C 	lpConsoleTitle:PTR BYTE		; points to string
			      C 
			      C SetConsoleWindowInfo PROTO,		; set position of console window
			      C 	hConsoleOutput:HANDLE,		; screen buffer handle
			      C 	bAbsolute:DWORD,		; coordinate type
			      C 	lpConsoleWindow:PTR SMALL_RECT	; ptr to window rectangle
			      C 
			      C SetFilePointer PROTO,		; set the file pointer position
			      C 	hFile:HANDLE,		; file handle
			      C 	lDistanceToMove:SDWORD,		; bytes to move pointer
			      C 	lpDistanceToMoveHigh:PTR SDWORD,	; ptr to bytes to move, high
			      C 	dwMoveMethod:DWORD		; starting point
			      C 
			      C SetLocalTime PROTO,		; set the system's local date and time
			      C 	lpSystemTime:PTR SYSTEMTIME		; ptr to SYSTEMTIME structure
			      C 
			      C Sleep PROTO,	   	; sleeep for n milliseconds
			      C 	dwMilliseconds:DWORD
			      C 
			      C SystemTimeToFileTime PROTO,		; Convert a SYSTEMTIME structure
			      C 	lpSystemTime:PTR SYSTEMTIME,		; to a FILETIME structure
			      C 	lpFileTime:PTR FILETIME
			      C 
			      C WriteConsole PROTO,		; write a buffer to the console
			      C 	hConsoleOutput:HANDLE,		; output handle
			      C 	lpBuffer:PTR BYTE,		; pointer to buffer
			      C 	nNumberOfCharsToWrite:DWORD,		; size of buffer
			      C 	lpNumberOfCharsWritten:PTR DWORD,		; ptr to number of bytes written
			      C 	lpReserved:DWORD		; (not used)
			      C 
			      C WriteConsoleOutputCharacter PROTO,
			      C 	hConsoleOutput:HANDLE,		; console output handle
			      C 	lpCharacter:PTR BYTE,		; pointer to buffer
			      C 	nLength:DWORD,		; size of buffer
			      C 	dwWriteCoord:COORD,		; first cell coordinates
			      C 	lpNumberOfCharsWritten:PTR DWORD	; output count
			      C 
			      C WriteConsoleOutputAttribute PROTO,
			      C 	hConsoleOutput:HANDLE,		; output handle
			      C 	lpAttribute:PTR WORD,		; write attributes
			      C 	nLength:DWORD,		; number of cells
			      C 	dwWriteCoord:COORD,		; first cell coordinates
			      C 	lpNumberOfAttrsWritten:PTR DWORD	; number of cells written
			      C 
			      C WriteFile PROTO,		; write buffer to output file
			      C 	hFile:HANDLE,		; output handle
			      C 	lpBuffer:PTR BYTE,		; pointer to buffer
			      C 	nNumberOfBytesToWrite:DWORD,		; size of buffer
			      C 	lpNumberOfBytesWritten:PTR DWORD,	; num bytes written
			      C 	lpOverlapped:PTR DWORD		; ptr to asynchronous info
			      C 
			      C wsprintf PROTO NEAR C,
			      C 	lpOut:PTR BYTE,		; output buffer
			      C 	lpFmt:PTR BYTE,		; format-control string
			      C 	vars :VARARG		; optional arguments
			      C 
			      C .LIST
			      C 
			      C INCLUDE VirtualKeys.inc
			      C ; VirtualKeys.inc
			      C .NOLIST
			      C ; updated 4/5/03
			      C 
			      C ;  Standard MS-Windows Virtual Key definitions
			      C 
 = 00000001		      C VK_LBUTTON      = 01H
 = 00000002		      C VK_RBUTTON      = 02H
 = 00000003		      C VK_CANCEL       = 03H
 = 00000008		      C VK_BACK         = 08H
 = 00000009		      C VK_TAB          = 09H
 = 0000000C		      C VK_CLEAR        = 0cH
 = 0000000D		      C VK_RETURN       = 0dH
 = 00000010		      C VK_SHIFT        = 10H
 = 00000011		      C VK_CONTROL      = 11H
 = 00000012		      C VK_MENU         = 12H
 = 00000013		      C VK_PAUSE        = 13H
 = 00000014		      C VK_CAPITAL      = 14H
 = 0000001B		      C VK_ESCAPE       = 1bH
 = 00000020		      C VK_SPACE        = 20H
			      C 
 = 00000021		      C VK_PRIOR        = 21H
 = 00000022		      C VK_NEXT         = 22H
 = 00000023		      C VK_END          = 23H
 = 00000024		      C VK_HOME         = 24H
 = 00000025		      C VK_LEFT         = 25H
 = 00000026		      C VK_UP           = 26H
 = 00000027		      C VK_RIGHT        = 27H
 = 00000028		      C VK_DOWN         = 28H
			      C 
			      C ;  VK_A thru VK_Z are the same as their ASCII equivalents: 'A' thru 'Z'
			      C ;  VK_0 thru VK_9 are the same as their ASCII equivalents: '0' thru '0'
			      C 
 = 0000002A		      C VK_PRINT        = 2aH
 = 0000002B		      C VK_EXECUTE      = 2bH
 = 0000002C		      C VK_SNAPSHOT     = 2ch   ; Printscreen key..
 = 0000002D		      C VK_INSERT       = 2dH
 = 0000002E		      C VK_DELETE       = 2eH
 = 0000002F		      C VK_HELP         = 2fH
			      C 
 = 00000060		      C VK_NUMPAD0      = 60H
 = 00000061		      C VK_NUMPAD1      = 61H
 = 00000062		      C VK_NUMPAD2      = 62H
 = 00000063		      C VK_NUMPAD3      = 63H
 = 00000064		      C VK_NUMPAD4      = 64H
 = 00000065		      C VK_NUMPAD5      = 65H
 = 00000066		      C VK_NUMPAD6      = 66H
 = 00000067		      C VK_NUMPAD7      = 67H
 = 00000068		      C VK_NUMPAD8      = 68H
 = 00000069		      C VK_NUMPAD9      = 69H
 = 0000006A		      C VK_MULTIPLY     = 6AH
 = 0000006B		      C VK_ADD          = 6BH
 = 0000006C		      C VK_SEPARATER    = 6CH
 = 0000006D		      C VK_SUBTRACT     = 6DH
 = 0000006E		      C VK_DECIMAL      = 6EH
 = 0000006F		      C VK_DIVIDE       = 6FH
			      C 
 = 00000070		      C VK_F1           = 70H
 = 00000071		      C VK_F2           = 71H
 = 00000072		      C VK_F3           = 72H
 = 00000073		      C VK_F4           = 73H
 = 00000074		      C VK_F5           = 74H
 = 00000075		      C VK_F6           = 75H
 = 00000076		      C VK_F7           = 76H
 = 00000077		      C VK_F8           = 77H
 = 00000078		      C VK_F9           = 78H
 = 00000079		      C VK_F10          = 79H
 = 0000007A		      C VK_F11          = 7aH
 = 0000007B		      C VK_F12          = 7bH
 = 0000007C		      C VK_F13          = 7cH
 = 0000007D		      C VK_F14          = 7dH
 = 0000007E		      C VK_F15          = 7eH
 = 0000007F		      C VK_F16          = 7fH
 = 00000080		      C VK_F17          = 80H
 = 00000081		      C VK_F18          = 81H
 = 00000082		      C VK_F19          = 82H
 = 00000083		      C VK_F20          = 83H
 = 00000084		      C VK_F21          = 84H
 = 00000085		      C VK_F22          = 85H
 = 00000086		      C VK_F23          = 86H
 = 00000087		      C VK_F24          = 87H
			      C 
			      C 
 = 00000090		      C VK_NUMLOCK      = 90H
 = 00000091		      C VK_SCROLL       = 91H
			      C 
			      C ; Not found in Windows header file:
			      C 
 = 000000BD		      C VK_11 = 0BDh 	; - key (on horizontal numbers row)
 = 000000BB		      C VK_12 = 0BBh 	; + key (on horizontal numbers row)
			      C .LIST
			      C 
			      C 
			      C .NOLIST
			      C ; Last update: 7/29/05
			      C 
			      C ;----------------------------------------
			      C ; Procedure Prototypes
			      C ;----------------------------------------
			      C CloseFile PROTO		; close a file handle
			      C Clrscr PROTO		; clear the screen
			      C CreateOutputFile PROTO		; create file for writing
			      C Crlf PROTO		; output carriage-return / linefeed
			      C Delay PROTO		; delay for n milliseconds
			      C DumpMem PROTO		; display memory dump
			      C DumpRegs PROTO		; display register dump
			      C GetCommandTail PROTO		; get command-line string
			      C GetDateTime PROTO,		; get system date and time
			      C   startTime:PTR QWORD
			      C GetMaxXY PROTO		; get console rows and columns
			      C GetMseconds PROTO		; get milliseconds past midnight
			      C GetTextColor PROTO		; Get the console window's color attributes. 
			      C Gotoxy PROTO		; set the cursor position
			      C IsDigit PROTO		; return ZF=1 if AL is a decimal digit
			      C MsgBox PROTO		; display popup message box
			      C MsgBoxAsk PROTO		; display popup yes/no question box
			      C OpenInputFile PROTO		; open file in input mode
			      C ParseDecimal32 PROTO		; convert unsigned decimal string to 32-bit binary
			      C ParseInteger32 PROTO		; convert signed decimal string to 32-bit binary
			      C Randomize PROTO		; reseed random number generator
			      C RandomRange PROTO		; generate random integer in specified range
			      C Random32 PROTO		; generate 32-bit random integer
			      C ReadInt PROTO		; read signed decimal integer from console
			      C ReadChar PROTO		; reach single character from console
			      C ReadDec PROTO		; read unsigned decimal integer from console
			      C ReadFloat PROTO		; read floating-point value from keyboard
			      C ReadFromFile PROTO   		; read buffer from input file
			      C ReadHex PROTO		; read hexadecimal integer from console
			      C ReadKey PROTO		; Reads keyboard input if available (4/6/03)
			      C ReadKeyFlush PROTO		; Flush ReadKey buffer and repeat counter (4/6/03)
			      C ReadString PROTO		; read string from console
			      C SetTextColor PROTO		; set console text color
			      C ShowFPUStack PROTO		; write floating-point stack to console window
			      C StrLength PROTO		; returns the length of a string
			      C WaitMsg PROTO		; display wait message, wait for Enter key
			      C WriteBin PROTO		; write integer to output in binary format
			      C WriteBinB PROTO		; write binary integer in byte, word,or doubleword format
			      C WriteChar PROTO		; write single character to output
			      C WriteDec PROTO		; write unsigned decimal integer to output
			      C WriteFloat PROTO		; write ST(0) to console in floating-point format
			      C WriteHex PROTO		; write hexadecimal integer to output
			      C WriteHexB PROTO		; write hexadecimal integer in word or doubleword format
			      C WriteInt PROTO		; write signed integer to output
			      C ;WriteStackFrame		; write stack frame data (James Brink--see proto later in this file)
			      C ;WriteStackFrameName		; write stack frame data with proc name (James Brink)
			      C WriteString PROTO		; write null-terminated string to output
			      C WriteToFile PROTO		; write a buffer to an output file
			      C WriteWindowsMsg PROTO		; write last error message generated by MS-Windows
			      C 
			      C 
			      C ; Copy a source string to a target string.
			      C Str_copy PROTO,
			      C  	source:PTR BYTE,
			      C  	target:PTR BYTE
			      C 
			      C ; Return the length of a null-terminated string..
			      C Str_length PROTO,
			      C 	pString:PTR BYTE
			      C 
			      C ; Compare string1 to string2. Set the Zero and
			      C ; Carry flags in the same way as the CMP instruction.
			      C Str_compare PROTO,
			      C 	string1:PTR BYTE,
			      C 	string2:PTR BYTE
			      C 
			      C ; Trim a given trailing character from a string.
			      C ; The second argument is the character to trim.
			      C Str_trim PROTO,
			      C 	pString:PTR BYTE,
			      C 	char:BYTE
			      C 
			      C ; Convert a null-terminated string to upper case.
			      C Str_ucase PROTO,
			      C 	pString:PTR BYTE
			      C 
			      C ;******** Procedures by James Brink ********************************
			      C ; Used by permission.
			      C 
			      C WriteStackFrameName PROTO,
			      C            numParam:DWORD,     ; number of parameters passed to the procedure
			      C            numLocalVal: DWORD, ; number of DWordLocal variables
			      C            numSavedReg: DWORD, ; number of saved registers
			      C            procName: PTR BYTE
			      C 
			      C WriteStackFrame PROTO,
			      C            numParam:DWORD,     ; number of parameters passed to the procedure
			      C            numLocalVal: DWORD, ; number of DWordLocal variables
			      C            numSavedReg: DWORD  ; number of saved registers
			      C 
			      C 
			      C ;-----------------------------------
			      C ; Standard 4-bit color definitions
			      C ;-----------------------------------
 = 00000000		      C black        = 0000b
 = 00000001		      C blue         = 0001b
 = 00000002		      C green        = 0010b
 = 00000003		      C cyan         = 0011b
 = 00000004		      C red          = 0100b
 = 00000005		      C magenta      = 0101b
 = 00000006		      C brown        = 0110b
 = 00000007		      C lightGray    = 0111b
 = 00000008		      C gray         = 1000b
 = 00000009		      C lightBlue    = 1001b
 = 0000000A		      C lightGreen   = 1010b
 = 0000000B		      C lightCyan    = 1011b
 = 0000000C		      C lightRed     = 1100b
 = 0000000D		      C lightMagenta = 1101b
 = 0000000E		      C yellow       = 1110b
 = 0000000F		      C white        = 1111b
			      C 
			      C ; This structure is returned by the FSTSW
			      C ; instruction in protected mode:
			      C 
 0000001C		      C FPU_ENVIRON STRUCT
 00000000  0000		      C 	controlWord    WORD ?
			      C 	ALIGN DWORD
 00000004  0000		      C 	statusWord     WORD ?
			      C 	ALIGN DWORD
 00000008  0000		      C 	tagWord        WORD ?
			      C 	ALIGN DWORD
 0000000C  00000000	      C 	instrPointerOffset     DWORD ?
 00000010  00000000	      C 	instrPointerSelector   DWORD ?
 00000014  00000000	      C 	operandPointerOffset   DWORD ?
 00000018  0000		      C 	operandPointerSelector WORD ?
 0000001A  0000		      C 	WORD ?	; not used
			      C FPU_ENVIRON ENDS
			      C 
			      C .LIST
			      C 

 00000000			.data
 = 00000001				val1 = 1
 = 00000001				val2 = 1

 00000000  00000001			DWORD val1				; first two values
 00000004  00000001			DWORD val2

 = 00000002				val3 = val1 + val2

					WHILE val3 LT 0F0000000h
						DWORD val3
						val1 = val2
						val2 = val3
						val3 = val1 + val2
					ENDM
 00000008  00000002	     1			DWORD val3
 = 00000001		     1			val1 = val2
 = 00000002		     1			val2 = val3
 = 00000003		     1			val3 = val1 + val2
 0000000C  00000003	     1			DWORD val3
 = 00000002		     1			val1 = val2
 = 00000003		     1			val2 = val3
 = 00000005		     1			val3 = val1 + val2
 00000010  00000005	     1			DWORD val3
 = 00000003		     1			val1 = val2
 = 00000005		     1			val2 = val3
 = 00000008		     1			val3 = val1 + val2
 00000014  00000008	     1			DWORD val3
 = 00000005		     1			val1 = val2
 = 00000008		     1			val2 = val3
 = 0000000D		     1			val3 = val1 + val2
 00000018  0000000D	     1			DWORD val3
 = 00000008		     1			val1 = val2
 = 0000000D		     1			val2 = val3
 = 00000015		     1			val3 = val1 + val2
 0000001C  00000015	     1			DWORD val3
 = 0000000D		     1			val1 = val2
 = 00000015		     1			val2 = val3
 = 00000022		     1			val3 = val1 + val2
 00000020  00000022	     1			DWORD val3
 = 00000015		     1			val1 = val2
 = 00000022		     1			val2 = val3
 = 00000037		     1			val3 = val1 + val2
 00000024  00000037	     1			DWORD val3
 = 00000022		     1			val1 = val2
 = 00000037		     1			val2 = val3
 = 00000059		     1			val3 = val1 + val2
 00000028  00000059	     1			DWORD val3
 = 00000037		     1			val1 = val2
 = 00000059		     1			val2 = val3
 = 00000090		     1			val3 = val1 + val2
 0000002C  00000090	     1			DWORD val3
 = 00000059		     1			val1 = val2
 = 00000090		     1			val2 = val3
 = 000000E9		     1			val3 = val1 + val2
 00000030  000000E9	     1			DWORD val3
 = 00000090		     1			val1 = val2
 = 000000E9		     1			val2 = val3
 = 00000179		     1			val3 = val1 + val2
 00000034  00000179	     1			DWORD val3
 = 000000E9		     1			val1 = val2
 = 00000179		     1			val2 = val3
 = 00000262		     1			val3 = val1 + val2
 00000038  00000262	     1			DWORD val3
 = 00000179		     1			val1 = val2
 = 00000262		     1			val2 = val3
 = 000003DB		     1			val3 = val1 + val2
 0000003C  000003DB	     1			DWORD val3
 = 00000262		     1			val1 = val2
 = 000003DB		     1			val2 = val3
 = 0000063D		     1			val3 = val1 + val2
 00000040  0000063D	     1			DWORD val3
 = 000003DB		     1			val1 = val2
 = 0000063D		     1			val2 = val3
 = 00000A18		     1			val3 = val1 + val2
 00000044  00000A18	     1			DWORD val3
 = 0000063D		     1			val1 = val2
 = 00000A18		     1			val2 = val3
 = 00001055		     1			val3 = val1 + val2
 00000048  00001055	     1			DWORD val3
 = 00000A18		     1			val1 = val2
 = 00001055		     1			val2 = val3
 = 00001A6D		     1			val3 = val1 + val2
 0000004C  00001A6D	     1			DWORD val3
 = 00001055		     1			val1 = val2
 = 00001A6D		     1			val2 = val3
 = 00002AC2		     1			val3 = val1 + val2
 00000050  00002AC2	     1			DWORD val3
 = 00001A6D		     1			val1 = val2
 = 00002AC2		     1			val2 = val3
 = 0000452F		     1			val3 = val1 + val2
 00000054  0000452F	     1			DWORD val3
 = 00002AC2		     1			val1 = val2
 = 0000452F		     1			val2 = val3
 = 00006FF1		     1			val3 = val1 + val2
 00000058  00006FF1	     1			DWORD val3
 = 0000452F		     1			val1 = val2
 = 00006FF1		     1			val2 = val3
 = 0000B520		     1			val3 = val1 + val2
 0000005C  0000B520	     1			DWORD val3
 = 00006FF1		     1			val1 = val2
 = 0000B520		     1			val2 = val3
 = 00012511		     1			val3 = val1 + val2
 00000060  00012511	     1			DWORD val3
 = 0000B520		     1			val1 = val2
 = 00012511		     1			val2 = val3
 = 0001DA31		     1			val3 = val1 + val2
 00000064  0001DA31	     1			DWORD val3
 = 00012511		     1			val1 = val2
 = 0001DA31		     1			val2 = val3
 = 0002FF42		     1			val3 = val1 + val2
 00000068  0002FF42	     1			DWORD val3
 = 0001DA31		     1			val1 = val2
 = 0002FF42		     1			val2 = val3
 = 0004D973		     1			val3 = val1 + val2
 0000006C  0004D973	     1			DWORD val3
 = 0002FF42		     1			val1 = val2
 = 0004D973		     1			val2 = val3
 = 0007D8B5		     1			val3 = val1 + val2
 00000070  0007D8B5	     1			DWORD val3
 = 0004D973		     1			val1 = val2
 = 0007D8B5		     1			val2 = val3
 = 000CB228		     1			val3 = val1 + val2
 00000074  000CB228	     1			DWORD val3
 = 0007D8B5		     1			val1 = val2
 = 000CB228		     1			val2 = val3
 = 00148ADD		     1			val3 = val1 + val2
 00000078  00148ADD	     1			DWORD val3
 = 000CB228		     1			val1 = val2
 = 00148ADD		     1			val2 = val3
 = 00213D05		     1			val3 = val1 + val2
 0000007C  00213D05	     1			DWORD val3
 = 00148ADD		     1			val1 = val2
 = 00213D05		     1			val2 = val3
 = 0035C7E2		     1			val3 = val1 + val2
 00000080  0035C7E2	     1			DWORD val3
 = 00213D05		     1			val1 = val2
 = 0035C7E2		     1			val2 = val3
 = 005704E7		     1			val3 = val1 + val2
 00000084  005704E7	     1			DWORD val3
 = 0035C7E2		     1			val1 = val2
 = 005704E7		     1			val2 = val3
 = 008CCCC9		     1			val3 = val1 + val2
 00000088  008CCCC9	     1			DWORD val3
 = 005704E7		     1			val1 = val2
 = 008CCCC9		     1			val2 = val3
 = 00E3D1B0		     1			val3 = val1 + val2
 0000008C  00E3D1B0	     1			DWORD val3
 = 008CCCC9		     1			val1 = val2
 = 00E3D1B0		     1			val2 = val3
 = 01709E79		     1			val3 = val1 + val2
 00000090  01709E79	     1			DWORD val3
 = 00E3D1B0		     1			val1 = val2
 = 01709E79		     1			val2 = val3
 = 02547029		     1			val3 = val1 + val2
 00000094  02547029	     1			DWORD val3
 = 01709E79		     1			val1 = val2
 = 02547029		     1			val2 = val3
 = 03C50EA2		     1			val3 = val1 + val2
 00000098  03C50EA2	     1			DWORD val3
 = 02547029		     1			val1 = val2
 = 03C50EA2		     1			val2 = val3
 = 06197ECB		     1			val3 = val1 + val2
 0000009C  06197ECB	     1			DWORD val3
 = 03C50EA2		     1			val1 = val2
 = 06197ECB		     1			val2 = val3
 = 09DE8D6D		     1			val3 = val1 + val2
 000000A0  09DE8D6D	     1			DWORD val3
 = 06197ECB		     1			val1 = val2
 = 09DE8D6D		     1			val2 = val3
 = 0FF80C38		     1			val3 = val1 + val2
 000000A4  0FF80C38	     1			DWORD val3
 = 09DE8D6D		     1			val1 = val2
 = 0FF80C38		     1			val2 = val3
 = 19D699A5		     1			val3 = val1 + val2
 000000A8  19D699A5	     1			DWORD val3
 = 0FF80C38		     1			val1 = val2
 = 19D699A5		     1			val2 = val3
 = 29CEA5DD		     1			val3 = val1 + val2
 000000AC  29CEA5DD	     1			DWORD val3
 = 19D699A5		     1			val1 = val2
 = 29CEA5DD		     1			val2 = val3
 = 43A53F82		     1			val3 = val1 + val2
 000000B0  43A53F82	     1			DWORD val3
 = 29CEA5DD		     1			val1 = val2
 = 43A53F82		     1			val2 = val3
 = 6D73E55F		     1			val3 = val1 + val2
 000000B4  6D73E55F	     1			DWORD val3
 = 43A53F82		     1			val1 = val2
 = 6D73E55F		     1			val2 = val3
 = B11924E1		     1			val3 = val1 + val2
 000000B8  B11924E1	     1			DWORD val3
 = 6D73E55F		     1			val1 = val2
 = B11924E1		     1			val2 = val3
 = 1E8D0A40		     1			val3 = val1 + val2

 00000000			.code
 00000000				main PROC



						exit
 00000000  6A 00	   *	    push   +000000000h
 00000002  E8 00000000 E   *	    call   ExitProcess
 00000007				main ENDP
				END main
Microsoft (R) Macro Assembler Version 14.25.28610.4	    06/04/20 16:04:11
1.asm							     Symbols 2 - 1




Structures and Unions:

                N a m e                  Size
                                         Offset      Type

CONSOLE_CURSOR_INFO  . . . . . .	 00000008
  dwSize . . . . . . . . . . . .	 00000000	 DWord
  bVisible . . . . . . . . . . .	 00000004	 DWord
CONSOLE_SCREEN_BUFFER_INFO . . .	 00000016
  dwSize . . . . . . . . . . . .	 00000000	 DWord
  dwCursorPosition . . . . . . .	 00000004	 DWord
  wAttributes  . . . . . . . . .	 00000008	 Word
  srWindow . . . . . . . . . . .	 0000000A	 QWord
  dwMaximumWindowSize  . . . . .	 00000012	 DWord
COORD  . . . . . . . . . . . . .	 00000004
  X  . . . . . . . . . . . . . .	 00000000	 Word
  Y  . . . . . . . . . . . . . .	 00000002	 Word
FILETIME . . . . . . . . . . . .	 00000008
  loDateTime . . . . . . . . . .	 00000000	 DWord
  hiDateTime . . . . . . . . . .	 00000004	 DWord
FOCUS_EVENT_RECORD . . . . . . .	 00000004
  bSetFocus  . . . . . . . . . .	 00000000	 DWord
FPU_ENVIRON  . . . . . . . . . .	 0000001C
  controlWord  . . . . . . . . .	 00000000	 Word
  statusWord . . . . . . . . . .	 00000004	 Word
  tagWord  . . . . . . . . . . .	 00000008	 Word
  instrPointerOffset . . . . . .	 0000000C	 DWord
  instrPointerSelector . . . . .	 00000010	 DWord
  operandPointerOffset . . . . .	 00000014	 DWord
  operandPointerSelector . . . .	 00000018	 Word
INPUT_RECORD . . . . . . . . . .	 00000014
  EventType  . . . . . . . . . .	 00000000	 Word
  Event  . . . . . . . . . . . .	 00000004	 XmmWord
  bKeyDown . . . . . . . . . . .	 00000000	 DWord
  wRepeatCount . . . . . . . . .	 00000004	 Word
  wVirtualKeyCode  . . . . . . .	 00000006	 Word
  wVirtualScanCode . . . . . . .	 00000008	 Word
  uChar  . . . . . . . . . . . .	 0000000A	 Word
  UnicodeChar  . . . . . . . . .	 00000000	 Word
  AsciiChar  . . . . . . . . . .	 00000000	 Byte
  dwControlKeyState  . . . . . .	 0000000C	 DWord
  dwMousePosition  . . . . . . .	 00000000	 DWord
  dwButtonState  . . . . . . . .	 00000004	 DWord
  dwMouseControlKeyState . . . .	 00000008	 DWord
  dwEventFlags . . . . . . . . .	 0000000C	 DWord
  dwSize . . . . . . . . . . . .	 00000000	 DWord
  dwCommandId  . . . . . . . . .	 00000000	 DWord
  bSetFocus  . . . . . . . . . .	 00000000	 DWord
KEY_EVENT_RECORD . . . . . . . .	 00000010
  bKeyDown . . . . . . . . . . .	 00000000	 DWord
  wRepeatCount . . . . . . . . .	 00000004	 Word
  wVirtualKeyCode  . . . . . . .	 00000006	 Word
  wVirtualScanCode . . . . . . .	 00000008	 Word
  uChar  . . . . . . . . . . . .	 0000000A	 Word
  UnicodeChar  . . . . . . . . .	 00000000	 Word
  AsciiChar  . . . . . . . . . .	 00000000	 Byte
  dwControlKeyState  . . . . . .	 0000000C	 DWord
MENU_EVENT_RECORD  . . . . . . .	 00000004
  dwCommandId  . . . . . . . . .	 00000000	 DWord
MOUSE_EVENT_RECORD . . . . . . .	 00000010
  dwMousePosition  . . . . . . .	 00000000	 DWord
  dwButtonState  . . . . . . . .	 00000004	 DWord
  dwMouseControlKeyState . . . .	 00000008	 DWord
  dwEventFlags . . . . . . . . .	 0000000C	 DWord
SMALL_RECT . . . . . . . . . . .	 00000008
  Left . . . . . . . . . . . . .	 00000000	 Word
  Top  . . . . . . . . . . . . .	 00000002	 Word
  Right  . . . . . . . . . . . .	 00000004	 Word
  Bottom . . . . . . . . . . . .	 00000006	 Word
SYSTEMTIME . . . . . . . . . . .	 00000010
  wYear  . . . . . . . . . . . .	 00000000	 Word
  wMonth . . . . . . . . . . . .	 00000002	 Word
  wDayOfWeek . . . . . . . . . .	 00000004	 Word
  wDay . . . . . . . . . . . . .	 00000006	 Word
  wHour  . . . . . . . . . . . .	 00000008	 Word
  wMinute  . . . . . . . . . . .	 0000000A	 Word
  wSecond  . . . . . . . . . . .	 0000000C	 Word
  wMilliseconds  . . . . . . . .	 0000000E	 Word
WINDOW_BUFFER_SIZE_RECORD  . . .	 00000004
  dwSize . . . . . . . . . . . .	 00000000	 DWord


Segments and Groups:

                N a m e                 Size     Length   Align   Combine Class

FLAT . . . . . . . . . . . . . .	GROUP
STACK  . . . . . . . . . . . . .	32 Bit	 00001000 Para	  Stack	  'STACK'	 
_DATA  . . . . . . . . . . . . .	32 Bit	 000000BC Para	  Public  'DATA'	
_TEXT  . . . . . . . . . . . . .	32 Bit	 00000007 Para	  Public  'CODE'	


Procedures, parameters, and locals:

                N a m e                 Type     Value    Attr

CloseFile  . . . . . . . . . . .	P Near	 00000000 FLAT	Length= 00000000 External STDCALL
CloseHandle  . . . . . . . . . .	P Near	 00000000 FLAT	Length= 00000000 External STDCALL
Clrscr . . . . . . . . . . . . .	P Near	 00000000 FLAT	Length= 00000000 External STDCALL
CreateFileA  . . . . . . . . . .	P Near	 00000000 FLAT	Length= 00000000 External STDCALL
CreateOutputFile . . . . . . . .	P Near	 00000000 FLAT	Length= 00000000 External STDCALL
Crlf . . . . . . . . . . . . . .	P Near	 00000000 FLAT	Length= 00000000 External STDCALL
Delay  . . . . . . . . . . . . .	P Near	 00000000 FLAT	Length= 00000000 External STDCALL
DumpMem  . . . . . . . . . . . .	P Near	 00000000 FLAT	Length= 00000000 External STDCALL
DumpRegs . . . . . . . . . . . .	P Near	 00000000 FLAT	Length= 00000000 External STDCALL
ExitProcess  . . . . . . . . . .	P Near	 00000000 FLAT	Length= 00000000 External STDCALL
FileTimeToDosDateTime  . . . . .	P Near	 00000000 FLAT	Length= 00000000 External STDCALL
FileTimeToSystemTime . . . . . .	P Near	 00000000 FLAT	Length= 00000000 External STDCALL
FlushConsoleInputBuffer  . . . .	P Near	 00000000 FLAT	Length= 00000000 External STDCALL
FormatMessageA . . . . . . . . .	P Near	 00000000 FLAT	Length= 00000000 External STDCALL
GetCommandLineA  . . . . . . . .	P Near	 00000000 FLAT	Length= 00000000 External STDCALL
GetCommandTail . . . . . . . . .	P Near	 00000000 FLAT	Length= 00000000 External STDCALL
GetConsoleCP . . . . . . . . . .	P Near	 00000000 FLAT	Length= 00000000 External STDCALL
GetConsoleCursorInfo . . . . . .	P Near	 00000000 FLAT	Length= 00000000 External STDCALL
GetConsoleMode . . . . . . . . .	P Near	 00000000 FLAT	Length= 00000000 External STDCALL
GetConsoleScreenBufferInfo . . .	P Near	 00000000 FLAT	Length= 00000000 External STDCALL
GetDateTime  . . . . . . . . . .	P Near	 00000000 FLAT	Length= 00000000 External STDCALL
GetFileTime  . . . . . . . . . .	P Near	 00000000 FLAT	Length= 00000000 External STDCALL
GetKeyState  . . . . . . . . . .	P Near	 00000000 FLAT	Length= 00000000 External STDCALL
GetLastError . . . . . . . . . .	P Near	 00000000 FLAT	Length= 00000000 External STDCALL
GetLocalTime . . . . . . . . . .	P Near	 00000000 FLAT	Length= 00000000 External STDCALL
GetMaxXY . . . . . . . . . . . .	P Near	 00000000 FLAT	Length= 00000000 External STDCALL
GetMseconds  . . . . . . . . . .	P Near	 00000000 FLAT	Length= 00000000 External STDCALL
GetNumberOfConsoleInputEvents  .	P Near	 00000000 FLAT	Length= 00000000 External STDCALL
GetProcessHeap . . . . . . . . .	P Near	 00000000 FLAT	Length= 00000000 External STDCALL
GetStdHandle . . . . . . . . . .	P Near	 00000000 FLAT	Length= 00000000 External STDCALL
GetSystemTime  . . . . . . . . .	P Near	 00000000 FLAT	Length= 00000000 External STDCALL
GetTextColor . . . . . . . . . .	P Near	 00000000 FLAT	Length= 00000000 External STDCALL
GetTickCount . . . . . . . . . .	P Near	 00000000 FLAT	Length= 00000000 External STDCALL
Gotoxy . . . . . . . . . . . . .	P Near	 00000000 FLAT	Length= 00000000 External STDCALL
HeapAlloc  . . . . . . . . . . .	P Near	 00000000 FLAT	Length= 00000000 External STDCALL
HeapCreate . . . . . . . . . . .	P Near	 00000000 FLAT	Length= 00000000 External STDCALL
HeapDestroy  . . . . . . . . . .	P Near	 00000000 FLAT	Length= 00000000 External STDCALL
HeapFree . . . . . . . . . . . .	P Near	 00000000 FLAT	Length= 00000000 External STDCALL
HeapSize . . . . . . . . . . . .	P Near	 00000000 FLAT	Length= 00000000 External STDCALL
IsDigit  . . . . . . . . . . . .	P Near	 00000000 FLAT	Length= 00000000 External STDCALL
LocalFree  . . . . . . . . . . .	P Near	 00000000 FLAT	Length= 00000000 External STDCALL
MessageBoxA  . . . . . . . . . .	P Near	 00000000 FLAT	Length= 00000000 External STDCALL
MsgBoxAsk  . . . . . . . . . . .	P Near	 00000000 FLAT	Length= 00000000 External STDCALL
MsgBox . . . . . . . . . . . . .	P Near	 00000000 FLAT	Length= 00000000 External STDCALL
OpenInputFile  . . . . . . . . .	P Near	 00000000 FLAT	Length= 00000000 External STDCALL
ParseDecimal32 . . . . . . . . .	P Near	 00000000 FLAT	Length= 00000000 External STDCALL
ParseInteger32 . . . . . . . . .	P Near	 00000000 FLAT	Length= 00000000 External STDCALL
PeekConsoleInputA  . . . . . . .	P Near	 00000000 FLAT	Length= 00000000 External STDCALL
Random32 . . . . . . . . . . . .	P Near	 00000000 FLAT	Length= 00000000 External STDCALL
RandomRange  . . . . . . . . . .	P Near	 00000000 FLAT	Length= 00000000 External STDCALL
Randomize  . . . . . . . . . . .	P Near	 00000000 FLAT	Length= 00000000 External STDCALL
ReadChar . . . . . . . . . . . .	P Near	 00000000 FLAT	Length= 00000000 External STDCALL
ReadConsoleA . . . . . . . . . .	P Near	 00000000 FLAT	Length= 00000000 External STDCALL
ReadConsoleInputA  . . . . . . .	P Near	 00000000 FLAT	Length= 00000000 External STDCALL
ReadDec  . . . . . . . . . . . .	P Near	 00000000 FLAT	Length= 00000000 External STDCALL
ReadFile . . . . . . . . . . . .	P Near	 00000000 FLAT	Length= 00000000 External STDCALL
ReadFloat  . . . . . . . . . . .	P Near	 00000000 FLAT	Length= 00000000 External STDCALL
ReadFromFile . . . . . . . . . .	P Near	 00000000 FLAT	Length= 00000000 External STDCALL
ReadHex  . . . . . . . . . . . .	P Near	 00000000 FLAT	Length= 00000000 External STDCALL
ReadInt  . . . . . . . . . . . .	P Near	 00000000 FLAT	Length= 00000000 External STDCALL
ReadKeyFlush . . . . . . . . . .	P Near	 00000000 FLAT	Length= 00000000 External STDCALL
ReadKey  . . . . . . . . . . . .	P Near	 00000000 FLAT	Length= 00000000 External STDCALL
ReadString . . . . . . . . . . .	P Near	 00000000 FLAT	Length= 00000000 External STDCALL
SetConsoleCursorInfo . . . . . .	P Near	 00000000 FLAT	Length= 00000000 External STDCALL
SetConsoleCursorPosition . . . .	P Near	 00000000 FLAT	Length= 00000000 External STDCALL
SetConsoleMode . . . . . . . . .	P Near	 00000000 FLAT	Length= 00000000 External STDCALL
SetConsoleScreenBufferSize . . .	P Near	 00000000 FLAT	Length= 00000000 External STDCALL
SetConsoleTextAttribute  . . . .	P Near	 00000000 FLAT	Length= 00000000 External STDCALL
SetConsoleTitleA . . . . . . . .	P Near	 00000000 FLAT	Length= 00000000 External STDCALL
SetConsoleWindowInfo . . . . . .	P Near	 00000000 FLAT	Length= 00000000 External STDCALL
SetFilePointer . . . . . . . . .	P Near	 00000000 FLAT	Length= 00000000 External STDCALL
SetLocalTime . . . . . . . . . .	P Near	 00000000 FLAT	Length= 00000000 External STDCALL
SetTextColor . . . . . . . . . .	P Near	 00000000 FLAT	Length= 00000000 External STDCALL
ShowFPUStack . . . . . . . . . .	P Near	 00000000 FLAT	Length= 00000000 External STDCALL
Sleep  . . . . . . . . . . . . .	P Near	 00000000 FLAT	Length= 00000000 External STDCALL
StrLength  . . . . . . . . . . .	P Near	 00000000 FLAT	Length= 00000000 External STDCALL
Str_compare  . . . . . . . . . .	P Near	 00000000 FLAT	Length= 00000000 External STDCALL
Str_copy . . . . . . . . . . . .	P Near	 00000000 FLAT	Length= 00000000 External STDCALL
Str_length . . . . . . . . . . .	P Near	 00000000 FLAT	Length= 00000000 External STDCALL
Str_trim . . . . . . . . . . . .	P Near	 00000000 FLAT	Length= 00000000 External STDCALL
Str_ucase  . . . . . . . . . . .	P Near	 00000000 FLAT	Length= 00000000 External STDCALL
SystemTimeToFileTime . . . . . .	P Near	 00000000 FLAT	Length= 00000000 External STDCALL
WaitMsg  . . . . . . . . . . . .	P Near	 00000000 FLAT	Length= 00000000 External STDCALL
WriteBinB  . . . . . . . . . . .	P Near	 00000000 FLAT	Length= 00000000 External STDCALL
WriteBin . . . . . . . . . . . .	P Near	 00000000 FLAT	Length= 00000000 External STDCALL
WriteChar  . . . . . . . . . . .	P Near	 00000000 FLAT	Length= 00000000 External STDCALL
WriteConsoleA  . . . . . . . . .	P Near	 00000000 FLAT	Length= 00000000 External STDCALL
WriteConsoleOutputAttribute  . .	P Near	 00000000 FLAT	Length= 00000000 External STDCALL
WriteConsoleOutputCharacterA . .	P Near	 00000000 FLAT	Length= 00000000 External STDCALL
WriteDec . . . . . . . . . . . .	P Near	 00000000 FLAT	Length= 00000000 External STDCALL
WriteFile  . . . . . . . . . . .	P Near	 00000000 FLAT	Length= 00000000 External STDCALL
WriteFloat . . . . . . . . . . .	P Near	 00000000 FLAT	Length= 00000000 External STDCALL
WriteHexB  . . . . . . . . . . .	P Near	 00000000 FLAT	Length= 00000000 External STDCALL
WriteHex . . . . . . . . . . . .	P Near	 00000000 FLAT	Length= 00000000 External STDCALL
WriteInt . . . . . . . . . . . .	P Near	 00000000 FLAT	Length= 00000000 External STDCALL
WriteStackFrameName  . . . . . .	P Near	 00000000 FLAT	Length= 00000000 External STDCALL
WriteStackFrame  . . . . . . . .	P Near	 00000000 FLAT	Length= 00000000 External STDCALL
WriteString  . . . . . . . . . .	P Near	 00000000 FLAT	Length= 00000000 External STDCALL
WriteToFile  . . . . . . . . . .	P Near	 00000000 FLAT	Length= 00000000 External STDCALL
WriteWindowsMsg  . . . . . . . .	P Near	 00000000 FLAT	Length= 00000000 External STDCALL
main . . . . . . . . . . . . . .	P Near	 00000000 _TEXT	Length= 00000007 Public STDCALL
printf . . . . . . . . . . . . .	P Near	 00000000 FLAT	Length= 00000000 External C
scanf  . . . . . . . . . . . . .	P Near	 00000000 FLAT	Length= 00000000 External C
wsprintfA  . . . . . . . . . . .	P Near	 00000000 FLAT	Length= 00000000 External C


Symbols:

                N a m e                 Type     Value    Attr

@CodeSize  . . . . . . . . . . .	Number	 00000000h   
@DataSize  . . . . . . . . . . .	Number	 00000000h   
@Interface . . . . . . . . . . .	Number	 00000003h   
@Model . . . . . . . . . . . . .	Number	 00000007h   
@code  . . . . . . . . . . . . .	Text   	 _TEXT
@data  . . . . . . . . . . . . .	Text   	 FLAT
@fardata?  . . . . . . . . . . .	Text   	 FLAT
@fardata . . . . . . . . . . . .	Text   	 FLAT
@stack . . . . . . . . . . . . .	Text   	 FLAT
ALT_MASK . . . . . . . . . . . .	Number	 00000003h   
CAPSLOCK_ON  . . . . . . . . . .	Number	 00000080h   
CREATE_ALWAYS  . . . . . . . . .	Number	 00000002h   
CREATE_NEW . . . . . . . . . . .	Number	 00000001h   
CTRL_MASK  . . . . . . . . . . .	Number	 0000000Ch   
CreateFile . . . . . . . . . . .	Text   	 CreateFileA
DO_NOT_SHARE . . . . . . . . . .	Number	 00000000h   
ENABLE_ECHO_INPUT  . . . . . . .	Number	 00000004h   
ENABLE_LINE_INPUT  . . . . . . .	Number	 00000002h   
ENABLE_MOUSE_INPUT . . . . . . .	Number	 00000010h   
ENABLE_PROCESSED_INPUT . . . . .	Number	 00000001h   
ENABLE_PROCESSED_OUTPUT  . . . .	Number	 00000001h   
ENABLE_WINDOW_INPUT  . . . . . .	Number	 00000008h   
ENABLE_WRAP_AT_EOL_OUTPUT  . . .	Number	 00000002h   
ENHANCED_KEY . . . . . . . . . .	Number	 00000100h   
FALSE  . . . . . . . . . . . . .	Number	 00000000h   
FILE_APPEND_DATA . . . . . . . .	Number	 00000004h   
FILE_ATTRIBUTE_ARCHIVE . . . . .	Number	 00000020h   
FILE_ATTRIBUTE_COMPRESSED  . . .	Number	 00000800h   
FILE_ATTRIBUTE_DEVICE  . . . . .	Number	 00000040h   
FILE_ATTRIBUTE_DIRECTORY . . . .	Number	 00000010h   
FILE_ATTRIBUTE_ENCRYPTED . . . .	Number	 00004000h   
FILE_ATTRIBUTE_HIDDEN  . . . . .	Number	 00000002h   
FILE_ATTRIBUTE_NORMAL  . . . . .	Number	 00000080h   
FILE_ATTRIBUTE_NOT_CONTENT_INDEXED .	Number	 00002000h   
FILE_ATTRIBUTE_OFFLINE . . . . .	Number	 00001000h   
FILE_ATTRIBUTE_READONLY  . . . .	Number	 00000001h   
FILE_ATTRIBUTE_REPARSE_POINT . .	Number	 00000400h   
FILE_ATTRIBUTE_SPARSE_FILE . . .	Number	 00000200h   
FILE_ATTRIBUTE_SYSTEM  . . . . .	Number	 00000004h   
FILE_ATTRIBUTE_TEMPORARY . . . .	Number	 00000100h   
FILE_BEGIN . . . . . . . . . . .	Number	 00000000h   
FILE_CURRENT . . . . . . . . . .	Number	 00000001h   
FILE_DELETE_CHILD  . . . . . . .	Number	 00000040h   
FILE_END . . . . . . . . . . . .	Number	 00000002h   
FILE_READ_DATA . . . . . . . . .	Number	 00000001h   
FILE_SHARE_DELETE  . . . . . . .	Number	 00000004h   
FILE_SHARE_READ  . . . . . . . .	Number	 00000001h   
FILE_SHARE_WRITE . . . . . . . .	Number	 00000002h   
FILE_WRITE_DATA  . . . . . . . .	Number	 00000002h   
FOCUS_EVENT  . . . . . . . . . .	Number	 00000010h   
FORMAT_MESSAGE_ALLOCATE_BUFFER .	Number	 00000100h   
FORMAT_MESSAGE_FROM_SYSTEM . . .	Number	 00001000h   
FormatMessage  . . . . . . . . .	Text   	 FormatMessageA
GENERIC_ALL  . . . . . . . . . .	Number	 10000000h   
GENERIC_EXECUTE  . . . . . . . .	Number	 20000000h   
GENERIC_READ . . . . . . . . . .	Number	 -80000000h   
GENERIC_WRITE  . . . . . . . . .	Number	 40000000h   
GetCommandLine . . . . . . . . .	Text   	 GetCommandLineA
HANDLE . . . . . . . . . . . . .	Text   	 DWORD
HEAP_GENERATE_EXCEPTIONS . . . .	Number	 00000004h   
HEAP_GROWABLE  . . . . . . . . .	Number	 00000002h   
HEAP_NO_SERIALIZE  . . . . . . .	Number	 00000001h   
HEAP_REALLOC_IN_PLACE_ONLY . . .	Number	 00000010h   
HEAP_ZERO_MEMORY . . . . . . . .	Number	 00000008h   
IDABORT  . . . . . . . . . . . .	Number	 00000003h   
IDCANCEL . . . . . . . . . . . .	Number	 00000002h   
IDCLOSE  . . . . . . . . . . . .	Number	 00000008h   
IDCONTINUE . . . . . . . . . . .	Number	 0000000Bh   
IDHELP . . . . . . . . . . . . .	Number	 00000009h   
IDIGNORE . . . . . . . . . . . .	Number	 00000005h   
IDNO . . . . . . . . . . . . . .	Number	 00000007h   
IDOK . . . . . . . . . . . . . .	Number	 00000001h   
IDRETRY  . . . . . . . . . . . .	Number	 00000004h   
IDTIMEOUT  . . . . . . . . . . .	Number	 00007D00h   
IDTRYAGAIN . . . . . . . . . . .	Number	 0000000Ah   
IDYES  . . . . . . . . . . . . .	Number	 00000006h   
INVALID_HANDLE_VALUE . . . . . .	Number	 -00000001h   
KBDOWN_FLAG  . . . . . . . . . .	Number	 00000001h   
KEY_EVENT  . . . . . . . . . . .	Number	 00000001h   
KEY_MASKS  . . . . . . . . . . .	Number	 0000001Fh   
LEFT_ALT_PRESSED . . . . . . . .	Number	 00000002h   
LEFT_CTRL_PRESSED  . . . . . . .	Number	 00000008h   
MB_ABORTRETRYIGNORE  . . . . . .	Number	 00000002h   
MB_APPLMODAL . . . . . . . . . .	Number	 00000000h   
MB_CANCELTRYCONTINUE . . . . . .	Number	 00000006h   
MB_DEFBUTTON1  . . . . . . . . .	Number	 00000000h   
MB_DEFBUTTON2  . . . . . . . . .	Number	 00000100h   
MB_DEFBUTTON3  . . . . . . . . .	Number	 00000200h   
MB_DEFBUTTON4  . . . . . . . . .	Number	 00000300h   
MB_HELP  . . . . . . . . . . . .	Number	 00004000h   
MB_ICONASTERISK  . . . . . . . .	Number	 00000040h   
MB_ICONERROR . . . . . . . . . .	Number	 00000010h   
MB_ICONEXCLAMATION . . . . . . .	Number	 00000030h   
MB_ICONHAND  . . . . . . . . . .	Number	 00000010h   
MB_ICONINFORMATION . . . . . . .	Number	 00000040h   
MB_ICONQUESTION  . . . . . . . .	Number	 00000020h   
MB_ICONSTOP  . . . . . . . . . .	Number	 00000010h   
MB_ICONWARNING . . . . . . . . .	Number	 00000030h   
MB_OKCANCEL  . . . . . . . . . .	Number	 00000001h   
MB_OK  . . . . . . . . . . . . .	Number	 00000000h   
MB_RETRYCANCEL . . . . . . . . .	Number	 00000005h   
MB_SYSTEMMODAL . . . . . . . . .	Number	 00001000h   
MB_TASKMODAL . . . . . . . . . .	Number	 00002000h   
MB_USERICON  . . . . . . . . . .	Number	 00000080h   
MB_YESNOCANCEL . . . . . . . . .	Number	 00000003h   
MB_YESNO . . . . . . . . . . . .	Number	 00000004h   
MENU_EVENT . . . . . . . . . . .	Number	 00000008h   
MOUSE_EVENT  . . . . . . . . . .	Number	 00000002h   
MessageBox . . . . . . . . . . .	Text   	 MessageBoxA
NULL . . . . . . . . . . . . . .	Number	 00000000h   
NUMLOCK_ON . . . . . . . . . . .	Number	 00000020h   
OPEN_ALWAYS  . . . . . . . . . .	Number	 00000004h   
OPEN_EXISTING  . . . . . . . . .	Number	 00000003h   
PeekConsoleInput . . . . . . . .	Text   	 PeekConsoleInputA
RIGHT_ALT_PRESSED  . . . . . . .	Number	 00000001h   
RIGHT_CTRL_PRESSED . . . . . . .	Number	 00000004h   
ReadConsoleInput . . . . . . . .	Text   	 ReadConsoleInputA
ReadConsole  . . . . . . . . . .	Text   	 ReadConsoleA
SCROLLLOCK_ON  . . . . . . . . .	Number	 00000040h   
SHIFT_MASK . . . . . . . . . . .	Number	 00000010h   
SHIFT_PRESSED  . . . . . . . . .	Number	 00000010h   
STD_ERROR_HANDLE . . . . . . . .	Number	 -0000000Ch   
STD_INPUT_HANDLE . . . . . . . .	Number	 -0000000Ah   
STD_OUTPUT_HANDLE  . . . . . . .	Number	 -0000000Bh   
SetConsoleTitle  . . . . . . . .	Text   	 SetConsoleTitleA
TAB  . . . . . . . . . . . . . .	Number	 00000009h   
TRUE . . . . . . . . . . . . . .	Number	 00000001h   
TRUNCATE_EXISTING  . . . . . . .	Number	 00000005h   
VK_11  . . . . . . . . . . . . .	Number	 000000BDh   
VK_12  . . . . . . . . . . . . .	Number	 000000BBh   
VK_ADD . . . . . . . . . . . . .	Number	 0000006Bh   
VK_BACK  . . . . . . . . . . . .	Number	 00000008h   
VK_CANCEL  . . . . . . . . . . .	Number	 00000003h   
VK_CAPITAL . . . . . . . . . . .	Number	 00000014h   
VK_CLEAR . . . . . . . . . . . .	Number	 0000000Ch   
VK_CONTROL . . . . . . . . . . .	Number	 00000011h   
VK_DECIMAL . . . . . . . . . . .	Number	 0000006Eh   
VK_DELETE  . . . . . . . . . . .	Number	 0000002Eh   
VK_DIVIDE  . . . . . . . . . . .	Number	 0000006Fh   
VK_DOWN  . . . . . . . . . . . .	Number	 00000028h   
VK_END . . . . . . . . . . . . .	Number	 00000023h   
VK_ESCAPE  . . . . . . . . . . .	Number	 0000001Bh   
VK_EXECUTE . . . . . . . . . . .	Number	 0000002Bh   
VK_F10 . . . . . . . . . . . . .	Number	 00000079h   
VK_F11 . . . . . . . . . . . . .	Number	 0000007Ah   
VK_F12 . . . . . . . . . . . . .	Number	 0000007Bh   
VK_F13 . . . . . . . . . . . . .	Number	 0000007Ch   
VK_F14 . . . . . . . . . . . . .	Number	 0000007Dh   
VK_F15 . . . . . . . . . . . . .	Number	 0000007Eh   
VK_F16 . . . . . . . . . . . . .	Number	 0000007Fh   
VK_F17 . . . . . . . . . . . . .	Number	 00000080h   
VK_F18 . . . . . . . . . . . . .	Number	 00000081h   
VK_F19 . . . . . . . . . . . . .	Number	 00000082h   
VK_F1  . . . . . . . . . . . . .	Number	 00000070h   
VK_F20 . . . . . . . . . . . . .	Number	 00000083h   
VK_F21 . . . . . . . . . . . . .	Number	 00000084h   
VK_F22 . . . . . . . . . . . . .	Number	 00000085h   
VK_F23 . . . . . . . . . . . . .	Number	 00000086h   
VK_F24 . . . . . . . . . . . . .	Number	 00000087h   
VK_F2  . . . . . . . . . . . . .	Number	 00000071h   
VK_F3  . . . . . . . . . . . . .	Number	 00000072h   
VK_F4  . . . . . . . . . . . . .	Number	 00000073h   
VK_F5  . . . . . . . . . . . . .	Number	 00000074h   
VK_F6  . . . . . . . . . . . . .	Number	 00000075h   
VK_F7  . . . . . . . . . . . . .	Number	 00000076h   
VK_F8  . . . . . . . . . . . . .	Number	 00000077h   
VK_F9  . . . . . . . . . . . . .	Number	 00000078h   
VK_HELP  . . . . . . . . . . . .	Number	 0000002Fh   
VK_HOME  . . . . . . . . . . . .	Number	 00000024h   
VK_INSERT  . . . . . . . . . . .	Number	 0000002Dh   
VK_LBUTTON . . . . . . . . . . .	Number	 00000001h   
VK_LCONTROL  . . . . . . . . . .	Number	 000000A2h   
VK_LEFT  . . . . . . . . . . . .	Number	 00000025h   
VK_LMENU . . . . . . . . . . . .	Number	 000000A4h   
VK_LSHIFT  . . . . . . . . . . .	Number	 000000A0h   
VK_MENU  . . . . . . . . . . . .	Number	 00000012h   
VK_MULTIPLY  . . . . . . . . . .	Number	 0000006Ah   
VK_NEXT  . . . . . . . . . . . .	Number	 00000022h   
VK_NUMLOCK . . . . . . . . . . .	Number	 00000090h   
VK_NUMPAD0 . . . . . . . . . . .	Number	 00000060h   
VK_NUMPAD1 . . . . . . . . . . .	Number	 00000061h   
VK_NUMPAD2 . . . . . . . . . . .	Number	 00000062h   
VK_NUMPAD3 . . . . . . . . . . .	Number	 00000063h   
VK_NUMPAD4 . . . . . . . . . . .	Number	 00000064h   
VK_NUMPAD5 . . . . . . . . . . .	Number	 00000065h   
VK_NUMPAD6 . . . . . . . . . . .	Number	 00000066h   
VK_NUMPAD7 . . . . . . . . . . .	Number	 00000067h   
VK_NUMPAD8 . . . . . . . . . . .	Number	 00000068h   
VK_NUMPAD9 . . . . . . . . . . .	Number	 00000069h   
VK_PAUSE . . . . . . . . . . . .	Number	 00000013h   
VK_PRINT . . . . . . . . . . . .	Number	 0000002Ah   
VK_PRIOR . . . . . . . . . . . .	Number	 00000021h   
VK_RBUTTON . . . . . . . . . . .	Number	 00000002h   
VK_RCONTROL  . . . . . . . . . .	Number	 000000A3h   
VK_RETURN  . . . . . . . . . . .	Number	 0000000Dh   
VK_RIGHT . . . . . . . . . . . .	Number	 00000027h   
VK_RMENU . . . . . . . . . . . .	Number	 000000A5h   
VK_RSHIFT  . . . . . . . . . . .	Number	 000000A1h   
VK_SCROLL  . . . . . . . . . . .	Number	 00000091h   
VK_SEPARATER . . . . . . . . . .	Number	 0000006Ch   
VK_SHIFT . . . . . . . . . . . .	Number	 00000010h   
VK_SNAPSHOT  . . . . . . . . . .	Number	 0000002Ch   
VK_SPACE . . . . . . . . . . . .	Number	 00000020h   
VK_SUBTRACT  . . . . . . . . . .	Number	 0000006Dh   
VK_TAB . . . . . . . . . . . . .	Number	 00000009h   
VK_UP  . . . . . . . . . . . . .	Number	 00000026h   
WINDOW_BUFFER_SIZE_EVENT . . . .	Number	 00000004h   
WriteConsoleOutputCharacter  . .	Text   	 WriteConsoleOutputCharacterA
WriteConsole . . . . . . . . . .	Text   	 WriteConsoleA
black  . . . . . . . . . . . . .	Number	 00000000h   
blue . . . . . . . . . . . . . .	Number	 00000001h   
brown  . . . . . . . . . . . . .	Number	 00000006h   
cyan . . . . . . . . . . . . . .	Number	 00000003h   
exit . . . . . . . . . . . . . .	Text   	 INVOKE ExitProcess,0
gray . . . . . . . . . . . . . .	Number	 00000008h   
green  . . . . . . . . . . . . .	Number	 00000002h   
lightBlue  . . . . . . . . . . .	Number	 00000009h   
lightCyan  . . . . . . . . . . .	Number	 0000000Bh   
lightGray  . . . . . . . . . . .	Number	 00000007h   
lightGreen . . . . . . . . . . .	Number	 0000000Ah   
lightMagenta . . . . . . . . . .	Number	 0000000Dh   
lightRed . . . . . . . . . . . .	Number	 0000000Ch   
magenta  . . . . . . . . . . . .	Number	 00000005h   
red  . . . . . . . . . . . . . .	Number	 00000004h   
val1 . . . . . . . . . . . . . .	Number	 6D73E55Fh   
val2 . . . . . . . . . . . . . .	Number	 B11924E1h   
val3 . . . . . . . . . . . . . .	Number	 1E8D0A40h   
white  . . . . . . . . . . . . .	Number	 0000000Fh   
wsprintf . . . . . . . . . . . .	Text   	 wsprintfA
yellow . . . . . . . . . . . . .	Number	 0000000Eh   

	   0 Warnings
	   0 Errors

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值