Skip to content

Instantly share code, notes, and snippets.

@sdygt
Last active October 16, 2016 08:44
Show Gist options
  • Save sdygt/8f58d8f8fc0b31af675106116f04fe50 to your computer and use it in GitHub Desktop.
Save sdygt/8f58d8f8fc0b31af675106116f04fe50 to your computer and use it in GitHub Desktop.
微机实验1
.486
DATA SEGMENT USE16
SUM DB ?,?,?
MESG DB '255+96='
DB 0,0,0,'$'
N1 DW 96
N2 DW 255
DATA ENDS
CODE SEGMENT USE16
ASSUME CS:CODE,DS:DATA
BEG: MOV AX,DATA
MOV DS,AX
MOV CX,N1
ADD CX,N2
MOV BX,OFFSET SUM
MOV [BX],CX
CALL CHANG
MOV AH,9
MOV DX,OFFSET MESG
INT 21H
MOV AH,4CH
INT 21H
CHANG PROC
LAST: CMP [BX],WORD PTR 100 ;BX-->SUM
JC MID
SUB [BX],WORD PTR 100
INC BYTE PTR [BX+10]
JMP LAST
MID: CMP [BX],WORD PTR 10
JC NEXT
SUB [BX],WORD PTR 10
INC BYTE PTR [BX+11]
JMP MID
NEXT: MOV CX,WORD PTR SUM
ADD WORD PTR [BX+12],CX
ADD [BX+10],BYTE PTR 30H
ADD [BX+11],BYTE PTR 30H
ADD [BX+12],BYTE PTR 30H
RET
CHANG ENDP
CODE ENDS
END BEG
.486
DATA SEGMENT USE16
SUM DB ?,?
MESG DB '25+9='
DB 0,0,'$'
N1 DB 9
N2 DB 25
DATA ENDS
CODE SEGMENT USE16
ASSUME CS:CODE,DS:DATA
BEG: MOV AX,DATA
MOV DS,AX
MOV BX,OFFSET SUM
MOV AH,N1
MOV AL,N2
ADD AH,AL
MOV [BX],AH
CALL CHANG
MOV AH,9
MOV DX,OFFSET MESG
INT 21H
MOV AH,4CH
INT 21H
CHANG PROC
LAST: CMP [BX],BYTE PTR 10
JC NEXT
SUB [BX],BYTE PTR 10
INC BYTE PTR [BX+7]
JMP LAST
NEXT: MOV CL,BYTE PTR SUM
ADD BYTE PTR [BX+8],CL
ADD [BX+7],BYTE PTR 30H
ADD [BX+8],BYTE PTR 30H
RET
CHANG ENDP
CODE ENDS
END BEG
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment