; CIS-261 ; c_arrays.asm ; @topic W090110 ASM addressing similar to C array ; @brief ASM program using indirect addressing .386 ; Tells MASM to use Intel 80386 instruction set. .MODEL FLAT ; Flat memory model option casemap:none ; Treat labels as case-sensitive INCLUDE IO.H ; header file for input/output ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; .CONST ; Constant data segment ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; .DATA ; Begin initialized data segment ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; num_one DWORD ? table DWORD 10 DUP (0) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; .CODE ; Begin code segment ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; _main PROC ; Beginning of code mov EAX, 5 mov DWORD PTR [num_one], EAX ; use direct memory access to store integer 5 mov ESI, 0 ; array index is in ESI mov EAX, table[ ESI*4 ] ; access data inside C array mov EAX, [ table + ESI*4 ] ; the same as above ret _main ENDP END _main ; Marks the end of the module and sets the program entry point label