Vkhj

  • 31 марта 2014 г.
  • 595 Слова
Лабораторная работа №7
Цель работы: написать подпрограмму удаления фрагмента из массива. Базовый адрес массива 0F00, длина N=30h, длина фрагмента – M=10h. Адрес начала удаляемого фрагмента 0F10.Начальный адрес подпрограммы 0200.
Адрес | Значение | Команда | Комментарии |
0200 | 21 | LXI H, d16 | Загружаем последнюю часть фрагмента |
0201 | 1B | | |
0202 | 0F | | |
0203 | 11 | LXI D,D16 | Загружаем удаляемую часть |
0204 | 10 | | |
0205 | 0F | | |
0206 | 06 | MVI B, d8 | Кол-во удаляемых ячеек |
0207 | 0А | | |
0208 | 7E | MOV A,M | Перемещаем содержимое HL-пары ваккумулятор |
0209 | EB | XCHG | Меняем содержимое НL-и DE-пары |
020А | 77 | MOV M,A | Перемещаем содержимое аккумулятора в HL-пару |
020В | EB | XCHG | Меняем содержимое НL-и DE-пары |
020С |23 | INX H | Переходим в следующую ячейку памяти |
020D | 13 | INX D | Переходим в следующую ячейку памяти |
020E | 05 | DCR B | Уменьшаем на единицу кол-во удаляемых ячеек |
020F | C2 | JNZ |Если в регистре В не нуль, то отправляемся на адрес 0208 |
0210 | 08 | | |
0211 | 02 | | |
0212 | 76 | HLT | Стоп программа |
Вывод: в данной лабораторной работе я написала программу, спомощью которой можно удалить фрагмент из массива.
Подпрограмма 1 [0F00h - 0F30h] Подпрограмма 1 [0F00h - 0F30
0F00 56 MOV D, M 0F00 56 MOV D, M
0F01 67 MOV H, A 0F01 67 MOV H, A
0F02 87 ADDA 0F02 87 ADD A
0F03 F4 CP adr 0F03 F4 CP adr
0F04 6D MOV L, L 0F04 6D MOV L, L
0F05 7A MOV A, D 0F05 7A MOV A, D
0F06 4A MOV C, D 0F06 4A MOV C, D
0F07 3C INR A0F07 3C INR A
0F08 7C MOV A, H 0F08 7C MOV A, H
0F09 C3 JMP adr 0F09 C3 JMP adr
0F0A 74 MOV M, H 0F0A 74 MOV M, H
0F0B 3C INR A 0F0B 3C INR A
0F0C BC CMP H 0F0C BC CMPH
0F0D B8 CMP B 0F0D B8 CMP B
0F0E 9B SBB E 0F0E 9B SBB E
0F0F C3 JMP adr 0F0F C3 JMP adr
0F10 2C INR L 0F10 2C INR L
0F11 76 HLT 0F11 76 HLT
0F12 89...
tracking img