Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

Подписываем
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Предоплата всего
Подписываем
Цель работы: освоение программирования задач, требующих циклической обработки.
Код программы:
%TITLE "LAB6"
DATA SEGMENT
exCode DB 0
ASC DB 4 dup (0), '$'
X DB 3,4 dup (?)
a DB 1 dup (' '), '$'
N DB 1 dup (' '), '$'
P DB 1 dup (' '), '$'
b DB 2
e DB 4
r DB (?)
y DB (?)
PR_Z DB 'VVEDITE CHISLO POVTORENIY (N): ', '$'
PR_Z1 DB 'VVEDITE PRIRASHENIE (P): ', '$'
PR_Z2 DB 'VVEDITE PEREMENNUYU (a): ', '$'
PR_Z3 DB 'FUNCTION: y=a*a/b-a*e', '$'
PR_B DB 'b= ', '$'
PR_E DB 'e= ', '$'
PR_X DB 13,10, 'a= ', '$'
PR_Y DB ' Y= ','$'
DATA ENDS
STACK SEGMENT
DW 16 dup (?)
STACK ENDS
CODE SEGMENT
START PROC FAR
ASSUME CS:CODE, DS:DATA, ES:DATA, SS:STACK
MOV AX, DATA
MOV DS, AX
SUB AX, AX
CALL CLEAR
MOV DX, 0000H
CALL CURS
LEA DX, [PR_Z3]
CALL DISPLAY
MOV DX, 0000H
CALL CURS
;Ввод числа повторений
LEA DX, [PR_Z]
CALL DISPLAY
MOV AH, 0AH
LEA DX, [X]
INT 21H
CALL IAS
MOV [N], AL
MOV DX, 0100H
CALL CURS
;Ввод переменной а
LEA DX, [PR_Z2]
CALL DISPLAY
MOV AH, 0AH
LEA DX, [X]
INT 21H
CALL IAS
MOV [a], AL
MOV DX, 0200H
CALL CURS
;Ввод приращения
LEA DX, [PR_Z1]
CALL DISPLAY
MOV AH, 0AH
LEA DX, [X]
INT 21H
CALL IAS
MOV [P], AL
XOR AX, AX
MOV DX, 0300H
CALL CURS
LEA DX, [PR_B]
CALL DISPLAY
MOV AL, [b]
MOV AH, 0
CALL [BIAS]
LEA DX, [ASC]
CALL DISPLAY
MOV DX, 0400H
CALL CURS
LEA DX, [PR_E]
CALL DISPLAY
MOV AL, [e]
MOV AH, 0
CALL [BIAS]
LEA DX, [ASC]
CALL DISPLAY
SUB BX, BX
MOV BL, [a]
MOV CL, [N]
MOV CH, 0
L1:
SUB AX, AX
MOV AL, A
MUL [a]
DIV [b]
MOV [r], AL
MOV AL, [a]
MUL [e]
SUB [r], AL
MOV AL, r
MOV [y], AL
LEA DX, [PR_X]
CALL DISPLAY
PUSH CX
MOV AL, A
MOV AH, 0
CALL BIAS
LEA DX, [ASC]
CALL DISPLAY
CALL ZAP
LEA DX, [PR_Y]
CALL DISPLAY
SUB AX, AX
MOV AL, [y]
CALL BIAS
LEA DX, [ASC]
CALL DISPLAY
CALL ZAP
MOV AL, P
ADD a, AL
POP CX
LOOP L1
MOV AH, 0AH
LEA DX, [X]
INT 21H
MOV AH, 04Ch
MOV AL, [exCode]
INT 21H
START ENDP
CLEAR PROC NEAR
MOV AX, 0600H
MOV BH, 07H
MOV CX, 0000H
MOV DX, 184FH
INT 10H
RET
CLEAR ENDP
CURS PROC NEAR
MOV AH, 02H
MOV BH, 00
INT 10H
RET
CURS ENDP
DISPLAY PROC NEAR
MOV AH, 09H
INT 21H
RET
DISPLAY ENDP
ZAP PROC NEAR
MOV CX, 4
LEA SI, [ASC]
MOV AL, 00H
L11:
MOV [SI], AL
INC SI
LOOP L11
RET
ZAP ENDP
BIAS PROC NEAR
MOV CX, 10
LEA SI, [ASC+3]
L20:
CMP AX, 10
JB L30
XOR DX, DX
DIV CX
OR DL, 30H
MOV [SI], DL
DEC SI
JMP L20
L30:
OR AL, 30H
MOV [SI], AL
RET
BIAS ENDP
IAS PROC NEAR
MOV AL, [X+1]
CMP AL, 1
JNE M1
MOV AH, 30H
MOV AL, [X+2]
JMP M2
M1:
MOV AH, [X+2]
MOV AL, [X+3]
M2:
AND AX, 0F0FH
AAD
RET
IAS ENDP
MOV AH, 04Ch
MOV AL, [exCode]
INT 21H
CODE ENDS
END START
Результат выполнения программы: