1. Assembler / Говнокод #15415

    +145

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    global _start
    
    section .text
    
    _start:
    
    	mov	eax, 0b10010100101100110111110110111110
    	;  эти битики будут выведены на печать
    	
    	mov	ecx, 0b00011000000110000001100000011000
    	; Четыре недозаполненных ascii кодов символов '0' или '1', в который из флага переноса заталкивается битик 0 или 1
    
    	%rep 8
    	mov	ebx, ecx
    	%rep    3
    		shr	eax, 1 ; Захавываем битик в флаг переноса
    		rcl	ebx, 1 ; Запихиваем из флага переноса в недозаполненные ascii коды
    		rol	ebx, 7 ; Проматываем на следующий кусок
    	%endrep
    	shr	eax, 1
    	rcl	ebx, 1 ; На последней стадии все то же самое, только проматывать уже не надо
    
    	push ebx ; Теперь все битики всунуты, пихнем содержимое регистра в стек
    	%endrep
    
    
        
    	mov	eax, 04h ; write()
    	mov	ebx, 01h ; stdout
    	mov	ecx, esp ; распечатаем из стека
    	mov	edx, 32  ; 32 символа
    	int	80h
    	
    	mov	eax, 01h ; exit()
    	xor	ebx, ebx ; errno
    	int	80h

    NASM Linux x86
    Суть - вывести содержимое регистра в двоичной системе счисления
    Можно было вместо этой мути использовать CMOVC ( Move if carry (CF=1) ) или еще что-нибудь такое придумать, есть же еще BT, BTS, глаза разбегаются
    ...вообще хрен его знает, какой-то упоротый этот x86 ассемблер, надо бы AVR осваивать, там регистров побольше

    Запостил: j123123, 10 Марта 2014

    Комментарии (6) RSS

    • показать все, что скрытоХУЙ
      ХУЙ
      ХУЙ
      ХУЙ
      ХУЙ
      ХУЙ
      ХУЙ
      ХУЙ
      ХУЙ
      ХУЙ
      ХУЙ
      ХУЙ
      ХУЙ
      ХУЙ
      ХУЙ
      ХУЙ
      ХУЙ
      ХУЙ
      ХУЙ
      ХУЙ
      Ответить
    • > там регистров побольше
      Тебе в x64 не хватает регистров?

      "Маловато будет! Маловато!" (q)
      Ответить
      • аккумулятор все равно один!
        Ответить
        • Но он же далеко не во всех инструкциях нужен.
          Ответить
        • Пора прекратить аккумулировать, время разбрасывать камни.

          Ну, серьёзно. Мне всегда казалось, что это - тяжёлое наследие, эм, 4004, кажется?
          Ответить
    • Екатерина Дмитриевна поспешила навстречу мужу.
      Ответить

    Добавить комментарий