2 新建新文件,保存为xx.asm或xx.a51
3 把刚才的文件加入到工程
4 如果你开始时选否,即未加入启动代码,那么启动跳转、堆栈SP的初始化、
内存初始化、重入栈初始化、标准51寄存器定义、段定位等都要自己弄,估计你搞
不定,但是这样你可以自由写
5 如果你选的是加入KEIL的启动文件,那么这些你就不必写,都好了,但是问题是这个启动文件
最初的目的是针对C51程序写的,因为这个启动文件的最后一句是去调用main()函数段,所以你
要么把这个main()函数段的申明和调用都去掉,让他去调用你自己 的函数段,要么你就干脆写个他想调用的那个main函数段段名,让他以为 就是main函数,让他调用好了
6 再简单一点,你也别新建什么文件,直接删掉它的最后一句main调用和main函数段申明,就在删掉 的那里写自己的程序
7 再再简单一点,启动文件也别要了,直接新建asm文件,从地址0开始写 ORG 0000H,如果你的程序足够简单, 也不一定要什么函数段、不一定要修改SP、更不必关心什么重入呀、初始化代码呀
8 如果你问的不是51汇编,那就不知道了
名称:set_doc.asm功能:建立文件
data segment
FName db 'TEST.TXT',0
FErr db 'File error...', 07h, 0
FSucc db 'File success!', 07h, 0
data ends
code segment
assume CS:code DS:data
$start: mov AX, data
mov AX, DS
mov DX, offset FileName DS:DX=文件名字符串首地址
mov AX, 3c00h
int 21h
jnc OKMsg 新建成功,转
mov SI, offset FErr 失败信息显示
mov DL, [SI]
inc SI
jz OVER
mov AH, 2
int 21h
OKMsg: mov SI, offset FSucc 成功信息显示
mov DL, [SI]
inc SI
jz over
mov AH, 2
int 21h
OVER: mov AH, 4ch
int 21h
code sends
end $start
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)