论坛
门户
内部优惠
喜欢
话题
VIP会员
搜索
新浪微博
登录
注册
100%
100%
首页
>
软件开发
>
汇编语言
>
经典汇编语言教程:10.2 数据的分类统计程序
回复
« 返回列表
111111
精灵王
注册日期
2010-12-08
发帖数
640
QQ
火币
1103枚
粉丝
120
关注
75
加关注
写私信
打招呼
阅读:
2943
回复:
0
经典汇编语言教程:10.2 数据的分类统计程序
楼主
#
更多
只看楼主
倒序阅读
发布于:2013-01-28 14:20
保存
100%
100%
[]
1
数据的分类和统计也是一类非数值计算,数据的分类统计方法在例
6.10
中已介绍,下面通过一个例子介绍数据的分类存储问题。
例10.5 统计从地址0040H:0000H开始的100个字中,把正数和负数按照它们先后出现的次序分别存储在缓冲区Data1和Data2,并把每类的个数存入相应缓冲区的第一个字单元中。
解:由于在指定地址之后的100个字中,可能存在全是正数或负数的情况,所以,缓冲区Data1和Data2的容量都应是100个字。
.MODEL SMALL
.DATA
Num = 100
Data1
DW ?, Num dup(?)
Data2
DW ?, Num dup(?)
.CODE
.STARTUP
MOV
AX, 40H
MOV
ES, AX
LEA
SI, Data1+2
;指向存储正数的缓冲区
LEA
DI, Data2+2
;指向存储负数的缓冲区
XOR
BX, BX
;BX用于扫描存储单元
MOV
CX, 100
;字符个数
.REPEAT
MOV
AX, ES:[BX]
ADD
BX, 2
CMP
AX, 0
.CONTINUE .IF ZERO?
JL
next1
MOV
[SI], AX
;向正数缓冲区
内存
储数据
ADD
SI, 2
.CONTINUE
next1:
MOV
[DI], AX
;向负数缓冲区内存储数据
ADD
DI, 2
.UNTILCXZ
SUB
SI, OFFSET Data1+2
SUB
DI, OFFSET Data2+2
SHR
SI, 1
SHR
DI, 1
MOV
Data1, SI
MOV
Data2, DI
;把每类的统计个数存入缓冲区的第一个字单元
.EXIT
0
END
喜欢
0
评分
0
最新喜欢:
回复
100%
发帖
回复
« 返回列表
普通帖
您需要登录后才可以回帖,
登录
或者
注册
100%
返回顶部
关闭
最新喜欢