;将由text db 10,20,30,40定义的4个数相加,并输出其和。
.386 ;指明指令集
.model flat,stdcall ;平坦模式,函数右边的参数先入栈
option casemap:none ;指明大小写敏感
include \masm32\include\windows.inc ;windows.inc 包含头文件
include \masm32\include\user32.inc
include \masm32\include\kernel32.inc
include \masm32\include\masm32.inc
includelib \masm32\lib\user32.lib ;包含库文件
includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\masm32.lib
.data
text db 10,20,30,40 ;定义多个变量
buffer db 10 dup(0)
szFmt db ‘结果是:%d‘,0
.code
start:
xor eax,eax
mov al,text
mov bl,text+1
mov cl,text+2
mov dl,text+3
add al,bl
add al,cl
add al,dl ;和在eax中
invoke wsprintf, ;格式化信息串
addr buffer, ;信息串格式化后的存放地
addr szFmt, ;信息串的格式:‘结果是:%d",0
eax ;数值和
invoke ClearScreen ;清屏
invoke locate,10,10 ;光标定位(x,y)
invoke StdOut,addr buffer ;显示串
invoke ExitProcess,NULL ;中止一个进程,退出代码
end start
修改.code部分代码
xor eax,eax
mov al,text
add al,text+1
add al,text+2
add al,text+3