TITLE the USE OF ARRAY
;****************************************************************
;对程序运行平台的最小要求,也就是说程序使用的指令集合
.386
;程序运行模型,flat指的是数据段和代码段共同使用一个4GB的内存,
;而stdcall指的是函数调用时使用的是自右向左压入堆栈的方式,同时函数返回时自行清空堆栈
.model flat,stdcall
;程序选项,对大小写敏感
option casemap:none
;****************************************************************
;****************************************************************
;文件包含
include Irvine32.inc
;****************************************************************
;****************************************************************
;数据段定义
;包含两个变量,一个数数组本身,另一个则是存放数组首地址的变量
;****************************************************************
.data
arr DWORD 1,2,5,60
address DWORD ?
;****************************************************************
;代码段定义
;包含了两个自定义的过程,end指令指明了程序的入口地址
;****************************************************************
.code
main PROC
;将数组地址赋值给address变量,取地址操作符就是offset
mov eax,offset arr
MOV address,eax
;初始化循环控制变量,为4次
MOV EBX,4
LoopAdd:
;取地址到eax当中
MOV EAX,address
;将地址指向的数据放在EAX当中
mov eax,[eax]
;输出寄存器中的数值,显示是否成功
call DumpRegs
add address,4
dec ebx
jnz LoopAdd;
INVOKE ExitProcess,0
main ENDP
end main
;****************************************************************
;对程序运行平台的最小要求,也就是说程序使用的指令集合
.386
;程序运行模型,flat指的是数据段和代码段共同使用一个4GB的内存,
;而stdcall指的是函数调用时使用的是自右向左压入堆栈的方式,同时函数返回时自行清空堆栈
.model flat,stdcall
;程序选项,对大小写敏感
option casemap:none
;****************************************************************
;****************************************************************
;文件包含
include Irvine32.inc
;****************************************************************
;****************************************************************
;数据段定义
;包含两个变量,一个数数组本身,另一个则是存放数组首地址的变量
;****************************************************************
.data
arr DWORD 1,2,5,60
address DWORD ?
;****************************************************************
;代码段定义
;包含了两个自定义的过程,end指令指明了程序的入口地址
;****************************************************************
.code
main PROC
;将数组地址赋值给address变量,取地址操作符就是offset
mov eax,offset arr
MOV address,eax
;初始化循环控制变量,为4次
MOV EBX,4
LoopAdd:
;取地址到eax当中
MOV EAX,address
;将地址指向的数据放在EAX当中
mov eax,[eax]
;输出寄存器中的数值,显示是否成功
call DumpRegs
add address,4
dec ebx
jnz LoopAdd;
INVOKE ExitProcess,0
main ENDP
end main