|
Главная -> Появление первого микропроцессора 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 [93] 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 F8BB CnsriFA FSEE Crii7FB FSCl CD79FA F8C4 3fi F8C5 CD96FA F8C3 ?E F8C9 CnOSFB F8CC CBBFF8 F8CF DADBF8 F8D2 7B F8B3 EiOF F8B5 C2CiF8 Г8В8 C3BBF8 F8DB CD8DFA F8IIE C9 ? ВЫВОД СОДЕРЖИМОГО ПАМЯТИ НА КОНСОЛЬ 11.икд5! CALL КОИС i ВЫВОД ВК.ПС CALL BUBHL ; ВЫВОД НА КОНСОЛЬ <HrL> S ВИБОЯ НА КОНСОЛЬ СОДЕРЖИМОГО ЯЧЕЙКИ ПАМЯТИ ИИКЛб! CALL ВВ CALL CALL ВЫВС1 * 1 вывл АуН ВЫВА ВЫВОД ":" ВЫВОД ПРОБЕЛА ; вывод <А) ; ПРОВЕРКА НА ОКОНЧАНИЕ ВИВОДА ОБЛАСТИ ПАМЯТИ CALL ИНКНВ JC ПЕР2 ; ЕСЛИ ВЫВОД ОКОНЧЕН f ПРОВЕРКА НА ОКОНЧАНИЕ ВЫВОДА СТРОКИ мои A,L ПЕР2! CALL OFH ЦИКЛб ЦИКЛЗ KOHC ЕСЛИ ВЫВОД СТРОКИ НЕ ОКОНЧЕН НА ВЫВОД НОВОЙ СТРОКИ ВЫВОД BKfHC ИНКНВ! t ПОДПРОГРАННА СРАВНЕНИЯ РЕГИСТРОВЫХ ПАР <H,L> И <Б»Е>. 5 ВЫХОДНЫЕ ПАРАНЕТРЫ:ЕСЛИ <H,L)=0. ТО <CY)=lf <Z>=1; ЕСЛИ ; (H,L) = <DjE),TO <CY)=0,<Z)=i;ECЛИ (h.DXDvE) jTO <CY>=1, ; <Z)=0; ЕСЛИ <H,L>((B,E),TO (CY)=0,(Z)=0. .;Kxx«Kx«kx»«);k«xK«x«k««k«««««K»x««x«KXKxx*««x«X)HfXKXXxx« ! ЕСЛИ <H,L) <ВуЕ>
Вначале с помощью программы ВВ2Б производится прием двух параметров: адресов нижней и верхней границ отображаемой области памяти. Дальнейшая работа программы организована в виде двух вложенных итеративных циклов. Вывод одной строки обеспечивает внутренний цикл, на каждой итерации которого с помощью соответствующих подпрограмм выводятся разделители и содержимое очередного байта. Завершение работы внутреннего цикла происходит тогда, когда содержимое младшего полубайта адреса текущей выводимой ячейки памяти становится равным нулю. Во внешнем цикле вьшолняются переход на новую строку и вывод текущего значения адреса отображаемого байта. Выход из внешнего цикла осуществляется в том случае, когда значение текущего адреса достигнет верхней границы отображаемой области памяти. Подпрограмма ИНКНО выполняет операции, необходимые для ведения адресных указателей. В этой подпрограмме содержимое регистровой пары (Н, L) ин-крементируется и сравнивается с содержимым регистровой пары (D, Е) и нулевым значением. В результате сравнения вырабатываются соответствующие значения выходных параметров. 6.6.4. ДИРЕКТИВА ЗАПОЛНЕНИЯ ОБЛАСТИ ПАМЯТИ Директива F заполняет ячейки памяти, адреса нижней и верхней границы которой задаются первым и вторым параметрами директивы, константой, значение которой указывается в третьем параметре: КИГ: ; ПОЛПРОГРЙНПА ОБРАСОТКИ ДИРЕКТИВЫ Г. ;««кк»1(«хкх«хх«кх«х»>1ХМ);к««кк«««кх«хк«кккх««хх«хх»»х»х«« ! ВВОД С КОНСОЛИ ПАРАМЕТРОВ ДИРЕКТИВЫ
Вначале программа принимает три параметра, а затем с помощью итеративного цикла организуется заполнение памяти. Благодаря использованию подпрограммы ИНКНО тело цикла содержит всего три команды. 6.6.5. ДИРЕКТИВА ПЕРЕМЕЩЕНИЯ СОДЕРЖИМОГО ПАМЯТИ ОБЛАСТИ Директива М обеспечивает перемещение содержимого области памяти, границы которой определяются первым и вторым параметрами, в другую область памяти, начиная с адреса, задаваемого третьим параметром: ККМ: ; ПОППРОГРАНМА ОБРАБОТКИ ДИРЕКТИВЫ li. i ввод С КОНСОЛИ IlAPAhETPOB ДИРЕКТИВЫ
Структура программы аналогична структуре предыдущей программы. В теле цикла содержатся команды, осуществляющие пересылку текущего байта и модификацию области памяти приемника. Модификация области памяти источника и проверка на достижение им верхней границы выполняются посредством обращения к программе ИНКНО. 6.6.6. ДИРЕКТИВА МОДИФИКАЦИИ СОДЕРЖИМОГО ОБЛАСТИ ПАМЯТИ Директива S выполняется в диалоговом режиме и совмещает функции отображения и модификации содержимого области памяти. После ввода единственного параметра, который является адресом начала области памяти, на консоль выдаются содержимое первой ячейки этой области и символ «-». В ответ пользователь может ввести число, последние две цифры которого будут записаны в эту ячейку. Ввод числа должен заканчиваться вводом терминатора. Если запись в данную ячейку не требуется, необходимо сразу после вывода символа «-» ввести терминатор. В обоих случаях после ввода терминатора на консоль выводятся содержимое следующего байта и символ «-», затем описанные действия пользователь может повторить. Для прекращения работы директивы S необходимо в качестве терминатора использовать символ ВК. Программа, выполняющая директиву, имеет следующий вид: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 [93] 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 0.0122 |
|