汇编语言题目,求详解

MOVDI,OFFSETBUFFMOVCX,000AHMOVBL,0GOON:MOVAL,[DI]ANDAL,ALJNZNEXTINCBLNEXT:INCDILOOPGO... MOV DI,OFFSET BUFF MOV CX,000AH MOV BL,0GOON:MOV AL,[DI] AND AL,AL JNZ NEXT INC BLNEXT:INC DI LOOP GOON HLT BUFF DB 23H,54H,00H,83H,98H,36H,00H,49H,00H,73H求程序的详细解释。求BL程序中AND AL,AL好像没什么用喔,他的结果还是AL本身另HLT起什么作用 展开
 我来答
匿名用户
推荐于2018-04-04
展开全部
MOV DI,OFFSET BUFF 取数组BUFF的首地址到DI寄存器中
MOV CX,000AH 设定循环次数
MOV BL,0 做计数器用,用来记录数组BUFF中为0的字节的个数,赋初值为0
GOON:MOV AL,byte ptr [DI] 将数组的BUFF的一个字节的数据放进AL寄存器中
AND AL,AL AL中的数据与AL中的数据做与运算,用来作为下一条跳转指令的跳转条件
JNZ NEXT 上一条指令运算不为0就跳转到标号NEXT处
INC BL 若 and al,al 这条指令的运算结果为0,bl寄存器就加1
NEXT:INC DI dl加1,dl最开始是数组BUFF的首地址,加1相当于指向下一个字节
LOOP GOON CX先减1,判断CX是否为0,若为0就跳出循环,不为0就循环,循环从标号GOON处开始
HLT 停机

BUFF DB 23H,54H,00H,83H,98H,36H,00H,49H,00H,73H

这段汇编代码的作用是判断单元大小为一字节的数组BUFF中有多少个字节为0,并将结果保存在BL寄存器中
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式