主题:求助。。。
霁冰岛
[专家分:0] 发布于 2007-03-14 18:21:00
刚刚开课,汇编才上了一节课,啥都还没碰,老师就给我们出难题,让我们写程序了,可是什么都没教啊,每天还很多课,实在没办法在一天之内弄出来。。。麻烦个位帮我看看这个到底怎么写啊。。。谢谢啦。。。最好能有些解释...谢谢
在长度为8的字节数组中,查找大于42H的无符号数的个数,存放在字节单元up中;等于42H的无符号数的个数,存放在字节单元equa中;小于42H的无符号数的个数,存放在字节单元down中。
程序显示up equa down的值
最后更新于:2007-03-14 18:32:00
回复列表 (共2个回复)
沙发
小牛斑斑 [专家分:1210] 发布于 2007-03-15 14:36:00
给大家推荐个
好的技术群 大家一起学习啊
32518054
挺好的
板凳
小牛斑斑 [专家分:1210] 发布于 2007-03-15 14:49:00
.MODEL SMALL
.DATA
data1 DB 31H,21H,42H,52H,87H,23H,98H,01H
count DB 8H
search DB 42H
up DB 0H
down DB 0H
equa DB 0H
upString db 0ah,0dh,'UP Number:$'
downString db 0ah,0dh,'Down Number:$'
equaString db 0ah,0dh,'Eqau Number:$'
.CODE
START:
MOV AX,@DATA
MOV DS,AX
MOV BL,COUNT ;取出COUNT的内容8H放入BL中
MOV DL,SEARCH
MOV AL,[DATA1+BX] ;取出数组中的值
CMP DL,AL ;与SEARCH比较大小
JZ EQAULZ ;等于则跳到EQAULZ
JNS DOWNZ ;小于则跳到DOWNZ
JS UPZ ;大于则跳到UPZ
EQAULZ:
INC EQUA
DEC COUNT ;计数器
CMP COUNT,1H ;等于1就退出
JNS START
JZ EXIT
UPZ:
INC UP
DEC COUNT
CMP COUNT,1H
JNS START
JZ EXIT
DOWNZ:
INC DOWN
DEC COUNT
CMP COUNT,1H
JNS START
JZ EXIT
EXIT: MOV DX,OFFSET UPSTRING ;调用中断在屏幕上显示出结果
MOV AH,09H
INT 21H
MOV BL,UP
MOV BH,30H
ADD BL,BH
MOV DL,BL
MOV AH,02H
INT 21H
MOV DX,OFFSET DOWNSTRING
MOV AH,09H
INT 21H
MOV BL,DOWN
MOV BH,30H
ADD BL,BH
MOV DL,BL
MOV AH,02H
INT 21H
MOV DX,OFFSET EQUASTRING
MOV AH,09H
INT 21H
MOV BL,EQUA
MOV BH,30H
ADD BL,BH
MOV DL,BL
MOV AH,02H
INT 21H
MOV AX,4C00H
INT 21H
END START
转贴
我来回复