Created
January 10, 2020 20:09
-
-
Save PashokSy/7e8c84ab601c5a46fd7382acccd52925 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
STACKSEG SEGMENT PARA "STACK" | |
DW 32 DUP(?) | |
STACKSEG ENDS | |
DSEG SEGMENT PARA PUBLIC "DATA" | |
NUM DW 0 | |
FL DB 0 | |
MESSAGE DB "PLEASE, ENTER YOUR NUMBER:", '$', 0AH, 0DH | |
DUMP DB 5, ?, 4 DUP('?') | |
DSEG ENDS | |
CSEG SEGMENT PARA PUBLIC "CODE" | |
MAIN PROC FAR | |
ASSUME CS: CSEG, DS: DSEG, SS: STACKSEG | |
; MAGIC !!! | |
PUSH DS | |
MOV AX, 0 | |
PUSH AX | |
MOV AX, DSEG | |
MOV DS, AX | |
; MAGIC END !!! | |
; INPUT PROC | |
LEA DX,DUMP | |
MOV AH,10 | |
INT 21H | |
LEA SI,DUMP+1 | |
XOR CX,CX | |
MOV CL,[SI] | |
CMP CX,0 | |
JE EXIT_POINT | |
MOV FL,0 | |
INC SI | |
MOV AL,[SI] | |
CMP AL,'-' | |
JNE POSITIV | |
MOV FL,1 | |
DEC CL | |
CMP CX,0 | |
JE EXIT_POINT | |
INC SI | |
POSITIV: | |
XOR AX,AX | |
XOR DI,DI | |
MOV DI,10 | |
DEC SI | |
FOR_LOOP: | |
INC SI | |
XOR BX,BX | |
MOV BL,[SI] | |
SUB BL,'0' | |
CMP BL,9 | |
JA EXIT_POINT | |
MUL DI | |
ADD AX,BX | |
LOOP FOR_LOOP | |
CMP FL,1 | |
JNE NOT_NEG | |
NEG AX | |
NOT_NEG: | |
; INPUT END | |
ADD AX,12 | |
; OUTPUT PROC | |
MOV BX,AX | |
OR BX,BX | |
JNS M1 | |
MOV AL, "-" | |
INT 29H | |
NEG BX | |
M1: | |
MOV AX, BX | |
XOR CX, CX | |
MOV BX, 10 | |
M2: | |
XOR DX, DX | |
DIV BX | |
ADD DL, "0" | |
PUSH DX | |
INC CX | |
TEST AX, AX | |
JNZ M2 | |
M3: | |
POP AX | |
INT 29H | |
LOOP M3 | |
; OUTPUT END | |
EXIT_POINT: | |
ret | |
MAIN ENDP | |
CSEG ENDS | |
END MAIN |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment