Microsoft (R) Macro Assembler Version 8.00.50727.762 08/19/08 10:38:09 ..\Source\p01_smallest\add_16_bytes.asm Page 1 - 1 ; add_16_bytes.asm ; .586P ; Flat memory model, standard calling convention: .MODEL FLAT, STDCALL ; ; Data segment 00000000 _DATA SEGMENT 00000000 00000010 [ values db 16 DUP( 5 ) ; 16 bytes of values "5" 05 ] 00000010 _DATA ENDS ; Code segment 00000000 _TEXT SEGMENT 00000000 START: 00000000 B8 00000000 mov eax, 0 ; clear result 00000005 B3 10 mov bl, 16 ; init loop counter 00000007 8D 35 00000000 R lea esi, values ; init data pointer 0000000D addup: 0000000D 02 06 add al, [esi] ; add byte to sum 0000000F 46 inc esi ; increment data pointer 00000010 FE CB dec bl ; decrement loop counter 00000012 75 F9 jnz addup ; if BL not zero, continue 00000014 88 06 mov [esi], al ; save sum 00000016 C3 ret ; Exit 00000017 _TEXT ENDS END START Microsoft (R) Macro Assembler Version 8.00.50727.762 08/19/08 10:38:09 ..\Source\p01_smallest\add_16_bytes.asm Symbols 2 - 1 Segments and Groups: N a m e Size Length Align Combine Class FLAT . . . . . . . . . . . . . . GROUP _DATA . . . . . . . . . . . . . 32 Bit 00000010 Para Public 'DATA' _TEXT . . . . . . . . . . . . . 32 Bit 00000017 Para Public 'CODE' 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 START . . . . . . . . . . . . . L Near 00000000 _TEXT Public STDCALL addup . . . . . . . . . . . . . L Near 0000000D _TEXT values . . . . . . . . . . . . . Byte 00000000 _DATA 0 Warnings 0 Errors