Skip to content

Instantly share code, notes, and snippets.

@PashokSy
Created January 10, 2020 19:54
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save PashokSy/2b021af60871bc6dfdc991dd20ce9e68 to your computer and use it in GitHub Desktop.
Save PashokSy/2b021af60871bc6dfdc991dd20ce9e68 to your computer and use it in GitHub Desktop.
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