Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

lab4 / lab4

.cpp
Скачиваний:
9
Добавлен:
10.02.2019
Размер:
5.05 Кб
Скачать
яю#include "pch.h"

#include<Windows.h>

#include<cstdio>

#include<cstdlib>



int main(){

	SetConsoleCP(1251);

	SetConsoleOutputCP(1251);



	const int N = 80; // 8=8F80;870F8O ?5@5<5==KE

	int i = 0;

	char* str =(char*) calloc(N,sizeof(char));

	char c ;

	

	printf("2B>@: C?:8=\n 040=85: $>@<8@>20=85 =><5@0 22545==>9 @CAA:>9 1C:2K ?> 0;D028BC 8 =><5@0 ?>78F88 53> ?5@2>3> 2E>645=8O 2> 2E>4=>9 AB@>:5 8 2K40G0 8E =0 M:@0=\n");

	printf("2548B5 AB@>:C: ");

	while ( ( c = getchar()) != '\n' ) { //AG8BK20=85 AB@>:8 A ?@>25@:>9  =0 @CAA:85 1C:2K

		if ( ( c >= -64 && c <= -1 )|| c == -72 || c == -88) str[i++] = c;

	}

	char* str1 = (char*)calloc(i*3, sizeof(char));

	if (i == 0) return 0;

	__asm {

		mov esi, str // 2 si ?><5cB8< 04@5A str

		mov edi, str1

		mov ecx, i // 2 AGQBG8: <0AA820 ?>;>68< 4;8=C AB@>:8



		for:

			lodsb // :;04Q< 109B 87 si 2 al

			stosb // ?5@5AK;05< 109B 87 al 2 di

			mov c, 0 // AGQBG8: ?5@2>3> 2E>645=8O 2AB@>:C

			mov edx, esi // A>E@0=O5< 04@5A AB@>:8

			mov bl, al // A>E@0=O5< B5:CI89 A8<2>;

			mov esi, str //=0G0;> ?>8A:0 A A0<>3> =0G0;0 8AE>4=>9 AB@>:8 

			lodsb // AG8BK20=85 A8<2>;0 87 str

		while:

			cmp al, bl //A@02=5=85 A8<2>;>2

			je if // ?5@5E>4 5A;8 >=8 @02=K

			lodsb // AG8BK20=85 A8<2>;0

			inc c //A++

			jmp while //?5@5E>4 ?><5B:5

		if:

			mov al, c // 70?8AL =><5@0 ?5@2>3> 2E>645=8O

			stosb  // ?5@5AK;05< =><5@ ?5@2>3> 2E>645=8O 2 di

			mov esi, edx // ?5@5AK;05< =0G0;> AB@>:8 2 si

			mov al, bl //15@Q< B5:CI89 A8<2>; 87 bx



			cmp al, 'Q'	// ?@>25@:0 =0 Q		

			jne ex1 // 5A;8 =5 @02=> - ?5@5E>4

			add al, 46 //703@C605< A<5I5=85 4;O Q	

		ex1:

			cmp al, '' // ?@>25@:0 =0 

			jne ex2 

			add al, 30 //703@C605< A<5I5=85 4;O 	

		ex2 :

			add al, 1 // 4>102>G=>5 A<5I5=85 =0 1

			cmp al, '0' // A@02=5=85 A 1C:2>9 0

			jge true // ?5@5E>4 : ?@>?8A=K< 1C:20<

			cmp al, '' //?@>25@:0 =0 1C:2K ?>A;5 

			jbe lab1

			add al, 1 // 4>?A<5I5=85 4;O 1C:2 ?>A;5 

		lab1:

			sub al, '' //A<5I5=85 4;O 703;02=>9

			jmp end

		true :

			cmp al, '5' //?@>25@:0 =0 1C:2K ?>A;5 5

			jbe lab2

			add al, 1 // 4>?A<5I5=85 4;O 1C:2 ?>A;5 5

		lab2 :

			sub al, '0' //A<5I5=85 4;O ?@>?8A=>9



		end :

			stosb // 703@C7:0 G8A;0 2 AB@>:C



			loop for

	}

	int n = i;

	printf("1@01>B0==0O AB@>:0:\n");

	for (int i = 0; i < 3 * n; i += 3)//2K2>4 >1@01>B0==>9 AB@>:8 

		printf("A8<2>; AB@>:8:[%c] =><5@ ?5@2>3> 2E>645=8O:[%d] =><5@ 1C:2K 2 0;D028B5:[%d]\n", str1[i], str1[i + 1], str1[i + 2]);

	return 0;

}
Соседние файлы в папке lab4