各位帮帮忙 看看汇编代码对不对或者该如何做 = =

各位帮帮忙 看看汇编代码对不对或者该怎么做 = =
do mo a ri ga do

第一个 从0500H这个单元起的1000个数,找出最小的,放入1000H中
Assembly code

[size=18px]
DATAS SEGMENT
   
DATAS ENDS

STACKS SEGMENT

STACKS ENDS

CODES SEGMENT
    ASSUME CS:CODES,DS:DATAS,SS:STACKS
START PROC FAR
    PUSH DS
    MOV AX,0
    PUSH AX
    MOV AX,DATAS
    MOV DS,AX
    MOV BX,OFFSET 0500H
    MOV CX,999
    MOV AL,[BX]
AGAIN:
    INC BX
    CMP AL,[BX]
    JLE NEXT
    MOV AL,[BX]
NEXT:
    DEC CX
    JNZ AGAIN
    MOV BX,OFFSET 1000H
    MOV [BX],AL
    RET
START ENDP
    CODES ENDS
    END START
[/size]





第二个 以“#”(要求是以空格开头,我不知道怎么做>_<)开头,以“$”结尾的一个串,要求统计中间字符的个数
Assembly code

[size=18px]
DATAS SEGMENT
    STRING DB '#','1','2','3','$' 
DATAS ENDS

STACKS SEGMENT

STACKS ENDS

CODES SEGMENT
    ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
    MOV AX,DATAS
    MOV DS,AX
    LEA BX,STRING
    MOV CX,0
AGAIN:
    INC BX
    MOV AL,[BX]
    CMP AL,'$'
    JNZ NEXT
    JMP EXIT
NEXT:
    INC CX
    JMP AGAIN
EXIT:
    MOV AH,4CH
    INT 21H
CODES ENDS
    END START

[/size]


第三个 两个多字节的数相加,NUMBER的第一个单元放字节的个数,接着第一个多字节数,第二个多字节数,相加的结果放在第二个多字节数的后面 >_<

Assembly code

[size=18px]
DATAS SEGMENT
   NUMBER DB 8,01H,02H,03H,04H,01H,02H,03H,04H
   COUNT DB ? 
DATAS ENDS

STACKS SEGMENT

STACKS ENDS

CODES SEGMENT
    ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
    MOV AX,DATAS
    MOV DS,AX
    MOV BX,OFFSET NUMBER
    MOV AX,[BX]
    MOV BP,AX
    MOV COUNT,AL
    MOV DI,OFFSET NUMBER+[BP]+1
    DIV CL
    MOV BP,AX
    MOV SI,OFFSET NUMBER+[BP]
    AGAIN:
    MOV AL,[SI]
    MOV [DI],AL
    INC DI
    INC SI
    DEC CL
    JNZ AGAIN
    MOV AH,4CH
    INT 21H
CODES ENDS
    END START
[/size]




------解决方案--------------------
探讨
do mo a ri ga do 
第一个 从0500H这个单元起的1000个数,找出最小的,放入1000H中
Assembly code
[size=18px]
DATAS SEGMENT
DATAS ENDS
STACKS SEGMENT
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:D……

------解决方案--------------------
lz在日企?