回 帖 发 新 帖 刷新版面

主题:求助。。。

刚刚开课,汇编才上了一节课,啥都还没碰,老师就给我们出难题,让我们写程序了,可是什么都没教啊,每天还很多课,实在没办法在一天之内弄出来。。。麻烦个位帮我看看这个到底怎么写啊。。。谢谢啦。。。最好能有些解释...谢谢
在长度为8的字节数组中,查找大于42H的无符号数的个数,存放在字节单元up中;等于42H的无符号数的个数,存放在字节单元equa中;小于42H的无符号数的个数,存放在字节单元down中。
程序显示up equa down的值

回复列表 (共2个回复)

沙发

给大家推荐个

好的技术群  大家一起学习啊


32518054
挺好的

板凳

.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
转贴

我来回复

您尚未登录,请登录后再回复。点此登录或注册