Created
January 11, 2020 18:47
-
-
Save PashokSy/e0246bee58d9a492b3b2d7331b723f49 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
;(40x2-23) / x якщо 0 < x ≤ 7 | |
;38x3+5 якщо x ≤ 0 (DICH) | |
;126 / x якщо x > 7 (READY) | |
STACKSEG SEGMENT PARA "STACK" | |
DW 32 DUP(?) | |
STACKSEG ENDS | |
DSEG SEGMENT PARA PUBLIC "DATA" | |
DUMP DB 5, ?, 4 DUP('?') | |
X DB 0 | |
FL DB 0 | |
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 | |
JE MIDDLE_JUMP_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 | |
MIDDLE_JUMP_POINT: | |
JE EXIT_POINT | |
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 | |
CMP AX,0 | |
JE CONDITION_2 | |
CMP FL,1 | |
JE CONDITION_2 | |
CMP AX, 7 | |
JA CONDITION_3 ;УСЛОВИЕ X > 7 | |
CONDITION_2: | |
IMUL AX | |
IMUL AX | |
MOV BX,38 | |
IMUL BX | |
ADD AX,5 | |
JMP TO_OUTPUT | |
CONDITION_3: ;126 / x | |
MOV BX,AX | |
MOV AX, 126 | |
;MOV DX, 126; В ТЕОРИИ ЕСЛИ БОЛЬШЕ 1 БИТА РАБОТАЕМ С DX | |
DIV BX | |
TO_OUTPUT: | |
; OUTPUT PROC | |
MOV BX,AX | |
OR BX,BX | |
MOV AL,0AH | |
INT 29H | |
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