   Windows assembly programming
  I was curious, even when looking at Windows assembly programs, they always use high level function calls, such as MessageBox, etc. That struck me as odd, seeing as though it looked just like C, only I was using such a low level language as assembly. Why is that? How can you get really low level and define your own message box routine? Where are those routines normally defined, and how do they work? Can you write your own MessageBox routine?Any general Windows assembly information would be helpful. Thank you. 
  MessageBox API simply constructs a window with few buttons, and establishes a window procedure for it so it can respond to the button presses. The window creation procedure is published via User32.dll, which eventually forwards the creation request to the kernel for the actual memory allocation and other housekeeping tasks associated with windows.Now, to the point:Since the location of the functions inside the dll may change, it is better to bind a function by it's name than by ordinal index. Also, isn't it easier for the programmer to refer to procedures by their symbolic name instead of the hard-coded offset? -Nik   [edited by - Nik02 on February 14, 2004 10:09:50 AM];  You can''t really get "low level" without using the Windows API (unless you use a library of some sort).  The only thing that you can do that''s "lower" than calling MessageBox is to create your own window, then set up the window styles / etc, but I think that that would be slower because MessageBox is probably directly supported by Windows. 