Created
January 10, 2020 19:54
-
-
Save PashokSy/2b021af60871bc6dfdc991dd20ce9e68 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 | |
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 | |
MOV SI,offset DUMP+1 | |
XOR CX,CX | |
MOV CL,[SI] | |
CMP CX,0 | |
JE EXIT_POINT | |
XOR AX,AX | |
XOR DI,DI | |
MOV DI,10 | |
FOR_LOOP: | |
INC SI | |
XOR BX,BX | |
MOV BL,[SI] | |
SUB BL,'0' | |
CMP BL,9 | |
MUL DI | |
ADD AX,BX | |
LOOP FOR_LOOP | |
; 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