Лабораторная работа

Лабораторная работа на тему Выполнение арифметических операций над числами с фиксированной запятой

Работа добавлена на сайт bukvasha.net: 2014-12-15

Поможем написать учебную работу

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

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

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 11.3.2025


Цель: ознакомиться с командами арифметических операций, вводом данных с клавиатуры и выводом данных на экран.
Задание: написать программу ввода с клавиатуры двух чисел в 9-ричной системе счисления размером с слово, выполнения над ними деления и вывода результата в исходной системе счисления. Программа должна предусматривать контроль вводимой информации, контроль диапазона чисел и результата операции (переполнение, невозможность деления).
Программа:
;-----------ЛАБОРАТОРНАЯ РАБОТА №3
 .MODEL SMALL
 .STACK 100H
 .186
 .DATA
S1 DB 'ВВЕДИТЕ ДЕЛИМОЕ В ДЕВЯТИРИЧНОЙ СИСТЕМЕ'
DB ' СЧИСЛЕНИЯ (ОТ -48848 ДО 1О8806): ',10,13,'$'
S2 DB 'ВВЕДИТЕ ДЕЛИТЕЛЬ В ДЕВЯТИРИЧНОЙ СИСТЕМЕ'
DB ' СЧИСЛЕНИЯ (ОТ -48848 ДО 1О8806): ',10,13,'$'
S3 DB 'НЕВЕРНАЯ ЗАПИСЬ ЧИСЛА В ДЕВЯТИРИЧНОЙ'
DB ' СИСТЕМЕ СЧИСЛЕНИЯ ИЗ ЗАДАННОГО ДИАПАЗОНА.','$'
S4 DB 'ДЕЛЕНИЕ НЕВОЗМОЖНО: ДЕЛИТЕЛЬ РАВЕН НУЛЮ.','$'
S5 DB 'ДЕЛЕНИЕ НЕВОЗМОЖНО: ДЕЛИТЕЛЬ БОЛЬШЕ ДЕЛИМОГО.','$'
S6 DB 'ОСТАТОК: ',10,13,'$'
S7 DB 'ЧАСТНОЕ: ',10,13,'$'
L DB '48848' ;МИНИМАЛЬНОЕ ЧИСЛО
H DB '108806' ;МАКСИМАЛЬНОЕ ЧИСЛО
SX DB 12 DUP('x') ;ДЕЛИМОЕ
SY DB 12 DUP('y') ;ДЕЛИТЕЛЬ
SZ DB 8 DUP('0'),'$' ;ЧАСТНОЕ
 .CODE
BEGIN: MOV AX, @DATA
 MOV DS, AX
;-----------ОЧИСТКА БУФЕРА КЛАВИАТУРЫ
START: CLI ;ЗАПРЕТ ПРЕРЫВАНИЙ
 SUB AX, AX
 MOV ES, AX
 MOV AL, ES:[41AH]
 MOV ES:[41CH], AL
 STI ;РАЗРЕШЕНИЕ ПРЕРЫВАНИЙ
;-----------ОЧИСТКА ЭКРАНА
 CLD
 MOV AX, 0B800H
 MOV ES, AX
 MOV DI, 0
 MOV AL, 32
 MOV AH, 7
 MOV CX, 2000
REP STOSW
;-----------УСТАНОВКА КУРСОРА В ЛЕВЫЙ ВЕРХНИЙ УГОЛ ЭКРАНА
 MOV AH, 2 ;НОМЕР ФУНКЦИИ
 MOV BH, 0 ;НОМЕР СТРАНИЦЫ
 MOV DH, 0 ;СТРОКА
 MOV DL, 0 ;СТОЛБЕЦ
 INT 10H ;ПОЗИЦИОНИРОВАНИЕ КУРСОРА
;-----------ВЫВОД ПРИГЛАШЕНИЯ ВВОДА ДЕЛИМОГО
 LEA DX, S1
 MOV AH, 9
 INT 21H
;-----------ВВОД ДЕЛИМОГО
 LEA DX, SX
 MOV BX, DX
 MOV [BX], BYTE PTR 9 ;ПРЕДПОЛАГАЕМАЯ ДЛИНА СТРОКИ
 MOV AH, 0AH
 INT 21H
;-----------УСТАНОВКА КУРСОРА
 MOV AH, 2 ;НОМЕР ФУНКЦИИ
 MOV BH, 0 ;НОМЕР СТРАНИЦЫ
 MOV DH, 2 ;СТРОКА
 MOV DL, 0 ;СТОЛБЕЦ
 INT 10H ;ПОЗИЦИОНИРОВАНИЕ КУРСОРА
;-----------ПРОВЕРКА ПРАВИЛЬНОСТИ ВВОДА ДЕЛИМОГО
 LEA DX, SX
 MOV BX, DX
 CALL CONTROL ;ПРОВЕРКА ПРАВИЛЬНОСТИ ВВОДА
 MOV AL, [BX]
 CMP AL, '0'
 JE ZERO1 ;ЧИСЛО ВВЕДЕНО НЕВЕРНО
 JMP NEAR PTR DELITEL
ZERO1: LEA DX, S3
 MOV AH, 9
 INT 21H
;===========ОЖИДАНИЕ НАЖАТИЯ КЛАВИШИ
 MOV AH, 7
 INT 21H
 JMP NEAR PTR START
;-----------ВЫВОД ПРИГЛАШЕНИЯ ВВОДА ДЕЛИТЕЛЯ
DELITEL: LEA DX, S2
 MOV AH, 9
 INT 21H
;-----------ВВОД ДЕЛИТЕЛЯ
INPUT: LEA DX, SY
 MOV BX, DX
 MOV [BX], BYTE PTR 9 ;ПРЕДПОЛАГАЕМАЯ ДЛИНА СТРОКИ
 MOV AH, 0AH
 INT 21H
;-----------УСТАНОВКА КУРСОРА
 MOV AH, 2 ;НОМЕР ФУНКЦИИ
 MOV BH, 0 ;НОМЕР СТРАНИЦЫ
 MOV DH, 4 ;СТРОКА
 MOV DL, 0 ;СТОЛБЕЦ
 INT 10H ;ПОЗИЦИОНИРОВАНИЕ КУРСОРА
;-----------ПРОВЕРКА ПРАВИЛЬНОСТИ ВВОДА ДЕЛИТЕЛЯ
 LEA DX, SY
 MOV BX, DX
 CALL CONTROL ;ПРОВЕРКА ПРАВИЛЬНОСТИ ВВОДА
 CMP [BX], BYTE PTR '0'
 JE ZERO2 ;ЧИСЛО ВВЕДЕНО НЕВЕРНО
 JMP NEAR PTR OK
ZERO2: LEA DX, S3
 MOV AH, 9
 INT 21H
;===========ОЖИДАНИЕ НАЖАТИЯ КЛАВИШИ
 MOV AH, 7
 INT 21H
;-----------ОЧИСТКА БУФЕРА КЛАВИАТУРЫ
 CLI
 SUB AX, AX
 MOV ES, AX
 MOV AL, ES:[41AH]
 MOV ES:[41CH], AL
 STI
;-----------ОЧИСТКА ЭКРАНА
 CLD
 MOV AX, 0B800H
 MOV ES, AX
 MOV DI, 480
 MOV AL, 32
 MOV AH, 7
 MOV CX, 480
REP STOSW
;-----------УСТАНОВКА КУРСОРА
 MOV AH, 2 ;НОМЕР ФУНКЦИИ
 MOV BH, 0 ;НОМЕР СТРАНИЦЫ
 MOV DH, 3 ;СТРОКА
 MOV DL, 0 ;СТОЛБЕЦ
 INT 10H ;ПОЗИЦИОНИРОВАНИЕ КУРСОРА
 JMP NEAR PTR INPUT
;-----------УСТАНОВКА КУРСОРА
OK: MOV AH, 2 ;НОМЕР ФУНКЦИИ
 MOV BH, 0 ;НОМЕР СТРАНИЦЫ
 MOV DH, 4 ;СТРОКА
 MOV DL, 0 ;СТОЛБЕЦ
 INT 10H ;ПОЗИЦИОНИРОВАНИЕ КУРСОРА
;-----------ПРОВЕРКА ВОЗМОЖНОСТИ ДЕЛЕНИЯ
 LEA BX, SX
 CALL CTRL0
 MOV AH, [BX]
 LEA BX, SY
 CALL CTRL0
 MOV AL, [BX]
 CMP AL, '0'
 JE NULL
 JMP N_NULL
;-----------ДЕЛИТЕЛЬ РАВЕН НУЛЮ
NULL: LEA DX, S4
 MOV AH, 9
 INT 21H
 JMP NEAR PTR ENDPROG
;-----------ДЕЛИТЕЛЬ НЕ РАВЕН НУЛЮ
N_NULL: CMP AH, '0'
 JNE DELENIE
;-----------ДЕЛИМОЕ РАВНО НУЛЮ
 LEA DX, S7
 MOV AH, 9
 INT 21H
 LEA BX, SZ
 MOV [BX], BYTE PTR '0'
 INC BX
 MOV [BX], BYTE PTR 10
 INC BX
 MOV [BX], BYTE PTR 13
 INC BX
 MOV [BX], BYTE PTR '$'
 LEA DX, SZ
 MOV AH, 9
 INT 21H
 LEA DX, S6
 MOV AH, 9
 INT 21H
 LEA DX, SZ
 MOV AH, 9
 INT 21H
 JMP NEAR PTR ENDPROG
;-----------ДЕЛИМОЕ И ДЕЛИТЕЛЬ НЕ РАВНЫ НУЛЮ
DELENIE: LEA SI, SX
 LEA DI, SY
 CALL COMPARE
 CMP [SI], BYTE PTR 1
 JE POSSIBLE
;-----------ДЕЛИТЕЛЬ БОЛЬШЕ ДЕЛИМОГО
 LEA DX, S5
 MOV AH, 9
 INT 21H
 JMP NEAR PTR ENDPROG
;-----------НАЧИНАЕТСЯ ДЕЛЕНИЕ
POSSIBLE: MOV BX, 7 ;BX - ИНДЕКС ДЛЯ ЧАСТНОГО
;-----------В СХ - ЧИСЛО РАЗРЯДОВ ДЕЛИТЕЛЯ
AGAIN: MOV CL, SY[1] ;CX - ЧИСЛО РАЗРАДОВ ДЕЛИТЕЛЯ
 MOV CH, 0
;-----------DI - НА МЛАДШИЙ РАЗРЯД ДЕЛИТЕЛЯ
 MOV DI, CX ;DI - ИНДЕКС ДЛЯ ДЕЛИТЕЛЯ
 INC DI
;-----------УДАЛЕНИЕ ВЕДУЩИХ НУЛЕЙ ДЕЛИТЕЛЯ
 MOV SI, 2 ;SI - ИНДЕКС ДЛЯ ДЕЛИМОГО
 MOV AL, SY[SI]
 CMP AL, '-'
 JNE BEFORE_C1
 INC SI
 DEC CX
BEFORE_C1: MOV AL, SY[SI]
 CMP AL, '0'
 JE SS1
 JMP LBLL
SS1: INC SI
 DEC CX
 JMP BEFORE_C1
;-----------SI - НА МЛАДШИЙ РАЗРЯД ДЕЛИМОГО
LBLL: MOV AL, SX[1]
 CBW ;АН - ДЛЯ ЗАПИСИ ПЕРЕНОСА
 MOV SI, AX
 INC SI
;-----------НАЧАЛО ЦИКЛА ДЕЛЕНИЯ
;===========СРАВНЕНИЕ ЦИФР РАЗРЯДА ДЕЛИМОГО И ДЕЛИТЕЛЯ
C1: MOV AL, SX[SI]
 CMP AL, SY[DI]
 JAE NEXT
;===========ЦИФРА ДЕЛИМОГО МЕНЬШЕ ЦИФРЫ ДЕЛИТЕЛЯ
 ADD AL, 9 ;ЗАЁМ ЕДИНИЦЫ
 SUB AL, SY[DI] ;ВЫЧИТАНИЕ
 ADD AL, '0' ;ПЕРЕВОД ЦИФРЫ В ЕЕ КОД
 SUB AL, AH ;ВЫЧИТАНИЕ ПЕРЕНОСА
 MOV SX[SI], AL ;РЕЗУЛЬТАТ - НА МЕСТО РАЗРЯДА ДЕЛИМОГО
 MOV AH, 1 ;ЗАПИСЬ ЗАЁМА
 JMP NEAR PTR DECREM ;НА КОНЕЦ ЦИКЛА
;===========ЦИФРА ДЕЛИМОГО БОЛЬШЕ ЦИФРЫ ДЕЛИТЕЛЯ
NEXT: SUB AL, SY[DI] ;ВЫЧИТАНИЕ
 SUB AL, AH ;ВЫЧИТАНИЕ ПЕРЕНОСА
 MOV AH, 0 ;ЗАЁМА НЕТ
 ADD AL, '0' ;ПЕРЕВОД ЦИФРЫ В ЕЕ КОД
 MOV SX[SI], AL ;РЕЗУЛЬТАТ - НА МЕСТО РАЗРЯДА ДЕЛИМОГО
;-----------SI, DI - НА БОЛЕЕ СТАРШИЙ РАЗРЯД
DECREM: DEC SI
 DEC DI
 LOOP C1 ;НА НАЧАЛО ЦИКЛА ДЕЛЕНИЯ
;-----------БЫЛ ЛИ ЗАЁМ ИЛИ НЕТ
 CMP AH, 1
 JNE SRAVN
;-----------ЗАЁМ БЫЛ
AGAIN1: CMP SX[SI], '0' ;СРАВНЕНИЕ ЦИФРЫ РАЗРЯДА С НУЛЁМ
 JE C2
 DEC SX[SI]
 JMP SRAVN
;-----------ЦИФРА РАЗРЯДА ДЕЛИТЕЛЯ РАВНА НУЛЮ
C2: MOV SX[SI], '8'
 DEC SI ;НА БОЛЕЕ СТАРШИЙ РАЗРЯД
 JMP AGAIN1 ;НА СРАВНЕНИЕ ЦИФРЫ РАЗРЯДА С НУЛЁМ
;===========ФОРМИРОВАНИЕ ЧАСТНОГО
;-----------ЕСТЬ ЛИ ПЕРЕНОС ПРИ УВЕЛИЧЕНИИ ЧАСТНОГО НА ЕДИНИЦУ
SRAVN: CMP SZ[BX], '8'
 JE PERENOS
;-----------ПЕРЕНОСА НЕТ
 ADD SZ[BX], 1 ;УВЕЛИЧЕНИЕ ЧАСТНОГО НА ЕДИНИЦУ
 MOV BX, 7 ;ВХ - НА МЛАДШИЙ РАЗРЯД
 JMP DEL ;НА СРАВНЕНИЕ ДЕЛИМОГО И ДЕЛИТЕЛЯ
;-----------ПЕРЕНОС ЕСТЬ
PERENOS: MOV SZ[BX], '0' ;В ДАННЫЙ РАЗРЯД - НУЛЬ
 DEC BX ;УВЕЛИЧЕНИЕ РАЗРЯДА
 JMP SRAVN ;НА СРАВНЕНИЕ РАЗРЯДА С "8"
;===========СРАВНЕНИЕ ДЕЛИМОГО И ДЕЛИТЕЛЯ
DEL: LEA SI, SX
 LEA DI, SY
 CALL COMPARE
 MOV AL, [SI]
 CMP AL, 1
 JNE QUIT ;ДЕЛЕНИЕ ЗАВЕРШЕНО
 JMP NEAR PTR AGAIN ;ДЕЛЕНИЕ ПРОДОЛЖАЕТСЯ
;-----------ОПРЕДЕЛЕНИЕ ЗНАКА ЧАСТНОГО
QUIT: MOV AH, SX[2]
 MOV AL, SY[2]
;-----------ВЫЯСНЕНИЕ ЗНАКА ДЕЛИМОГО
 CMP AH, '-'
 JE SX_
 JMP N_SX_
;-----------ДЕЛИМОЕ - ОТРИЦАТЕЛЬНОЕ
SX_: CMP AH, AL ;СРАВНЕНИЕ ЗНАКА ДЕЛИМОГО И ДЕЛИТЕЯ
 JE OUTP ;НА ВЫВОД ОСТАТКА
;-----------ДЕЛИТЕЛЬ - ПОЛОЖИТЕЛЬНЫЙ
;===========УДАЛЕНИЕ ВЕДУЩИХ НУЛЕЙ В ЧАСТНОМ
SY_: MOV BX, 0
SRCH: CMP SZ[BX], '0'
 JE DALEE
 JMP STOP
DALEE: INC BX
 JMP SRCH
;-----------ЗАПИСЬ МИНУСА ПЕРЕД СТАРШИМ РАЗРЯДОМ ЧАСТНОГО
STOP: DEC BX
 MOV SZ[BX], '-'
 JMP OUTP ;НА ВЫВОД ОСТАТКА
;-----------ДЕЛИМОЕ ПОЛОЖИТЕЛЬНОЕ
N_SX_: CMP AL, '-' ;ДЕЛИТЕЛЬ ОТРИЦАТЕЛЬНЫЙ?
 JE SY_ ;ЧАСТНОЕ ОТРИЦАТЕЛЬНОЕ
;-----------ВЫВОД ЧАСТНОГО
;===========ВЫВОД ОСТАТКА
;-----------ВЫВОД СТРОКИ "ОСТАТОК:"
OUTP: LEA DX, S6
 MOV AH, 9
 INT 21H
;ЗАПИСЬ В КОНЕЦ ОСТАТКА СИМВОЛОВ 10, 13 И "$"
 MOV BH, 0
 MOV BL, SX[1]
 ADD BX, 2 ;ВХ - ЗА МЛАДШИЙ РАЗРЯД
 MOV SX[BX], 10
 INC BX
 MOV SX[BX], 13
 INC BX
 MOV SX[BX], '$'
;-----------УДАЛЕНИЕ ВЕДУЩИХ НУЛЕЙ ОСТАТКА
 MOV AH, '0'
 LEA BX, SX ;ВХ - УКАЗЫВАЕТ НА ОСТАТОК
 INC BX
 INC BX
 MOV AL, [BX]
 CMP AL, '-'
 JE MN
 JMP N_MN
MN: MOV AH, '-'
 INC BX
N_MN: MOV AL, [BX]
 CMP AL, '0'
 JE EQ1
 JMP NEQ1
EQ1: INC BX
 JMP N_MN
NEQ1: MOV AL, [BX]
 DEC BX
 CMP AL, 10
 JE N_NUL
 MOV [BX], AH
 CMP AH, '-'
 JE EQQ
 JMP NEQQ
EQQ: MOV DX, BX
 JMP LBL
NEQQ: INC BX
 MOV AL, [BX]
 CMP AL, 10
 JE NUL
 JMP N_NUL
NUL: DEC BX
N_NUL: MOV DX, BX
LBL: MOV AH, 9
 INT 21H
;===========ВЫВОД ЧАСТНОГО
 LEA DX, S7
 MOV AH, 9
 INT 21H
 LEA BX, SZ
Q: MOV AL, [BX]
 CMP AL, '0'
 JE SM3
 JMP OUTPUT
SM3: INC BX
 JMP Q
OUTPUT: MOV DX, BX
 MOV AH, 9
 INT 21H
;-----------ВЫХОД ИЗ ПРОГРАММЫ
ENDPROG: MOV AH, 4CH
 INT 21H
;===========ПРОЦЕДУРА CONTROL - ЧИСЛО ДЕВЯТИРИЧНОЕ?
CONTROL PROC
 PUSHA ;СОХРАНЕНИЕ РЕГИСТРОВ В СТЕКЕ
 MOV BX, DX
 INC BX
 MOV AL, [BX]
 MOV AH, 0
 MOV CX, AX
;-----------ЯВЛЯЕТСЯ ЛИ СТРОКА ПУСТОЙ?
 CMP AL, 0
 JE ERR1 ;ЯВЛЯЕТСЯ
;-----------ПРОВЕРКА ДЛИНЫ СТРОКИ
 CMP AL, 6
 JA ERR1 ;ЧИСЛО ВВЕДЕНО НЕВЕРНО
 INC BX
 MOV AH, [BX]
 CMP AH, '-'
 JE MINUS
 JMP NEAR PTR FOR1
MINUS: INC BX ;ЧИСЛО ОТРИЦАТЕЛЬНОЕ
 DEC CX
;-----------ВВЕДЕННОЕ ЧИСЛО ДЕВЯТИРИЧНОЕ?
FOR1: MOV AH, [BX]
 CMP AH, '9'
 JB N1
ERR1: JMP NEAR PTR ERROR ;ЧИСЛО ВВЕДЕНО НЕВЕРНО
N1: CMP AH, '0'
 JB ERR1 ;ЧИСЛО ВВЕДЕНО НЕВЕРНО
 INC BX
 LOOP FOR1
 MOV [BX], BYTE PTR '$' ;ДЛЯ ВЫВОДА СТРОКИ
 CMP AL, 6
 JNE RETURN ;ЕСЛИ ДЛИНА ЧИСЛА МЕНЬШЕ 6
 MOV BX, DX
 INC BX
 MOV AH, 0
 MOV CX, AX
 INC BX
 MOV AH, [BX]
 CMP AH, '-'
 JE M1 ;ЧИСЛО ОТРИЦАТЕЛЬНОЕ
 LEA DI, H ;ЧИСЛО ПОЛОЖИТЕЛЬНОЕ
 JMP FOR2
M1: INC BX
 DEC CX
 LEA DI, L
;ВХОДИТ ЛИ ЧИСЛО В ЗАДАННЫЙ ДИАПАЗОН?
FOR2: MOV AH, [BX]
 CMP AH, [DI]
 JA ERROR ;ЧИСЛО ВВЕДЕНО НЕВЕРНО
 JB RETURN ;ЧИСЛО ВВЕДЕНО ПРАВИЛЬНО
 INC BX
 INC DI
 LOOP FOR2
 JMP RETURN
ERROR: MOV BX, DX
 MOV [BX], BYTE PTR '0'
RETURN: POPA ;ВОССТАНОВЛЕНИЕ РЕГИСТРОВ
 RET
CONTROL ENDP
;===========ПРОЦЕДУРА CTRL0 - ЭТО НУЛЬ?
CTRL0 PROC
 PUSHA
 MOV SI, 1
 MOV CL, [BX+SI]
 MOV CH, 0
 INC SI
 MOV AL, [BX+SI]
 CMP AL, '-'
 JE MIN
 JMP CYCLE
MIN: INC SI
 DEC CX
CYCLE: MOV AL, [BX+SI]
 CMP AL, '0'
 JNE FINISH
 INC SI
 LOOP CYCLE
 MOV SI, 0
 MOV AL, '0'
 MOV [BX+SI], AL
FINISH: POPA
 RET
CTRL0 ENDP
;===========ПРОЦЕДУРА COMPARE - СРАВНЕНИЕ ДВУХ ЧИСЕЛ
COMPARE PROC
 PUSHA
 INC SI
 INC DI
 MOV AH, [SI]
 MOV AL, [DI]
 INC SI
 INC DI
 CMP BYTE PTR [SI], '-'
 JE NEGAT1
 JMP POZIT1
NEGAT1: DEC AH
 INC SI
POZIT1: CMP BYTE PTR [DI], '-'
 JE NEGAT2
 JMP POZIT2
NEGAT2: DEC AL
 INC DI
POZIT2: MOV BL, [SI]
 CMP BL, '0'
 JE SM
 JMP DI0
SM: INC SI
 DEC AH
 JMP POZIT2
DI0: MOV BL, [DI]
 CMP BL, '0'
 JE SM1
 JMP SRAV1
SM1: INC DI
 DEC AL
 JMP DI0
SRAV1: CMP AH, AL
 JA ABOVE
 JB BELOW
 JMP EQUAL
ABOVE: LEA SI, SX
 MOV [SI], BYTE PTR 1
 JMP NEAR PTR END1
BELOW: LEA SI, SX
 MOV [SI], BYTE PTR -1
 JMP NEAR PTR END1
EQUAL: MOV CL, AL
 MOV CH, 0
FOR3: MOV AH, [SI]
 CMP AH, [DI]
 JA ABOVE
 JB BELOW
 INC SI
 INC DI
 LOOP FOR3
 JMP ABOVE
END1: POPA
 RET
COMPARE ENDP
 END BEGIN

1. Реферат на тему Huckleberry Finn Internal Conflict Essay Research Paper
2. Реферат на тему Knights Of The Middle Ages Essay Research
3. Реферат на тему Symbolism In Chaim Potok
4. Реферат Концепция информатизации г. Омска
5. Реферат на тему Управленческий учет предприятия
6. Курсовая Особенности проявления капризов и упрямств у детей дошкольного возраста
7. Контрольная_работа на тему Инвентаризация основных средств
8. Реферат на тему Attribution Essay Research Paper ATTRIBUTIONThe Waco incident
9. Биография Бирбили, Тина
10. Реферат на тему Capitalism 2