Up and running with MASM in Windows: To "Hello World" and beyond!
0:02:12 - Protect your system by running inside a virtual machine.
0:02:40 - ReactOS - free & open source windows clone.
0:03:49 - VirtualBox - free & open source virtualization.
0:07:13 - MASM 8.0 download.
0:08:27 - MASM32.
0:12:44 - ANSI / ASCII "narrow" vs. "wide" Unicode functions.
0:17:49 - Win32.chm help file.
0:29:36 - Keep it simple with standard portable c library.
0:31:30 - Headers / includes / declarations.
0:34:50 - Windows types (ie. dwords).
0:35:52 - LLP 64-bit arch.
0:37:19 - Windows handles.
0:39:31 - Using the Win32 API reference.
0:43:23 - Intel 386 programmer's manual.
0:45:10 - 32-bit vs. 16-bit registers / segmentation.
0:47:59 - Agner Fog's assembly optimizations.
0:49:47 - Overview of assemblers.
0:54:38 - AMD developer manuals.
0:58:04 - AMD optimization guide.
1:02:48 - VirtualBox window view modes & shortcut (host/ctrl) keys.
1:06:27 - Jeff Huang's windows assembly tutorial.
1:07:27 - Starting example.
1:08:55 - Essential MASM directives.
1:13:48 - .inc include/header files.
1:14:16 - Inside include files.
1:16:30 - Add bin\ folder to PATH.
1:16:58 - ML.exe version [/?].
1:17:36 - Extracting ML 8.0.
1:23:04 - Type and equate details.
1:26:15 - masm32.inc / masm32.lib.
1:29:42 - invoke & addr.
1:31:50 - Saving source files (in ANSI format).
1:32:50 - Assembling at the command line.
1:33:37 - The results of my removing `option casemap :none` blunder.
1:35:23 - Manual declarations instead of .inc files.
1:38:47 - puts() instead of StdOut.
1:40:13 - Calling conventions.
1:42:08 - OMF vs. COFF object formats.
1:42:35 - Name mangling: stdcall & c.
1:43:05 - Explanation of ML command line.
1:43:15 - Explanation of linking .obj to .exe.
1:43:44 - Running 'Hello World!' program.
1:44:44 - Searching win32.chm api help index.
1:45:30 - Symbolic constant values.
1:46:16 - Microsoft's online MASM docs.
1:47:39 - Making code readable with symbolic constants.
1:48:39 - Replacing invoke with push & call.
1:55:35 - ADDR vs. OFFSET.
1:57:50 - Object format and linking in MASM 6 & 8.
1:59:50 - User32.dll and MessageBox.
2:05:44 - Pushing parameters to the stack.
2:08:40 - Oops! Wrong order! (should be right-to-left).
2:09:44 - Defining (static / c-style) string data.
2:11:30 - Window console ownership.
2:12:47 - MASM feature focus.
2:15:44 - Wide character strings & api calls.
2:17:32 - Intel little-endian byte ordering.
2:22:15 - Box drawing characters (wikipedia).
2:25:36 - MASM32 help files & extra apps overview.
2:29:16 - Register preservation convention.
1) Introduction to 32-bit (x86) MASM: • MASM 32-bit Windows Assembler
2) Convert real windows in C to MASM: • MASM - A Real Window (32-bit)
3) Creating a macro for wide strings: • MASM - Macros and Wide Unicode Strings (32...
4) String operations & optimizations: • MASM - String Operations and Optimizations...
5) File & memory management in Win32: • MASM - File and Memory Management (32-bit)
https://github.com/veganaize/ASM/blob...
• Github repo:
https://github.com/veganaize/ASM/tree...
• MASM32:
http://www.masm32.com/
• INTEL 80386 PROGRAMMER'S REFERENCE MANUAL 1986:
https://css.csail.mit.edu/6.858/2015/...
• Jeff Huang's Windows Assembly Programming Tutorial:
https://doc.lagout.org/operating%20sy...
• Agner Fog's Optimizing Assembly:
https://www.agner.org/optimize/
• AMD64 Architecture Programmer's Manuals and Optimization Guide:
https://developer.amd.com/resources/d...
• Microsoft Macro Assembler (MASM) 10.0 (via PSDK 7.1):
(32-bit Installer) http://web.archive.org/web/2023061110...
(64-bit Installer) http://web.archive.org/web/2023061110...
• JWasm (MASM compatible):
https://www.japheth.de/JWasm.html