Advertisement
EvgeniiKraaaaaaaav

3.18 ASM(ASCII sequence in binary code) in the min cell size

May 14th, 2019
181
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.49 KB | None | 0 0
  1. //https://vk.com/evgenykravchenko0
  2.  
  3.                 ___                                        ___                   ___    
  4.                /  /\                  ___                 /  /\                 /  /\    
  5.               /  /:/_                /__/\               /  /:/_               /  /:/_  
  6.              /  /:/ /\               \  \:\             /  /:/ /\             /  /:/ /\  
  7.             /  /:/ /:/_               \  \:\           /  /:/_/::\           /  /:/ /:/_
  8.            /__/:/ /:/ /\          ___  \__\:\         /__/:/__\/\:\         /__/:/ /:/ /\
  9.            \  \:\/:/ /:/         /__/\ |  |:|         \  \:\ /~~/:/         \  \:\/:/ /:/
  10.             \  \::/ /:/          \  \:\|  |:|          \  \:\  /:/           \  \::/ /:/
  11.              \  \:\/:/            \  \:\__|:|           \  \:\/:/             \  \:\/:/  
  12.               \  \::/              \__\::::/             \  \::/               \  \::/  
  13.                \__\/                   ~~~~               \__\/                 \__\/    
  14.                             ___                                            
  15.                            /__/\                ___                 ___    
  16.                            \  \:\              /  /\               /  /\    
  17.                             \  \:\            /  /:/              /  /:/    
  18.                         _____\__\:\          /__/::\             /__/::\    
  19.                        /__/::::::::\         \__\/\:\__          \__\/\:\__
  20.                        \  \:\~~\~~\/            \  \:\/\            \  \:\/\
  21.                         \  \:\  ~~~              \__\::/             \__\::/
  22.                          \  \:\                  /__/:/              /__/:/
  23.                           \  \:\                 \__\/               \__\/  
  24.                            \__\/                      
  25.  
  26. #include "stdafx.h"
  27. #include <stdio.h>
  28. #include <cstdlib>
  29. #include <conio.h>
  30.  
  31. int main()
  32. {
  33.     char a;
  34.     char b;
  35.     char c;
  36.  
  37.     unsigned int first;
  38.     unsigned int second;
  39.     unsigned int third;
  40.  
  41.     int result_a = 0;
  42.     int result_b = 0;
  43.     int result_c = 0;
  44.  
  45.     printf_s("Enter 3 letters : ");
  46.        
  47.     a = _getche();
  48.     b = _getche();
  49.     c = _getche();
  50.  
  51.     first = a;
  52.     second = b;
  53.     third = c;
  54.  
  55.     printf_s(" \n \n In ASCII \n \n First letter = %d, second letter = %d, third letter = %d \n \n", a, b, c);
  56.  
  57.     _asm
  58.     {  
  59.            
  60.             mov esi, 1
  61.             mov eax, first
  62.             xor ebx, ebx
  63.         lap :
  64.             mov edx, 0
  65.            
  66.  
  67.             jmp start
  68.        
  69.         zero :
  70.             shl ebx, 1
  71.             jmp zero_cont
  72.  
  73.  
  74.         one :
  75.             shl ebx, 1
  76.             add ebx, 1
  77.        
  78.         zero_cont :
  79.             inc edx
  80.             cmp al, 0
  81.             jz escape
  82.             shl al, 1
  83.             jc one
  84.             jnc zero
  85.  
  86.         start :
  87.             shl al, 1
  88.             jc one
  89.             inc edx
  90.             jmp start
  91.    
  92.         escape :
  93.             mov ecx, 8
  94.             sub ecx, edx
  95.             cmp ecx, 0
  96.             jz result
  97.  
  98.         last_zeros :
  99.             shl ebx, 1
  100.         loop last_zeros
  101.  
  102.         result :
  103.  
  104.             cmp esi, 2
  105.             jz result_two
  106.             cmp esi, 3
  107.             jz result_third
  108.  
  109.             mov result_a, ebx
  110.             inc esi
  111.             mov eax, second
  112.             jmp lap
  113.  
  114.         result_two :
  115.  
  116.             mov result_b, ebx
  117.             inc esi
  118.             mov eax, third
  119.             jmp lap
  120.  
  121.         result_third :
  122.             mov result_c, ebx
  123.            
  124.                 xor edx,edx
  125.        
  126.                 test ebx, 0ffff0000h
  127.                 jnz four_byte
  128.  
  129.                 test bx, 0ff00h
  130.                 jnz two_byte
  131.  
  132.                 mov dl, bl
  133.                 jmp ended
  134.  
  135.         four_byte :
  136.                 mov edx, ebx
  137.                 jmp ended
  138.  
  139.         two_byte :
  140.                 mov dx, bx
  141.                 jmp ended
  142.  
  143.         ended :
  144.    
  145.     }
  146.  
  147.     printf_s(" 1. After  %d  ", result_a);
  148.     printf_s("\n 2. After %d  ", result_b);
  149.     printf_s("\n 3. After %d  ", result_c);
  150.  
  151.  
  152.     system("pause");
  153.     return 0;
  154. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement