Расчётно-пояснительная записка к курсовой работе по ОМПТ — страница 2

  • Просмотров 2150
  • Скачиваний 178
  • Размер файла 32
    Кб

порт3 Xn = порт4 DXn Þ ОЗУ запись DXn в ОЗУ кодирование отрицательных чисел в дополнительном коде (DXn – 8+1бит) Программа в мнемокодах адрес Мнемокод комментарий Примечание 8051 SUB A A = 0 8052 LXI D,518A 518Ah Þ DE Занесение 518Ah 8055 MVI H,01 01h Þ H Счётчик цикла 8057 MOV A,B B Þ A Пересылка 8058 OUT FC A Þ (FC) Вывод в порт 8059 IN FD A Þ (FD) Ввод из порта 805A STAX D A Þ (Loc.(DE)) По адресу (DE) 805B INR H H = H + 1 805C MOV A,H H Þ A Пересылка 805D SUI 07 A = A – 07h 805F INZ 5780 Если A ¹ 0 то (8057h)

Условный переход по флагу нуля 8062 MVI H,01 01h Þ H Счётчик цикла 8064 LXI D,518A 8A51h Þ DE Начало массива данных X 8067 LXI B,588A 8A58h Þ BC Начало массива данных DX 806A LDAX D (Loc.(DE)) Þ A По адресу (DE) 806B MOV L,A A Þ L Пересылка 806C MOV A,H H Þ A Выбор логического сигнала по счётчику циклов 806D OUT FC A Þ (FC) Выбор логического сигнала 806E IN FD A Þ (FD) Чтение преобразованного логического сигнала 806F SUB L A = A – L Нахождение DX 8070 STAX B A Þ (Loc.(BC)) По адресу (BC) 8071 JNC 7C80 если C = 0

то (807Ch) Условный переход по флагу переноса 8072 CMA Кодирование DX в дополнительный код 8073 INRA A = A + 1 8074 STAX B A Þ (Loc.(BC)) По адресу (BC) 8075 DCR C C = C – 1 8076 SUB A A = 0 8077 INR A A = A + 1 Занесение в аккумулятор 1 8078 STAX B A Þ (Loc.(BC)) По адресу (BC) 8079 INR C C = C + 1 Выставление следующего адреса 807A INR C C = C + 1 807B INR E E = E + 1 807C INR H H = H + 1 Определение следующего DX 807D MOV A,H H Þ A 807E SUI 07 A = A – 07h 8080 INZ 6A80 если A ¹ 0 то (806Ah) Условный переход по флагу нуля Кодирование DX2 в

дополнительном коде 8083 LXI D,5A8A 8A5Ah Þ DE Занесение DX2 в регистр DE 8086 LDAX D (Loc.(DE)) Þ A По адресу (DE) 8087 CMA 8088 INR A A = A + 1 8089 STAX D A Þ (Loc.(DE)) По адресу (DE) 808A DCR E E = E – 1 Выбор знакового бита 808B SUB A A = 0 808C RAR флаг C = 0 Обнуление флага C 808F LDAX D (Loc.(DE)) Þ A По адресу (DE) 8090 RAR ; С Þ A7; A0 Þ C C – флаг переноса; сдвиг вправо 8093 JNC 9880 если C = 0 то (8098h) Условный переход по флагу переноса 8096 SUB A A = 0 Замена на противоположный знак 8097 STAX D A Þ (Loc.(DE)) 8098 MVI A,01 01h Þ A

809A STAX D A Þ (Loc.(DE)) Кодирование DX4 в дополнительном коде 809B LXI D,5E8A 8A5Eh Þ DE Занесение DX4 в регистр DE 809E LDAX D (Loc.(DE)) Þ A По адресу (DE) 809F CMA 80A0 INR A A = A + 1 80A1 STAX D A Þ (Loc.(DE)) По адресу (DE) 80A2 DCR E E = E – 1 Выбор знакового бита 80A3 SUB A A = 0 80A4 RAR Флаг C = 0 Обнуление флага C 80A7 LDAX D (Loc.(DE)) Þ A По адресу (DE) 80A8 RAR ; C Þ A7; A0 Þ C C – флаг переноса; сдвиг вправо 80AB JNC AE80 Если C = 0 то (80AEh) Условный переход по флагу переноса 80AV SUB A A = 0 Замена на противоположный знак

80AD STAX D A Þ (Loc.(DE)) 80AE MVI A,01 01h Þ A 80B0 STAX D A Þ (Loc.(DE)) Кодирование DX5 в дополнительном коде 80B1 LXI D,608A 8A60h Þ DE Занесение DX4 в регистр DE 80B4 LDAX D (Loc.(DE)) Þ A По адресу (DE) 80B5 CMA 80B6 INR A A = A + 1 80B7 STAX D A Þ (Loc.(DE)) По адресу (DE) 80B8 DCR E E = E – 1 Выбор знакового бита 80B9 SUB A A = 0 80BA RAR Флаг C = 0 Обнуление флага C 80BD LDAX D (Loc.(DE)) Þ A По адресу (DE) 80BE RAR ; C Þ A7; A0 Þ C C – флаг переноса; сдвиг вправо 80C1 JNC C580 Если C = 0 то (80C5h) Условный переход по флагу переноса 80C4 SUB A A = 0