| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 693 人关注过本帖
标题:我对这个题不懂
只看楼主 加入收藏
wzx711215
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2006-9-16
收藏
 问题点数:0 回复次数:9 
我对这个题不懂
T:在所在定义的字节数组中找出第一个非0数据,并显示出其所在数组的下标。
DATA SEGMENT
ARRAY DB 0,0,0,16,0,88,72,0,35,42,99
COUNT EQU $-ARRAY
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DATA
START: MOV AX, DATA
MOV DS, AX
MOV CX, COUNT
MOV DI, -1
AGAIN: INC DI
CMP ARRAY[DI], 0
LOOPZ AGAIN
MOV DX, DI
OR DL, 30H
DISPLAY: MOV AH, 2H
INT 21H
MOV AH, 4CH
INT 21H
........
在这个题里1:下标是什么?
2:OR的结果是什么,是怎样算出来的
2006-09-16 17:40
菜鸟上路
Rank: 4
等 级:贵宾
威 望:14
帖 子:1120
专家分:0
注 册:2006-3-21
收藏
得分:0 

1、偏移量
2、先转换成二进制


2006-09-16 23:05
wzx711215
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2006-9-16
收藏
得分:0 

MOV DX, DI (是把找到的第一个非0数据送给DX)
OR DL, 30H (把第一个非0数据和30H相或)

这是一个例题,可她讲的说是OR DL, 30H 是为了得到第一个非0数据的ASCII码,不知道是不是她讲错了

2006-09-17 08:07
菜鸟上路
Rank: 4
等 级:贵宾
威 望:14
帖 子:1120
专家分:0
注 册:2006-3-21
收藏
得分:0 
没讲错。
30H的ASCII是48,就是字符0
如果进行OR运算,相当于在DL的基础上加48

2006-09-17 18:11
wzx711215
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2006-9-16
收藏
得分:0 
首先感谢这位大哥:针对上面这道题(DL)=16D=0001 0000B
30H=0011 0000B
若让他们按位“或”应该是0011 0000还是30H
而老师所讲的和你说的是一样的
但从二进制上进行“或”运算我不知道是怎样算错了
2006-09-17 21:04
菜鸟上路
Rank: 4
等 级:贵宾
威 望:14
帖 子:1120
专家分:0
注 册:2006-3-21
收藏
得分:0 
“或”运算只要是1,就在相应位加1
如:
10110000
or 00101101
------------
10111101
对于你上面说的,我有点不太明白

2006-09-17 21:44
wzx711215
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2006-9-16
收藏
得分:0 

你写的我能看懂,不过我还是不明白,请你把16转换成二进制,再和30H“或”,这个过程我不懂。先行谢过

2006-09-18 08:38
菜鸟上路
Rank: 4
等 级:贵宾
威 望:14
帖 子:1120
专家分:0
注 册:2006-3-21
收藏
得分:0 

我明白你说的了,这个到是没想到


2006-09-18 12:24
srl9973
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2006-9-18
收藏
得分:0 

MOV DX, DI (是把找到的第一个非0数据送给DX)应该是把第一个非0数据对应的偏移地址送给DX
OR DL, 30H (把第一个非0数据和30H相或)这个地方这样操作存在这样一个假设:第一个非0的数据地址不能大于9。否则这个程序就出错了。当 偏移地址不大于9时,将DL中的数与30H进行或运算就相当于将DL中的加上30H转换成 它所对应的ASCII,就可以用21H调用 中2号功能输出了。

2006-09-18 15:53
wzx711215
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2006-9-16
收藏
得分:0 
谢谢大哥  我明白了。
2006-09-18 18:07
快速回复:我对这个题不懂
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.031189 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved