EOF = 1AH
DSEG SEGMENT
FNAME DB 'E:\asm\TEST.BAT',0 文件完整路径名
ERROR1 DB 'File not found',07H,0 提示信息
ERROR2 DB 'Reading error',07H,0
BUFFER DB ? 1字节的缓冲区
DSEG ENDS
CSEG SEGMENT
ASSUME CS:CSEG,DS:DSEG
START: MOV AX,DSEG
MOV DS,AX
MOV DX,OFFSET FNAME
MOV AX,3D00H 为读打开指定文件
INT 21H
JNC OPEN_OK 打开成功,转
MOV SI,OFFSET ERROR1
CALL DMESS 显示不成功信息
JMP OVER
OPEN_OK:MOV BX,AX 保存文件柄
CONT: CALL READCH 从前猜文件中读一个字符
JC READERR 如读出错,则转
CMP AL,EOF 读到文件枝激结束符吗?
JZ TYPE_OK 是,转
CALL PUTCH 显示所读字符
JMP CONT 继续
READERR:MOV SI,OFFSET ERROR2
CALL DMESS
TYPE_OK:MOV AH,3EH 关闭文件
INT 21H
OVER: MOV AH,0 结束程序
INT 16H
MOV AH,4CH
INT 21H
READCH PROC
MOV CX,1 置读字节数
MOV DX,OFFSET BUFFER 置读缓冲区地址
MOV AH,3FH
INT 21H
JC READCH2 读出错,转
CMP AX,CX 判断文件是否结束
MOV AL,EOF 文件结束,置结束符
JB READCH1 文件结束,转
MOV AL,BUFFER 文件未结束,取所读字符
READCH1:CLC
READCH2:RET
READCH ENDP
显示一个以0为结束符的字符串
DMESS PROC
DMESS1: MOV DL,[SI]
INC SI
OR DL,DL
JZ DMESS2
MOV AH,2
INT 21H
JMP DMESS1
DMESS2: RET
DMESS ENDP
显示一个字符
PUTCH PROC
PUSH DX
MOV DL,AL
MOV AH,2
INT 21H
POP DX
RET
PUTCH ENDP
CSEG ENDS
END STAR
我刚开始学汇编,这是书上一个例题,给你看看,masm编写的
可执行文件与编写语言程序之间的关系这个不是exe与bat的关系吧~~~~汗
bat是脚本,用dos指令(不完全是)编写,不用汇编即可运行
exe需要用编写语言(如c,c++,b)在编程工具中编写汇编得到.
咳咳,撇开你的题目,bat可以加壳旁肢雀变成exe,常用工具有quick bfc(这个方便使运早用,但是如360那种东西认不了壳就饥旦报毒的东西会报毒)和winrar(这个需要手动 *** 作,不会被报毒)
exe com程序一般都是经过编译 转汇编的一种程序 而批处理世拿是一种解释性皮返前语言 两者差距在于 汇编后的程序更容易燃清让电脑高效率运行处理 而批处理等一些 包括VB script HTML等 都是需要经过解释然后执行此外编译后期修改起来不如解释来的容易
但是排除VB软件
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)