Advertisement
Guest User

goralask

a guest
Jan 16th, 2019
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.81 KB | None | 0 0
  1.  
  2. #include "pch.h"
  3. #include <iostream>
  4.  
  5. using namespace std;
  6.  
  7. int main()
  8. {
  9.     //ZADANIE 1
  10.     unsigned char a= 0x12, b, wyjscie=0;
  11.     cout << "Zadanie 1" << endl;
  12.     __asm {
  13.         mov cl, 0xFF
  14.         mov ah, a
  15.         mov al, 0
  16.         ELSE1:
  17.         shl al, 0x01
  18.         mov bl, ah
  19.         and bl, 0x01
  20.         or al, bl
  21.         shr ah, 0x01
  22.         shr cl, 0x01
  23.         JNZ ELSE1
  24.         mov wyjscie, al
  25.     }
  26.     printf("%X", wyjscie);
  27.  
  28.  
  29.     cout <<endl << "Zadanie 2"<< endl;
  30.     //ZADANIE 2
  31.     a = 0x80;
  32.     wyjscie = 0;
  33.     __asm {
  34.         mov al, a
  35.         mov cl, 1
  36.         mov bl, al
  37.         add bl, 1
  38.         mov cl, bl
  39.         shr al, 1
  40.  
  41.         mov bl, al
  42.         add bl, 1
  43.         mov cl, bl
  44.         shr al, 1
  45.  
  46.         mov bl, al
  47.         add bl, 1
  48.         mov cl, bl
  49.         shr al, 1
  50.  
  51.         mov bl, al
  52.         add bl, 1
  53.         mov cl, bl
  54.         shr al, 1
  55.  
  56.         mov bl, al
  57.         add bl, 1
  58.         mov cl, bl
  59.         shr al, 1
  60.  
  61.         mov bl, al
  62.         add bl, 1
  63.         mov cl, bl
  64.         shr al, 1
  65.  
  66.         mov bl, al
  67.         add bl, 1
  68.         mov cl, bl
  69.         shr al, 1
  70.  
  71.         mov bl, al
  72.         add bl, 1
  73.         mov cl, bl
  74.         shr al, 1
  75.        
  76.         and cl, 1
  77.         mov wyjscie, cl
  78.     }
  79.     printf("%X", wyjscie);
  80.  
  81.  
  82.     cout <<endl<<"Zadanie 3"<< endl;
  83.     //ZADANIE 3
  84.     a = 0xFE;
  85.     wyjscie = 0;
  86.     __asm {
  87.         mov al, a
  88.         mov cl, al
  89.         mov dl, 8
  90.  
  91.         and cl, 1
  92.         sub dl, cl
  93.         shr al, 1
  94.         mov cl, al
  95.  
  96.         and cl, 1
  97.         sub dl, cl
  98.         shr al, 1
  99.         mov cl, al
  100.  
  101.         and cl, 1
  102.         sub dl, cl
  103.         shr al, 1
  104.         mov cl, al
  105.  
  106.         and cl, 1
  107.         sub dl, cl
  108.         shr al, 1
  109.         mov cl, al
  110.  
  111.         and cl, 1
  112.         sub dl, cl
  113.         shr al, 1
  114.         mov cl, al
  115.  
  116.         and cl, 1
  117.         sub dl, cl
  118.         shr al, 1
  119.         mov cl, al
  120.  
  121.         and cl, 1
  122.         sub dl, cl
  123.         shr al, 1
  124.         mov cl, al
  125.  
  126.         and cl, 1
  127.         sub dl, cl
  128.         shr al, 1
  129.         mov cl, al
  130.  
  131.         mov wyjscie, dl
  132.     }
  133.     printf("%X", wyjscie);
  134.  
  135.  
  136.     cout <<endl<<"Zadanie 4"<<endl;
  137.     a = 0xFF;
  138.     wyjscie = 1;
  139.     __asm {
  140.         mov al, a
  141.         add al, 0xCE
  142.         JNZ ELSE4
  143.             mov wyjscie, 0
  144.         ELSE4:
  145.     }
  146.     printf("%X", wyjscie);
  147.  
  148.  
  149.     cout <<endl<<"Zadanie 5"<< endl;
  150.     //ZADANIE 5
  151.     a = 0xC0;
  152.     wyjscie = 1;
  153.     __asm {
  154.         mov al, a
  155.         add al, 0x40
  156.         JC ELSE5
  157.         mov wyjscie, 0
  158.         ELSE5:
  159.     }
  160.     printf("%X", wyjscie);
  161.  
  162.  
  163.     cout << endl << "Zadanie 6" << endl;
  164.     //ZADANIE 6
  165.     a = 3;
  166.     unsigned short wy = 0;
  167.     __asm {
  168.         ///mov ax, 0
  169.         mov al, a
  170.         shl ax, 5
  171.         mov bx, 0
  172.         mov bl, a
  173.         shl bx, 2
  174.         sub ax, bx
  175.         shl bx, 1
  176.         sub ax, bx
  177.         mov wy, ax
  178.     }
  179.     printf("%d", wy);
  180.  
  181.  
  182.     cout << endl << "Zadanie 7" << endl;
  183.     //ZADANIE 7
  184.     a = 255;
  185.     b = 255;
  186.     wy = 0;
  187.     __asm {
  188.         mov bx, 0x00
  189.         mov al, a
  190.         mov cl, b
  191.         ELSE7:
  192.         shl bx, 0x01
  193.         test cl, 0x01
  194.         JZ ELSE71
  195.         add bx, ax
  196.         ELSE71:
  197.         shr cl, 0x01
  198.         JNZ ELSE7
  199.             mov wy, bx
  200.     }
  201.     printf("%d", wy);
  202.  
  203.  
  204.     cout << endl << "Zadanie 8" << endl;
  205.     unsigned short wea = 1000;
  206.     wy = 0;
  207.     __asm{
  208.         mov ax, wea
  209.         mov bx, wea
  210.         shr bx, 3
  211.         add ax, bx
  212.         mov wy, ax
  213.     }
  214.     printf("%d", wy);
  215.  
  216.  
  217.     cout << endl << "Zadanie 9" << endl;
  218.  
  219.     typedef union {
  220.         unsigned char BYTE;
  221.         struct {
  222.             unsigned char a : 2;
  223.             unsigned char b : 3;
  224.             unsigned char c : 3;
  225.         }bits;
  226.     }un_X;
  227.     un_X x;
  228.     x.BYTE= 3;
  229.     __asm {
  230.         mov al, x.BYTE
  231.         and al, 0x03
  232.         mov bl, al
  233.         shl al, 2
  234.         or bl, al
  235.         shl al, 3
  236.         or bl, al
  237.         mov x.BYTE, bl
  238.     }
  239.     printf("%x  \n", x.BYTE);
  240.     printf("%x %x %x", x.bits.a, x.bits.b, x.bits.c);
  241.  
  242.  
  243.     cout << endl << "Zadanie 10" << endl;
  244.     typedef union {
  245.         unsigned char BYTE;
  246.         struct {
  247.             unsigned char a : 1;
  248.             unsigned char b : 3;
  249.             unsigned char c : 4;
  250.         }bits;
  251.     }un_Y;
  252.     un_Y y;
  253.     y.bits.a = 0;
  254.     y.bits.b = 6;
  255.     __asm{
  256.         mov al, y.BYTE
  257.         mov bl, al
  258.         mov cl, 0        
  259.         and bl, 0x0E
  260.         and al, 0x01
  261.         JZ ELSE10
  262.         mov cl, bl
  263.         shl cl, 3
  264.         ELSE10:
  265.         or cl, al
  266.         or cl, bl
  267.             mov y.BYTE, cl
  268.     }
  269.     printf("%x  \n", y.BYTE);
  270.     printf("%x %x %x", y.bits.a, y.bits.b, y.bits.c);
  271.     cout << endl << "Zadanie 11" << endl;
  272.  
  273.     return 0;
  274. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement