END 标号 这个标号指定程序的入口
例如,
END bubbling
补充回答:这个标号前瞎碧是要在代码段中明确定义的。如,
data segment
mydata db ?
data ends
code segment
assume cs:code,ds:data
bubbling:
.
.
.
mov ah,4ch
int 21h
code ends
end bubbling
前些天,看到这个标题,直接过了,因为这个好像根本不是问题,结果过了几天,看这个问题还没有结果,于是好奇,进来看看。
RadASM只是一个开发环境,具体使用什竖者么语言,你要有那个语言的编译和链接器,放在任何目录都可以,然后在对应那个语言的xxxx.ini中指定编译器和连接器的位置,如果是MASM宏汇编,那么需要在MASM.INI中指定,例如:
[Enviroment]
1=path,c:\masm32\bin
[CharTab]
2=025122252222223220-2F
3=111111111124222130-3F
[Open]
0="汇编源文件 (*.asm*.inc*.mac*.txt),*.asm*.inc*.mac*.txt"
1="资源文件 (*.rc),*.rc"
2="文本文件 (*.txt),*.txt"
3="所有文件 (*.*),*.*"
src="汇编文件 (*.asm),*.asm,asm"
hdr="头文件 (*.inc),*.inc,inc"
mod="模块 (*.asm*.mac),*.asm*.mac"
1=path 这个就是用来定义宏汇编编译器的地址,填上正确的地址即可。
至于汇编源程序,你完全可以如在DOS环境下使用的那样,例如:
.data
s1 db '这里放数据‘,0
.code
entry proc
mov eax, [eax].PEB.ImageBaseAddress
call GetCurrAddr
mov hInstance[ebx], eax
......
entry endp
.data
s2 db '这里也放数据,当然也可以放到前面去。
.code
start:
mov dest, offset Mz
mov clenth, Len
invoke GetCurrentDirectory,nBufLen, addr szFName
invoke lstrcat,addr szFName, addr myFName
invoke CreateFile,addr szFName, pointer to name of the file
GENERIC_WRITE or GENERIC_READ,access (read-write) mode
null, share mode
null, pointer to security attributes
CREATE_ALWAYS, 轮羡 how to create
FILE_ATTRIBUTE_NORMAL, file attributes
NULL
mov hFile, eax
invoke WriteFile,hFile,dest,clenth,addr br,NULL
.if eax
invoke lstrcpy,addr szFName,addr myFName1
invoke lstrcat,addr szFName,addr szOpenOk
invoke MessageBox,null,addr szFName,
addr szCaption,MB_OK
.else
invoke MessageBox,NULL,addr szOpenEr,
addr szCaption,MB_ICONERROR or MB_OK
.endif
invoke CloseHandle,hFile
xor eax, eax
余桐薯 invoke ExitProcess,eax
end start
编译链接后,代码从 start开始执行,start 的级别比 entry 高,如果代码中有entry,同时有start,那么编译后,结果是start,而不是entry,准确的说法是结尾 end 后面根的启动地址名称,随便叫什么都可以,习惯上用 start。
这是我以前写书时写的一些演示代码,都是在RadASM中开发的,代码绝对都可以编译运行的,我在附件里给你发一个汇编源代码,你可以试着用RadASM来编译一下。
汇编语言的注释是每行从分号“;”开始的,分号之后的内容都属于注释。一般而言,汇编语凳丛言的注释在以下几个地方:1、程序的最前面,注释内容一般说明该程序总的说明,解释程序的主要功能,程序的版本号,程大皮序的修改日志,程序的编制人等等
2、子程序的前面,一般说明该子程序或函数完成的功能,输入参数,输出参数,影响的滚粗差标志位等等。
3、指令行的后面,注释该行语句的功能。
比如以下简单程序的注释。
;--------------------------------------
;该程序完成一个LED灯的闪烁
;编制时间:XXXXX
;完成人:XXXX
;--------------------------------------
ORG 0000H
LJMP MAIN:
ORG 0030H
MAIN:
CLR P1.0led置低
LCALL DELAY延时
SETB P1.0 LED置高
LCALL DELAY延时
SJMP MAIN 转MAIN循环
------------------------------
延时子程序
输入参数:无
输入参数:无
------------------------------
DELAY:
MOV R2,#200
D1:
MOV R3,#250
DJNZ R3,$
DJNZ R2,D1
RET
END
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)