在汇编语言中怎样将一个数据段全部清零 15

 我来答
zrdlut
2010-12-03 · 超过36用户采纳过TA的回答
知道小有建树答主
回答量:106
采纳率:0%
帮助的人:88万
展开全部
clear:
cld ;清除方向标志位
lea di,[2000h] ;设置起始地址
mov cx,128 ;设置要清零的字数
xor ax,ax ;ax清零
rep stosw ;重复串操作,将128个字清零
俊俏又柔美灬繁星N
2010-12-03 · TA获得超过466个赞
知道小有建树答主
回答量:583
采纳率:100%
帮助的人:416万
展开全部
;功能:显示当前目录下的文本文件内容
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编写的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友17912fb
2019-01-18
知道答主
回答量:18
采纳率:0%
帮助的人:3.5万
展开全部
用xor或者sub
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式