Вывод числа на экран в том виде, в котором оно хранится в памяти - Assembler

Узнай цену своей работы

Формулировка задачи:

Вывод числа на экран при помощи флага СF в том виде, в котором оно хранится в памяти. В моём алгоритме: сдвигаем на 1 бит влево, смотрим на состояние флага, выводим на экран 1 или 0. Выводит 32 нуля. В чем ошибка? Простейший код, а мучаюсь уже давно.
Листинг программы
  1. #include <stdlib.h>
  2. #include <stdio.h>
  3. int i=0, z;
  4. int main() {
  5. asm(
  6. "movl $15, %eax\n");
  7. for(i=0; i<32; i++)
  8. {
  9. asm(
  10. "shl $1,%eax \n"
  11. "jc one \n"
  12. "jnc zero \n"
  13. "zero:\n"
  14. "movl $0, z\n"
  15. "jmp end\n"
  16. "one:\n"
  17. "movl $1, z\n"
  18. "jmp end\n"
  19. "end:\n"
  20. );
  21. printf("%i",z );
  22. }
  23. printf("\n");
  24. return 0;
  25. }

Решение задачи: «Вывод числа на экран в том виде, в котором оно хранится в памяти»

textual
Листинг программы
  1.  
  2. #include <stdlib.h>
  3. #include <stdio.h>
  4.  
  5. int i=0, z;
  6. int main() {
  7.  
  8.  asm(
  9.   "movl $15, %ebx\n");
  10.  
  11.  for(i=0; i<32; i++)
  12.  {
  13.  asm(
  14.   "shl $1,%ebx \n"
  15.   "setc z \n"
  16.  );
  17.   printf("%i",z );
  18.  }
  19.  
  20. printf("\n");
  21. return 0;
  22. }

Объяснение кода листинга программы

  1. Программа начинается с подключения двух заголовочных файлов: stdlib.h и printf.h
  2. Затем определяются две переменные: i=0, z;
  3. Далее идет цикл for, который выполняется 32 раза
  4. Внутри цикла происходит два действия:
    • первое действие: сдвиг числа на 1 влево (shl $1,%ebx)
    • второе действие: проверка результата сдвига (setc z)
  5. Результат выводится на экран с помощью функции printf
  6. После завершения цикла выводится символ новой строки с помощью функции printf
  7. В конце программы возвращается 0, что означает успешное выполнение программы

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 3.917 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы