Скачать:
Отчет по лабораторной работе №143
по дисциплине «Вычислительные машины, системы и сети»
1. ВЫЧИТАНИЕ МНОГОБАЙТНЫХ ЧИСЕЛ БЕЗ ЗНАКА
1.1. Анализ алгоритма вычитания многобайтных(N) чисел
143
1
2$MOD845 ; Использовать таблицу кодов МК ADuC845
---- 3CSEG ; Начало сегмента кодов
0000 4ORG 0000h ; 0000h-начальный адрес сегмента кодов
5
0000 782F6 MOV R0,#2Fh
0002 793F7 MOV R1,#3Fh
0004 7A048 MOV R2,#04h
0006 D2D49SETB 0D4h
0008 794F10MOV R1,#4Fh
000A C311 CLR C
000B C2D4 12 CLR 0D4h
000D E613 M1:MOV A,@R0
000E 9714 SUBB A,@R1
000F D2D415setb 0d4H
0011 F716MOV @R1,A
0012 1917 DEC R1
0013 C2D4 18CLR 0D4h
0015 1819 DEC R0
0016 1920 DEC R1
0017 DAF4 21DJNZ R2,M1
22
0019 0023 NOP
24
25END
VERSION 1.2h ASSEMBLY COMPLETE, 0 ERRORS FOUND
После 1-го цикла :
После 2- го цикла :
2. СЛОЖЕНИЕ ОДНОБАЙТНЫХ ЧИСЕЛ СО ЗНАКОМ
Сложение целых чисел с фиксированной запятой и со знаком в МКС проводится в соответствии с правилом: «Сумма дополнительных кодов чисел есть дополнительный код результата». Правильный результат будет получен, если однобайтные слагаемые А и В удовлетворяют условиям: │А│<128, │В│<128, │А+В│<128. Соблюдение этих условий позволяет получать пра-вильный результат в однобайтном формате при игнорировании переполне-ния.
Листинг программы:
1431PAGE 1
1
2 $MOD845; Использовать таблицу кодов МК ADuC845
---- 3 CSEG; Начало сегмента кодов
0000 4 ORG 0000h; 0000h-начальный адрес сегмента кодов
5
0000 782F 6 MOV R0,#2Fh
0002 793F 7MOV R1,#3Fh
0004 7A04 8 MOV R2,#04h
0006 D2D4 9 SETB 0D4h
0008 794F 10 MOV R1,#4Fh
000A D3 11 SETB C
000B C2D4 12 CLR 0D4h
13
000D E6 14 M4:MOV A,@R0
000E 30E705 15 JNB ACC.7,M1
0011 547F 16 anl A,#7Fh;
0013 F4 17 cpl A;
0014 2401 18 add A,#01h;
0016 F5F0 19M1: MOV B,A
0018 E7 20 MOV A,@R1
0019 30E705 21JNB ACC.7,M2
001C 547F 22 anl A,#7Fh;
001E F4 23 cpl A;
001F 2401 24add A,#01h;
0021 25F0 25M2: ADD A,B
0023 30E705 26JNB ACC.7,M5
0026 F4 27 cpl A;
0027 2401 28 add A,#01h;
0029 4480 29 orl A,#80h;
002B D2D4 30M5: setb 0d4H
002D F7 31 MOV @R1,A
32
002E 19 33 DEC R1
002F C2D4 34CLR 0D4h
0031 18 35 DEC R0
0032 19 36 DEC R1
0033 DAD8 37 DJNZ R2,M4
38
0035 00 39 NOP
40
41END
42
43
VERSION 1.2h ASSEMBLY COMPLETE, 0 ERRORS FOUND
После 1-го цикла:
После 2-го цикла:
После 3-го цикла:
2.2. Исследование поведения флагов OV и C
Таблица 1.Результаты сложения посредством программы AD1PS без коррекции по переполнению.
Структурная схема исходного текста программы ADS143.
ADS143 PAGE 1
1 ;
2 $MOD845; Использовать таблицу кодов МК ADuC845
---- 3CSEG ; Начало сегмента кодов
0000 4 ORG 0000h ; 0000h-начальный адрес сегмента кодов
5
0000 782F 6mov R0,#2Fh
0002 793F 7 mov R1,#3Fh
0004 75094F 8 MOV 09H, #4FH
0007 758150 9MOV SP,#50H
000A E6 10 MOV A, @R0
000B 30E703 11 JNB ACC.7,M1
000E 120060 12 CALL DPB
13
0011 F527 14 M1:MOV 27H, A
0013 E715 MOV A, @R1
0014 30E703 16 JNB ACC.7,M2
0017 120060 17 CALL DPB
18
001A F537 19 M2:MOV 37H, A
001C 352720 ADDC A,27H
001E 0021 NOP
001F 30D212 22 JNB OV,O0
0022 500A23 JNC O1_C0
0024 755E80 24 O1_C1:MOV 5EH,#80H
0027 F425 CPL A
0028 240126 ADD A,#01H
002A F55F27 MOV 5FH,A
002C 0028 PEND: NOP
002D 0029 NOP
002E 755E00 30 O1_C0:MOV 5EH,#00H
0031 F55F31 MOV 5FH, A
0033 0032 NOP
0034 30E70433 O0: JNB ACC.7,O0_70
0037 12006034 CALL DPB
003A 0035 NOP
003B D2D3 36O0_70: SETB RS0
003D F7 37 MOV @R1, A
003E C2D338 CLR RS0
39
006040 ORG 0060h
0060 F441 DPB: CPL A
0061 2401 42 ADD A,#01H
0063 448043 ORL A, #80H
0065 2244 RET
45 END
VERSION 1.2h ASSEMBLY COMPLETE, 0 ERRORS FOUND
Вывод: В ходе лабораторной работы мы изучили командыарифметической обработки, сложения и вычитания.