请大家帮忙编一道微机原理的程序题 谢啦

来源:百度知道 编辑:UC知道 时间:2024/06/06 09:04:26
从数据段MDATA 单元开始存放一个字节型的无符号数据串(个数不定),数据串如'08H,01H,52H,FFH,03H,C4H,57H,92H......'
题目要求如下:
1,将字节型数据串大于0的数据求和,并放入SUM 单元(小于65535)
2,写完整程序,包括段定义,返回DOS操作
3,写出至少5处注释

谢谢大家啦 十二万分感谢啊+++++++

DATAS SEGMENT
STR DB 10 DUP(0)
MDATA DB 08H,01H,52H,0FFH,03H,0C4H,57H,92H
SUM DW 0
DATAS ENDS

STACKS SEGMENT
DW 100 DUP(0)
STACKS ENDS

CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
MOV DX,0
MOV CX,OFFSET SUM
SUB CX,OFFSET MDATA;循环个数
MOV SI,OFFSET MDATA;指向开头
AG: MOV AL,BYTE PTR [SI]
INC SI
CMP AL,0
JL NEXT1
MOV AH,0;正数则累加
ADD DX,AX
NEXT1: LOOP AG
MOV [SUM],DX;和放入SUM单元
MOV SI,OFFSET STR;显示DX内容
ADD SI,4
MOV [SI+1],"$"
MOV AX,DX
MOV CX,5
AG1:MOV DX,0
MOV BX,10
DIV BX
PUSH DX
ADD DL,30H
MOV [SI],DL
DEC SI
POP DX
LOOP AG1
MOV DX,SI
INC DX
MOV AH,9;显示结果
INT 21H
MOV AH,4CH
INT 21H