Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Asm для начинающих > написание програмы для КР580ВМ80


Автор: Aid78 11.4.2008, 15:08
Здраствуйте - сразу скажу я полный неуч. Но всеже хотелось бы разьяснения или хотябы просто подсказки где искать ответ. Суть проблемы в следующем, мне нужно написать програму умножения для микропроцесора КР580Вм80 но я грубо говоря не совсем разбираюсь в его компандах.
так например команды переходов (JZ, JNZ) я щитал что правильно будет запись скажем JNZ "имя регистра значение которого не равно нулю","место куда переходить", как я понимаю здесь все не так? команды сдвига (RRC) как я понимаю сдвигая акумулятор со значением скажем 10001001 мы получим 11000100(возможн не так суть не в этом) а сдвигаемое значение ( в данном случае 1) занесется в С, так ли это? если нет прошу обяснения

Автор: Severyanin 14.4.2008, 06:52
Цитата

JNZ "имя регистра значение которого не равно нулю","место куда переходить"

нет, все не так. jnz переходит на указанный тобой адрес только в том случае, если арезультат предыдущей операции не равен 0, то есть в регистре флагов не установлен флаг нуля. JZ работает в обратном случае.
Цитата

сдвигаемое значение ( в данном случае 1) занесется в С, так ли это

 Да, если сдвигаешь вправо, то в С занесется самый старший разряд даоичного числа

Добавлено через 2 минуты и 46 секунд
например, ты сделал следующее: cmp A,A; тогда сработает jz, а если cmp A,B, и содержимое регистра A не равно содержимому регистра В, то нет. тогда сработает jnz. А вообще, такие фокусы описаны в любой книге по Ассемблеру. Советую почитать Абеля

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)