;(pva-arr.c cl 13.10.3077 output) |;(pva-ptr.c 13.10.3077 output) + TITLE dpta.c | TITLE dpta.c .386P | .386P include listing.inc |include listing.inc if @Version gt 510 |if @Version gt 510 .model FLAT |.model FLAT else |else _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' |_TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS |_TEXT ENDS _DATA SEGMENT DWORD USE32 PUBLIC 'DATA' |_DATA SEGMENT DWORD USE32 PUBLIC 'DATA' _DATA ENDS |_DATA ENDS CONST SEGMENT DWORD USE32 PUBLIC 'CONST'|CONST SEGMENT DWORD USE32 PUBLIC 'CONST' CONST ENDS |CONST ENDS _BSS SEGMENT DWORD USE32 PUBLIC 'BSS' |_BSS SEGMENT DWORD USE32 PUBLIC 'BSS' _BSS ENDS |_BSS ENDS $$SYMBOLS SEGMENT BYTE USE32 'DEBSYM' |$$SYMBOLS SEGMENT BYTE USE32 'DEBSYM' $$SYMBOLS ENDS |$$SYMBOLS ENDS _TLS SEGMENT DWORD USE32 PUBLIC 'TLS' |_TLS SEGMENT DWORD USE32 PUBLIC 'TLS' _TLS ENDS |_TLS ENDS FLAT GROUP _DATA, CONST, _BSS |FLAT GROUP _DATA, CONST, _BSS ASSUME CS: FLAT, DS: FLAT, SS: FLAT | ASSUME CS: FLAT, DS: FLAT, SS: FLAT endif |endif | INCLUDELIB LIBC |INCLUDELIB LIBC INCLUDELIB OLDNAMES |INCLUDELIB OLDNAMES | _DATA SEGMENT |_DATA SEGMENT $SG471 DB 'hello world!', 00H |$SG471 DB 'hello world!', 00H ORG $+3 | ORG $+3 $SG473 DB 'hello world!', 00H |$SG473 DB 'hello world!', 00H _DATA ENDS |_DATA ENDS PUBLIC _foo |PUBLIC _foo _TEXT SEGMENT |_TEXT SEGMENT _ptr$ = -20 |_ptr$ = -20 _arr$ = -16 |_arr$ = -16 _foo PROC NEAR |_foo PROC NEAR push ebp | push ebp mov ebp, esp | mov ebp, esp sub esp, 20 | sub esp, 20 mov DWORD PTR _ptr$[ebp], OFFSET FLAT>| mov DWORD PTR _ptr$[ebp], OFFSET FLAT:$SG471 mov eax, DWORD PTR $SG473 | mov eax, DWORD PTR $SG473 mov DWORD PTR _arr$[ebp], eax | mov DWORD PTR _arr$[ebp], eax mov ecx, DWORD PTR $SG473+4 | mov ecx, DWORD PTR $SG473+4 mov DWORD PTR _arr$[ebp+4], ecx | mov DWORD PTR _arr$[ebp+4], ecx mov edx, DWORD PTR $SG473+8 | mov edx, DWORD PTR $SG473+8 mov DWORD PTR _arr$[ebp+8], edx | mov DWORD PTR _arr$[ebp+8], edx mov al, BYTE PTR $SG473+12 | mov al, BYTE PTR $SG473+12 mov BYTE PTR _arr$[ebp+12], al | mov BYTE PTR _arr$[ebp+12], al | | ; EXTRA INSTRUCTION ============>> | mov ecx, DWORD PTR _ptr$[ebp] | | mov al, BYTE PTR _arr$[ebp+7] | mov al, BYTE PTR [ecx+7] mov esp, ebp | mov esp, ebp pop ebp | pop ebp ret 0 | ret 0 _foo ENDP |_foo ENDP _TEXT ENDS |_TEXT ENDS END |END