Advertisement
KrimsN

Untitled

Oct 14th, 2018
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.78 KB | None | 0 0
  1. int main() {
  2.  volatile uint32_t A = 0x11223344; // начальная инициализация
  3.  volatile uint16_t B = 0x5566;
  4.  
  5.  // ассемблерная вставка
  6.  asm volatile (
  7.  "mov al, byte ptr[rbp-0x5];" // копируем в al 0x55
  8.  "xchg al, byte ptr[rbp-0x3];" // меняем местами 0x33 и 0x55
  9.  "xchg al, byte ptr[rbp-0x4];" // меняем местами 0x44 и 0x33
  10.  "xchg al, byte ptr[rbp-0x1];" // меняем местами 0x44 и 0x11
  11.  "xchg al, byte ptr[rbp-0x6];" // меняем местами 0x11 и 0x66
  12.  "mov byte ptr[rbp-0x5], al;" // записываем в начало B значение 0x66
  13.  );
  14.  
  15.  // вывод
  16.  std::cout << std::hex << std::showbase;
  17.  std::cout << "A = " << A << "\nB = " << B << std::endl;
  18.  
  19.  return 0;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement