ФЭА / АИТ / ОТЧЕТ по лабораторным работам по дисциплине: «Вычислительные машины, комплексы и сети»
(автор - student, добавлено - 8-01-2014, 21:37)
ОТЧЕТ по лабораторным работам по дисциплине: «Вычислительные машины, комплексы и сети»
Задача №1 Взять число из массива расположенного по адресу, номер которой находится в регистровой паре Н-L. Определить чётное число или нет. Сформировать два массива: чётных и нечетных чисел. Размер массива 240.
LXI H,0100H ;Задаем начальный адрес исходного массива LXI B,0200H ;Задаем начальный адрес массива для нёчетных чисел LXI D,0300H ;Задаем начальный адрес массива для чётных чисел LXI SP,0500H;Указываем ячейку памяти, где будет находиться стек M4:MOV A,M ;Загружаем в аккумулятор число из исходного массива ANI 01H ;Проверяем число на чётность JNZ M1 ;Если число нечётное помещаем его в соответствующий массив JZ M2 ;Если число чётное помещаем его в соответствующий массив M1:MOV A,M ;Загружаем в аккумулятор найденное нечётное число PUSH H ;Временно помещаем содержимое регистровой пары H-L в стек MOV H,B ;Переходим к массиву из нечётных чисел MOV L,C ; MOV M,A ;Записываем число в массив для нечётных чисел POP H ;Восстанавливаем содержимое регистровой пары H-L INX B ;Готовим ячейку памяти для следующего нечётного числа JMP M3 ;Переходим к следующему элементу исходного массива M2:MOV A,M ;Загружаем в аккумулятор найденное чётное число из массива PUSH H ;Временно помещаем содержимое регистровой пары H-L в стек XCHG ;Переходим к массиву для чётных чисел MOV M,A ;Записываем число в массив для чётных чисел POP H ;Восстанавливаем содержимое регистровой пары H-L INX D ;Готовим ячейку памяти для следующего чётного числа JMP M3 ;Переходим на метку перехода к следующему элементу массива M3:INX H ;Переходим к следующему элементу исходного массива MVI A,F0H ;Проверяем, не проверены ли все элементы исходного массива SUB L ; JNZ M4 ;Если нет, то повторяем цикл HLT ;Если элементы массива исчерпаны, заканчиваем программу
Задача №2 Образовать из однобайтных чисел, расположенных с адресов в H-L тетрады и поместить их в два массива.
Задача №3 Выполнить упорядочение массива данных содержащего 240 байт по убыванию.
MVI B, F0H ;Задаём размер массива M3:MVI D, F0H ;Задаём размер массива LXI H, 0150H;Задаём адрес первого элемента массива M1:DCR D ;Повторяем цикл 240 раз JZ M4 ; MOV A,M ;Помещаем элемент массива в аккумулятор INX H ;Переходим к следующему элементу массива SUB M ;Сравниваем его с предыдущим элементом JP M1 ;Если предыдущий элемент больше следующего не выполняем ;никаких операций и переходим к следующим элементам DCX H ;Иначе возвращаемся к предыдущему элементу массива MOV A,M ;Помещаем его в аккумулятор INX H ;Переходим к следующему элементу MOV C,M ;Помещаем его в регистр С MOV M,A ;Помещаем в его ячейку предыдущий элемент массива DCX H ;Возвращаемся к предыдущей ячейке MOV M,C ;Помещаем в неё содержимое регистра С INX H ;Переходим к следующим элементам массива JMP M1 ;Повторяем цикл с перемещением элементов 240 раз M4:DCR B ; JZ M2 ; JMP M3 ;Выполняем перемещение элементов массива 240 раз M2:HLT ;
Задача №4 Сдвинуть массив данных размером 240 элементов, расположенного с адресов 0100 на два байта в сторону меньшего адреса, а на освободившееся место поставить число равное количеству единиц в перенесённом массиве
LXI H,0100H;Задаём начальный адрес массива MVI B,F0H ;Задаём размер массива M2:MOV A,M ;Помещаем элемент массива в аккумулятор MVI C,09H ;Считаем количество единиц в массиве M1:RLC ; DCR C ; JZ M3 ; JNC M1 ; INX D ; JNZ M1 ; M3:DCX H ;Перемещаем элемент массива на две ячейки DCX H ; RRC ; MOV M,A ; INX H ; INX H ; INX H ; DCR B ;Повторяем цикл 240 раз JNZ M2 ; MOV M,D ;Помещаем на освободившееся место число равное кол-ву DCX H ;единиц в массиве MOV M,E ; HLT ;
Задача №5
Произвести обмен содержимыми блоков памяти расположенных с адресов 0100 и 0200, при этом проинвертировать массивы
LXI H,0100H ;Задаём начальный адрес первого массива LXI D,0200H ;Задаём начальный адрес второго массива MVI B,F0H ;Задаём размер массива M1:MOV A,M ;Помещаем элемент первого массива в аккумулятор CMA ;Инвертируем этот элемент XCHG ;Переходим на второй массив MOV C,M ;Помещаем элемент второго массива в регистр С MOV M,A ;Помещаем инвертированный элемент первого массива во ;второй массив MOV A,C ;Помещаем элемент второго массива в аккумулятор CMA ;Инвертируем этот элемент XCHG ;Возвращаемся к первому массиву MOV M,A ;Помещаем туда проинвертированный элемент второго ;массива INX D ;Переходим ко следующим элементам массивов INX H ; DCR B ;Повторяем цикл 240 раз JNZ M1 ; HLT Похожие статьи:
|
|