реклама на сайте
подробности

 
 
> Старая связка ВЕ31 и РФ2, Непонятное исполнение кода
RomeoB
сообщение Jun 6 2011, 10:09
Сообщение #1





Группа: Участник
Сообщений: 10
Регистрация: 16-06-09
Из: Новосибирск
Пользователь №: 50 319



День добрый.
Не пинайте за РФ2...
Проблема в следующем. При выполнение простого кода на асм (сам код прикреплён файлом) в классической 80с31 возникает непонятная ситуация: после появления отрицательного импульса на Р3.3 и его пропадания, появляется отрицательный импульс на Р1.2, а после него на Р1.3.
Но это согласно программы, а на самом деле импульс на Р3.3 повторяется ещё два раза внутри импульса на Р1.2 и только потом появляется импульс на Р1.3 (как и должен появится согласно программы)

Р3.3 ~~~~~~~~|_|~~~~~~~~|_|~~~~~~~~|_|~~~~~~~~~~~~~~~~

P1.2 ~~~~~~~~~~~~~~|________________________|~~~~~~~~~~~~

P2.2 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|______|~~~~~~~

Как понимать такое поведение программы? Может это связано с необходимостью выравнивания кода на странице (256)?
Прикрепленные файлы
Прикрепленный файл  Ltest_7_FORUM.txt ( 7.37 килобайт ) Кол-во скачиваний: 49
 
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
RomeoB
сообщение Jun 7 2011, 05:23
Сообщение #2





Группа: Участник
Сообщений: 10
Регистрация: 16-06-09
Из: Новосибирск
Пользователь №: 50 319



1. У меня простой ассемблер ...
2. Это не рабочая программа, а тестовая. В рабочих я так не делаю.
3. Над режимом "чтения-модификация-запись" подумаю дополнительно, но как режим работы этих команд может повлиять на суть если на выводе сидит только щуп осциллографа!?
4. Не понял, где пустые участки? После 0FCh есть небольшой кусочек кода и безусловный прыжок на старт... После ORG 0200h, программы нет.
Go to the top of the page
 
+Quote Post
V_G
сообщение Jun 8 2011, 04:19
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 818
Регистрация: 15-10-09
Из: Владивосток
Пользователь №: 52 955



Цитата(RomeoB @ Jun 7 2011, 16:23) *
1. У меня простой ассемблер ...

И у меня простой ассемблер, TASM 1987 года. Почитайте доку к своему

Цитата
4. Не понял, где пустые участки? После 0FCh есть небольшой кусочек кода и безусловный прыжок на старт... После ORG 0200h, программы нет.

1. Участок, что вы заполнили ff-ами - пустой. Перед ним не стоит никаких jmp
2. Перед org 0FCh тоже нет никакого jmp, а там вполне может оказаться пустой участок (не компилировал программу, не знаю)
3. У вас метка start находится по адресу 0, а вся область векторов прерываний заполнена nop-ами, что тоже сильно неправильно

4. Режим "чтение-модификация-запись" сильно чувствителен к аппаратуре. Очень может быть, что и к щупу осциллографа. А к прямо подклюенной базе транзистора (например) - особенно. Можно заставить переключаться транзистор командами, не использующими этот режим, а при setb, clr будут сплошные глюки

Сообщение отредактировал V_G - Jun 8 2011, 04:22
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 14:05
Рейтинг@Mail.ru


Страница сгенерированна за 0.04125 секунд с 7
ELECTRONIX ©2004-2016