
- •2.2. Разработка программы adn1
- •2.3. Обоснование выбора команд, реализующих основное действие
- •2.6 Разработка программы adn2
- •0000 4 Org 0000h ; 0000h-начальный адрес сегмента кодов
- •Version 1.2h assembly complete, 0 errors found
- •2.9 Разработка структуры программы adp2. Выделение из программы adp2 основной программы и подпрограммы
- •0000 4 Org 0000h ; 0000h-начальный адрес сегмента кодов
- •0032 37 22 Addc a, @r1
- •Version 1.2h assembly complete, 0 errors found
- •0000 4 Org 0000h ; 0000h-начальный адрес сегмента кодов
- •0032 37 22 Addc a, @r1
- •Version 1.2h assembly complete, 0 errors found
0000 4 Org 0000h ; 0000h-начальный адрес сегмента кодов
5
6
0000 782F 7 mov R0,#2Fh
0002 793F 8 mov R1,#3Fh
0004 7A04 9 mov R2,#04h
0006 75115F 10 MOV 11H, #5FH
0009 120030 11 CALL AD2
000C 00 12 NOP
000D 784F 13 mov R0,#4Fh
000F 795F 14 mov R1,#5Fh
0011 7A04 15 mov R2,#04h
0013 75116F 16 MOV 11H, #6FH
0016 120030 17 CALL AD2
0019 00 18 nop
0030 19 org 0030h
0030 C3 20 AD2: clr C
0031 E6 21 M2: MOV A, @R0
0032 37 22 Addc a, @r1
0033 D2D4 23 SETB RS1
0035 F7 24 MOV @R1, A
0036 19 25 DEC R1
0037 C2D4 26 CLR RS1
0039 18 27 DEC R0
003A 19 28 DEC R1
003B DAF4 29 DJNZ R2, M2
003D 22 30 RET
31 END
Version 1.2h assembly complete, 0 errors found
ADP2 PAGE 2
AD2. . . . . . . . . . . . . . . C ADDR 0030H
M2 . . . . . . . . . . . . . . . C ADDR 0031H
RS1. . . . . . . . . . . . . . . B ADDR 00D4H PREDEFINED
Результат работы программы ADP2:
Данные до начала работы:
Результат работы программы после первого цикла:
Результат работы программы после второго цикла:
Результат работы программы после третьего цикла:
Результат работы программы после четвертого цикла:
2.10. Разработка программы ADР22 с двукратным вызовом подпрограммы AD2 Расположение исходных данных промежуточного и окончательного результатов работы программы ADP2:
|
Ст. |
Адреса байт |
Мл. |
||
1-е слагаемое |
20h |
… |
20h |
2Eh |
2Fh |
2-е слагаемое |
30h |
… |
30h |
3Eh |
3Fh |
3-е слагаемое |
40h |
… |
40h |
4Eh |
4Fh |
Сумма 1+2 |
50h |
… |
50h |
5Eh |
5Fh |
Сумма 1+2+3 |
60h |
… |
60h |
6Eh |
6Fh |
Численный пример вычисления суммы трех трехбайтных чисел:
|
Ст. |
Адреса байт |
Мл. |
|||
Мл.символ адреса |
0h |
Ch |
Dh |
Eh |
Fh |
|
1-е слагаемое |
20h |
00 |
B9 |
72 |
86 |
|
2-е слагаемое |
30h |
00 |
82 |
D1 |
BC |
|
3-е слагаемое |
40h |
00 |
BB |
E1 |
92 |
|
АС-полуперенос |
|
|
0 |
0 |
1 |
|
С-перенос |
|
1 |
1 |
1 |
0 |
|
Сумма 1+2 |
50h |
01 |
3C |
44 |
42 |
|
Р-паритет |
|
1 |
0 |
0 |
0 |
|
АС-полуперенос |
|
0 |
1 |
0 |
0 |
|
С- перенос |
|
0 |
1 |
0 |
0 |
|
Сумма 1+2+3 |
|
01 |
F8 |
25 |
D4 |
|
Р-паритет |
|
1 |
1 |
1 |
0 |
ADP22 PAGE 1
1 ;
2 $MOD845 ; Использовать таблицу кодов МК ADuC845
---- 3 CSEG ; Начало сегмента кодов