| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > 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 переходит на указанный тобой адрес только в том случае, если арезультат предыдущей операции не равен 0, то есть в регистре флагов не установлен флаг нуля. JZ работает в обратном случае.
Да, если сдвигаешь вправо, то в С занесется самый старший разряд даоичного числа Добавлено через 2 минуты и 46 секунд например, ты сделал следующее: cmp A,A; тогда сработает jz, а если cmp A,B, и содержимое регистра A не равно содержимому регистра В, то нет. тогда сработает jnz. А вообще, такие фокусы описаны в любой книге по Ассемблеру. Советую почитать Абеля |