Advertisement
Guest User

Untitled

a guest
Nov 14th, 2019
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.89 KB | None | 0 0
  1. //#include "stdafx.h"
  2. #include <stdio.h>
  3. #include <cstring>
  4. #include <string>
  5. #include <iostream>
  6. #include <fstream>
  7. #include <conio.h>
  8. #include <Windows.h>
  9.  
  10. using std::cin;
  11. using std::cout;
  12. using std::endl;
  13. using std::ofstream;
  14. using std::string;
  15.  
  16.  
  17. void init() {
  18. cout << "Лабораторная работа №4." << endl;
  19. cout << "Тема: Изучение программирования обработки символьной информации с использованием команд пересылки строк" << endl;
  20. cout << "Выполнила студент группы 8304 Николаева М. А." << endl;
  21. cout << "Вид преобразования: Преобразование введенных во входной строке шестнадцатиричных цифр в двоичную СС" << endl << endl;
  22. }
  23.  
  24.  
  25. void transformation(const char* input, char* result) {
  26. _asm
  27. {
  28. CLD
  29. push esi
  30. push edi
  31. sub ax, ax
  32. push ax, ax
  33. MOV ESI, input; загружаем адреса строк
  34. MOV EDI, result
  35.  
  36. BEGINCYCLE :
  37. LODSB
  38. CMP AL, 0
  39. JE ENDPROG
  40. CMP AL, 46h; если другой символ, то добавляем в строку без изменений
  41. JA SYMBOL
  42. CMP AL, 41h;
  43. JB NUMBER
  44.  
  45. sub al, 31h
  46. JMP TRANSFORMATION
  47.  
  48. NUMBER :
  49. CMP AL, 30h; проверяем символ на число
  50. JB SYMBOL
  51. CMP AL, 39h
  52. JA SYMBOL
  53. SUB AL, 48
  54.  
  55. TRANSFORMATION:
  56. SUB CX, CX
  57. CYCLE:
  58. mov bx , 1
  59. AND Bl, AL
  60. PUSH BL
  61. INC CX
  62. SHR Ax, 1
  63. CMP al, 0
  64. JNE CYCLE
  65.  
  66. SETBIT:
  67. DEC CX
  68. POP al
  69. STOSB
  70. CMP CX, 0
  71. JNE SETBIT
  72.  
  73.  
  74. jmp BEGINCYCLE
  75.  
  76. SYMBOL:
  77. STOSB
  78. JNE BEGINCYCLE
  79.  
  80. ENDPROG:
  81. mov AL, 0
  82. stosb
  83. pop ax
  84. pop edi
  85. pop esi
  86.  
  87. }
  88. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement