|
|
|
Проверьте, пожалуйста, на правильность две задачи по ассемблеру!
|
|||
|---|---|---|---|
|
#18+
1) Сформировать «бесконечную» последовательность в порту P1. 00000000 10000001 11000011 11100111 11111111 11100111 11000011 10000001 00000000 10000001 MOV A,#00h MOV R1,#81h MOV P1,A ACALL <…1...> - вызов микрокоманды по адресу MOV R1,#42h - наложение "маски" на предыдущее число ACALL <…1...> MOV R1,#24h ACALL <…1...> MOV R1,#18h ACALL <…1...> MOV R1,#E7h ACALL <…2...> MOV R1,#C3h ACALL <…2...> MOV R1,#81h ACALL <…2...> MOV R1,#00h ACALL <…2...> SJMP <…> - возвращение к заданному адресу для образования бесконечного цикла <…1…> ADD A,R1 - сложение чисел MOV P1,A - отправление значения в порт Р1 RET <…2…> ANL A,R1 MOV P1,A RET И вторая: Выполнить операцию «логического умножения со сборкой». Операция состоит в том, что из исходного двоичного числа N извлекаются цифры тех разрядов, в которых в другом из исходных чисел M (так называемом «извлекателе») содержатся единицы; выбранные цифры затем располагаются одна за другой в старших разрядах результата, а младшие разряды забиваются нулями. N, hex = B3 M, hex = 3A Код программы: 0000 78A3 MOV R0, #3A 0002 797B MOV R1, #B3 0004 7A00 MOV R2, #00 0006 7B08 MOV R3, #08 0008 E8 MOV A, R0 0009 30E00C JNB E0 (ACC.0), 0018 000C E9 MOV A, R1 000D 13 RRC A 000E F9 MOV R1, A 000F EA MOV A, R2 0010 13 RRC A 0011 FA MOV R2, A 0016 8003 SJMP 001B 0018 E9 MOV A, R1 0019 03 RR A 001A F9 MOV R1, A 001B E8 MOV A, R0 001C 03 RR A 001D F8 MOV R0, A 001E DBE9 DJNZ R3, 0009 0020 8A90 MOV P1, R2 ________________________________________ Буду очень признательна, если подскажете, где недочеты, ошибки, неточности... очень надеюсь на вашу помощь! Заранее благодарю! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.05.2013, 14:02 |
|
||
|
Проверьте, пожалуйста, на правильность две задачи по ассемблеру!
|
|||
|---|---|---|---|
|
#18+
0000 MOV A,#00h 0002 MOV R1,#81h 0004 MOV P1,A 0006 ACALL 001E - вызов микрокоманды по адресу 0007 MOV R1,#42h - наложение "маски" на предыдущее число 0009 ACALL 001E 000A MOV R1,#24h 000C ACALL 001E 000D MOV R1,#18h 000F ACALL 001E 0010 MOV R1,#E7h 0012 ACALL 0023 0013 MOV R1,#C3h 0015 ACALL 0023 0016 MOV R1,#81h 0018 ACALL 0023 0019 MOV R1,#00h 001B ACALL 0023 001C SJMP 0002 - возвращение к заданному адресу для образования бесконечного цикла 001E ADD A,R1 - сложение чисел 0020 MOV P1,A - отправление значения в порт Р1 0022 RET 0023 ANL A,R1 0025 MOV P1,A 0027 RET Вот подкорректировала первое задание... чтоб понятнее было... а то очень криво написала. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.05.2013, 14:42 |
|
||
|
|

start [/forum/topic.php?fid=16&fpage=57&tid=1341827]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
202ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
33ms |
get tp. blocked users: |
2ms |
| others: | 234ms |
| total: | 516ms |

| 0 / 0 |
