La diferencia de tamaño viene dada porque en el primer ejemplo los datos del título y texto van en una sección nueva (.data) que no existe en el segundo ejemplo, que lo incluye directamente en el código.
Eso quiere decir que si los desensamblas verás:
Código del primer ejemplo:
00401000 <>/$ 6A 00 PUSH 0 ; /Style = MB_OK|MB_APPLMODAL
00401002 |. 68 0B304000 PUSH 0040300B ; |Title = "Titulo"
00401007 |. 68 00304000 PUSH 00403000 ; |Text = "Hola mundo"
0040100C |. 6A 00 PUSH 0 ; |hOwner = NULL
0040100E |. E8 07000000 CALL <JMP.&user32.MessageBoxA> ; \MessageBoxA
00401013 |. 6A 00 PUSH 0 ; /ExitCode = 0
00401015 \. E8 06000000 CALL <JMP.&kernel32.ExitProcess> ; \ExitProcess
0040101A $- FF25 08204000 JMP [<&user32.MessageBoxA>] ; user32.MessageBoxA
00401020 .- FF25 00204000 JMP [<&kernel32.ExitProcess>] ; kernel32.ExitProcess
y sus secciones:
Memory map
Address Size Owner Section Contains Type Access Initial Mapped as
00400000 00001000 Normal 00400000 (itself) PE header Imag 01001002 R RWE
00401000 00001000 Normal 00400000 .text code Imag 01001002 R RWE
00402000 00001000 Normal 00400000 .rdata imports Imag 01001002 R RWE
00403000 00001000 Normal 00400000 .data data Imag 01001002 R RWE
Código del segundo ejemplo (mínimo):
00401000 <>/$ /EB 12 JMP SHORT 00401014
00401002 |. |48 6F 6C 61 20 6D 75 6E >ASCII "Hola mundo",0
0040100D |. |54 69 74 75 6C 6F 00 ASCII "Titulo",0
00401014 |> \6A 00 PUSH 0 ; /Style = MB_OK|MB_APPLMODAL
00401016 |. 68 0D104000 PUSH 0040100D ; |Title = "Titulo"
0040101B |. 68 02104000 PUSH 00401002 ; |Text = "Hola mundo"
00401020 |. 6A 00 PUSH 0 ; |hOwner = NULL
00401022 |. E8 07000000 CALL <JMP.&user32.MessageBoxA> ; \MessageBoxA
00401027 |. 6A 00 PUSH 0 ; /ExitCode = 0
00401029 \. E8 06000000 CALL <JMP.&kernel32.ExitProcess> ; \ExitProcess
0040102E $- FF25 08204000 JMP [<&user32.MessageBoxA>] ; user32.MessageBoxA
00401034 .- FF25 00204000 JMP [<&kernel32.ExitProcess>] ; kernel32.ExitProcess
y sus secciones:
Memory map
Address Size Owner Section Contains Type Access Initial Mapped as
00400000 00001000 Minimo 00400000 (itself) PE header Imag 01001002 R RWE
00401000 00001000 Minimo 00400000 .text code Imag 01001002 R RWE
00402000 00001000 Minimo 00400000 .rdata data,imports Imag 01001002 R RWE
El tamaño de las secciones se puede definir en la compilación, pero para el MASM por defecto es de 1 kb por sección, y ese es el tamaño que ganas entre ambos códigos.
Con respecto al "@F" es una de las palabras reservadas del MASM que hace referencia a la siguiente etiqueta (para los saltos) y existe otra "@B" para saltar a la etiqueta anterior.