设在A,B,D三个字单元中分别存放3个数,若3个数均不为0,则求和并将和存放于S单元中 ;若其中任一数为0,则将其它2个单元全部置0

版权声明: https://blog.csdn.net/weixin_42000150/article/details/80659484
;设在A,B,D三个字单元中分别存放3个数,若3个数均不为0,则求和并将和存放于S单元中
;若其中任一数为0,则将其它2个单元全部置0
DATA SEGMENT
A    DW 12
B    DW 0
D    DW 999
S    DW ?
DATA ENDS 

STACK SEGMENT PARA STACK
      DW 128 DUP(?)
TOP   LABEL WORD
STACK ENDS

CODE SEGMENT
     ASSUME SS:STACK,CS:CODE,DS:DATA
MAIN PROC FAR
START:
         MOV AX,DATA
MOV DS,AX
 
MOV AX,STACK
MOV SS,AX
LEA SP,TOP
 
MOV CX,3
XOR AX,AX
 
LEA SI,A
L0: MOV BX,[SI]
ADD SI,2
CMP BX,0
JZ  L1
ADD AX,BX
LOOP L0
MOV [SI],AX
 
XOR CX,CX
MOV BX,10
L3: XOR DX,DX
DIV BX
PUSH DX
INC CX
CMP AX,0
JNZ L3
 
L4: POP DX
ADD DL,30H
MOV AH,2
INT 21H
LOOP L4
JMP EXIT
 
L1:    MOV CX,3
         LEA SI,A
         MOV AX,0
L2: MOV [SI],AX
ADD SI,2
LOOP L2
EXIT: MOV AH,4CH
         INT 21H
CODE ENDS
MAIN ENDP
     END START

猜你喜欢

转载自blog.csdn.net/weixin_42000150/article/details/80659484