Compare commits
	
		
			No commits in common. "98b3a215821369bf2d02a234e0a6de3716c57c84" and "83862fb7bce6764521f256ab25a8b3ea222f7251" have entirely different histories.
		
	
	
		
			98b3a21582
			...
			83862fb7bc
		
	
		
					 22 changed files with 0 additions and 1088 deletions
				
			
		|  | @ -1,79 +0,0 @@ | ||||||
| #include <stdio.h> |  | ||||||
| #include <stdlib.h> |  | ||||||
| 
 |  | ||||||
| /*O(n*log(n) + n), сортировка плюс проход по массиву заявок */ |  | ||||||
| 
 |  | ||||||
| /* Структура для хранения зявки */ |  | ||||||
| typedef struct application { |  | ||||||
| 	int begin; |  | ||||||
| 	int end; |  | ||||||
| } app; |  | ||||||
| 
 |  | ||||||
| int vector_compare(const void *a, const void *b); |  | ||||||
| app* solve(app* vector, unsigned int* NUM); |  | ||||||
| 
 |  | ||||||
| int main() { |  | ||||||
| 	/* Число заявок */ |  | ||||||
| 	unsigned int N; |  | ||||||
| 	scanf("%d", &N); |  | ||||||
| 	app* vector = (app*)calloc(N, sizeof(app)); |  | ||||||
| 
 |  | ||||||
| 	/* Считываем информацию о заявках, начало-конец */ |  | ||||||
| 	for (unsigned int i = 0; i < N; i++) { |  | ||||||
| 		scanf("%d %d", &vector[i].begin, &vector[i].end); |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	/* Сортируем заявки по времени окончания */ |  | ||||||
| 	qsort(vector, N, sizeof(app), vector_compare); |  | ||||||
| 	 |  | ||||||
| 	/* Указатель на vector заменится, N изменится */ |  | ||||||
| 	vector = solve(vector, &N); |  | ||||||
| 	 |  | ||||||
| 	printf("Решение:\nКоличество выполненных заявок:%d\n", N); |  | ||||||
| 	for (unsigned int i = 0; i < N; i++) { |  | ||||||
| 		printf("%i %i\n", vector[i].begin, vector[i].end); |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	free(vector); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| int vector_compare(const void *a, const void *b) { |  | ||||||
| 	return ((const app *)a)->end - ((const app *)b)->end; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| /* Учитываем, что время не может быть отрицательным, тем самым
 |  | ||||||
| избавляясь от надобности создавать три указателя или же |  | ||||||
| прибегать к сложной сортировке */ |  | ||||||
| 
 |  | ||||||
| app *solve(app *vector, unsigned int *N) { |  | ||||||
| 	/* Сохраняем начальное значение N */ |  | ||||||
| 	unsigned int N_init = *N; |  | ||||||
| 	/* Конец очередной заявки */ |  | ||||||
| 	int end = vector[0].end; |  | ||||||
| 	for (unsigned int i = 1; i < N_init; i++) { |  | ||||||
| 		if (end > vector[i].begin) { |  | ||||||
| 			/* Удаляем заявки, время начала которых раньше времени конца */ |  | ||||||
| 			vector[i].begin = vector[i].end = -1; |  | ||||||
| 			/* Изменяем количество заявок */ |  | ||||||
| 			(*N)--; |  | ||||||
| 		} |  | ||||||
| 		else { |  | ||||||
| 			/* Иначе, обновляем значение очередного конца */ |  | ||||||
| 			end = vector[i].end; |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 	 |  | ||||||
| 	app* vector_res = (app*)calloc(*N, sizeof(app)); |  | ||||||
| 	unsigned int j = 0; |  | ||||||
| 	/*  Два случая: нужные заявки в конце, нужные заявки в начале */ |  | ||||||
| 	for (unsigned int i = 0; i < N_init && j != *N; i++) { |  | ||||||
| 		/* Если заявка не помечена недействительной, то вписываем ее в новый массив */ |  | ||||||
| 		if (vector[i].begin != -1) {  |  | ||||||
| 			vector_res[j] = vector[i]; |  | ||||||
| 			j++; |  | ||||||
| 		} |  | ||||||
| 	}	 |  | ||||||
| 	 |  | ||||||
| 	free(vector); |  | ||||||
| 	return vector_res; |  | ||||||
| } |  | ||||||
|  | @ -1,15 +0,0 @@ | ||||||
| # 1 |  | ||||||
| 
 |  | ||||||
| 5 |  | ||||||
| 1 2 |  | ||||||
| 3 6 |  | ||||||
| 3 4 |  | ||||||
| 5 7 |  | ||||||
| 1 7 |  | ||||||
| 
 |  | ||||||
| # 2 |  | ||||||
| 
 |  | ||||||
| 3 |  | ||||||
| 1 5 |  | ||||||
| 2 3 |  | ||||||
| 3 4 |  | ||||||
|  | @ -1,120 +0,0 @@ | ||||||
| #include <stdlib.h> |  | ||||||
| #include <stdio.h> |  | ||||||
| #include <limits.h> |  | ||||||
| 
 |  | ||||||
| /* O(n^2) */ |  | ||||||
| 
 |  | ||||||
| int* solve(int** massiv, int n, int x); // 0 вершина(можно заменить в коде)
 |  | ||||||
| void route(int** massiv, int* problem, int n, int x);// для 0 вершины
 |  | ||||||
| 
 |  | ||||||
| int main() { |  | ||||||
| 	int n; |  | ||||||
| 	int x; |  | ||||||
| 
 |  | ||||||
| 	scanf("%d", &n); |  | ||||||
| 	int **adj = (int**)calloc(n, sizeof(int*)); |  | ||||||
| 	for (int i = 0; i < n; i++) { |  | ||||||
| 		adj[i] = (int*)calloc(n, sizeof(int)); |  | ||||||
| 	} |  | ||||||
| 	for (int i = 0; i < n; i++) { |  | ||||||
| 		for (int j = 0; j < n; j++) { |  | ||||||
| 			scanf("%d", &adj[i][j]); |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	/* Номер вершины */ |  | ||||||
| 	scanf("%d", &x); |  | ||||||
| 
 |  | ||||||
| 	int *res = solve(adj, n, x); |  | ||||||
| 
 |  | ||||||
| 	route(adj, res, n, x); |  | ||||||
| 
 |  | ||||||
| 	for (int i = 0; i < n; i++) { |  | ||||||
| 		free(adj[i]); |  | ||||||
| 	} |  | ||||||
| 	free(adj); |  | ||||||
| 
 |  | ||||||
| 	free(res); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| int *solve(int **adj, int n, int x) { |  | ||||||
| 	/* Пройденные вершины - 1, непройденные - 0 */ |  | ||||||
| 	int *vertics = (int*)calloc(n, sizeof(int)); |  | ||||||
| 	/* Вершины, из которых быстрее всего добраться */ |  | ||||||
| 	int *res = (int*)calloc(n, sizeof(int)); |  | ||||||
| 	/* Количество пройденных вершин */ |  | ||||||
| 	int size = 1; |  | ||||||
| 	/* Массив с длинами ребер, из которых выбираем */ |  | ||||||
| 	int* arr = (int*)calloc(n, sizeof(int)); |  | ||||||
| 	/* Начальная вершина */ |  | ||||||
| 	int vertic = x; |  | ||||||
| 	/* Делаем начальную вершину выбранной */ |  | ||||||
| 	vertics[vertic] = 1; |  | ||||||
| 	for (int i = 0; i < n; i++) { |  | ||||||
| 		arr[i] = adj[vertic][i]; |  | ||||||
| 		res[i] = vertic; |  | ||||||
| 	} |  | ||||||
| 	while (size != n) { |  | ||||||
| 		int min = INT_MAX; |  | ||||||
| 		int k; |  | ||||||
| 		for (int i = 0; i < n; i++) { |  | ||||||
| 			/* Пропускаем пройденные вершины */ |  | ||||||
| 			if (vertics[i] == 1) { |  | ||||||
| 				continue; |  | ||||||
| 			} |  | ||||||
| 			/* Ищем вершину, до которой ближе всего (с номером k) */ |  | ||||||
| 			if (min > arr[i]) { |  | ||||||
| 				min = arr[i]; |  | ||||||
| 				k = i; |  | ||||||
| 			} |  | ||||||
| 		} |  | ||||||
| 		/* Отмечаем найденную вершину "пройденной" */ |  | ||||||
| 		vertics[k] = 1; |  | ||||||
| 		/* Смотрим, изменится ли наш массив рёбер, если будем "шагать" из выбранной вершины */ |  | ||||||
| 		for (int i = 0; i < n; i++) { |  | ||||||
| 			/* Игнорируем пройденные вершины */ |  | ||||||
| 			if (vertics[i] == 1) { |  | ||||||
| 				continue; |  | ||||||
| 			} |  | ||||||
| 			/* Если из вершины k ближе до вершины i, то обновляем знaчение для i */ |  | ||||||
| 			if (arr[i] > min + adj[k][i]) { |  | ||||||
| 				arr[i] = min + adj[k][i]; |  | ||||||
| 				res[i] = k; |  | ||||||
| 			} |  | ||||||
| 		} |  | ||||||
| 
 |  | ||||||
| 		size++; |  | ||||||
| 	} |  | ||||||
| 	free(vertics); |  | ||||||
| 	free(arr); |  | ||||||
| 	return res; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| void route(int **adj, int *res, int n, int x) { |  | ||||||
| 	for (int i = 0; i < n; i++) { |  | ||||||
| 		/* Игнорируем петли */ |  | ||||||
| 		if (i == x) { |  | ||||||
| 			continue; |  | ||||||
| 		} |  | ||||||
| 		int w = i; |  | ||||||
| 		/* Суммарная длина */ |  | ||||||
| 		int sum = 0; |  | ||||||
| 		/* Если есть прямой короткий путь, то выводим его */ |  | ||||||
| 		if (res[i] == x) { |  | ||||||
| 			sum = adj[x][i]; |  | ||||||
| 			printf("%d: %d-%d\n", i, i, x); |  | ||||||
| 		} |  | ||||||
| 		/* Иначе, последовательно идем по вершинам из res */ |  | ||||||
| 		else { |  | ||||||
| 			printf("%d: %d-", i, i); |  | ||||||
| 			while (res[w] != x) { |  | ||||||
| 				sum += adj[res[w]][w]; |  | ||||||
| 				printf("%d-", res[w]); |  | ||||||
| 				w = res[w]; |  | ||||||
| 			} |  | ||||||
| 			sum += adj[x][w]; |  | ||||||
| 			printf("%d\n", x); |  | ||||||
| 		} |  | ||||||
| 		printf("Расстояние: %d\n###\n", sum); |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
|  | @ -1,10 +0,0 @@ | ||||||
| 8 |  | ||||||
| 0   23  12  999 999 999 999 999 |  | ||||||
| 23  0   25  999 22  999 999 35 |  | ||||||
| 12  25  0   18  999 999 999 999 |  | ||||||
| 999 999 18  0   999 20  999 999 |  | ||||||
| 999 22  999 999 0   23  14  999 |  | ||||||
| 999 999 999 20  23  0   24  999 |  | ||||||
| 999 999 999 999 14  24  0   16 |  | ||||||
| 999 35  999 999 999 999 16  0 |  | ||||||
| 4 |  | ||||||
|  | @ -1,91 +0,0 @@ | ||||||
| #define _CRT_SECURE_NO_WARNINGS |  | ||||||
| #include <stdio.h> |  | ||||||
| #include <stdlib.h> |  | ||||||
| #include <limits.h> |  | ||||||
| 
 |  | ||||||
| /* O(n^2), n - количество вершин, используем матрицу смежности */ |  | ||||||
| 
 |  | ||||||
| void solve(int **adj, int **res, int n); |  | ||||||
| 
 |  | ||||||
| int main() { |  | ||||||
| 	int n; |  | ||||||
| 
 |  | ||||||
| 	scanf("%d", &n); |  | ||||||
| 	int **adj = (int**)calloc(n, sizeof(int*)); |  | ||||||
| 	for (int i = 0; i < n; i++) { |  | ||||||
| 		adj[i] = (int*)calloc(n, sizeof(int)); |  | ||||||
| 	} |  | ||||||
| 	for (int i = 0; i < n; i++) { |  | ||||||
| 		for (int j = 0; j < n; j++) { |  | ||||||
| 			scanf("%d", &adj[i][j]); |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 	 |  | ||||||
| 	int **res = (int**)calloc(n, sizeof(int*)); |  | ||||||
| 	for (int i = 0; i < n; i++) { |  | ||||||
| 		res[i] = (int*)calloc(n, sizeof(int)); |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	solve(adj, res, n); |  | ||||||
| 
 |  | ||||||
| 	printf("Решение:\n"); |  | ||||||
| 	for (int i = 0; i < n; i++) { |  | ||||||
| 		for (int j = i + 1; j < n; j++) { |  | ||||||
| 			if (res[i][j] != 0) { |  | ||||||
| 				printf("%i-%i: %i\n", i, j, res[i][j]); |  | ||||||
| 			} |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	/* Освобождаем память */ |  | ||||||
| 	for (int i = 0; i < n; i++) { |  | ||||||
| 		free(adj[i]); |  | ||||||
| 	} |  | ||||||
| 	free(adj); |  | ||||||
| 	for (int i = 0; i < n; i++) { |  | ||||||
| 		free(res[i]); |  | ||||||
| 	} |  | ||||||
| 	free(res); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| void solve(int **adj, int **res, int n) { |  | ||||||
| 	/* Множество выбранных вершин, 1 - выбрано, 0 - не выбрано */ |  | ||||||
| 	int* set = (int *)calloc(n, sizeof(int)); |  | ||||||
| 	/* Выбрали первую вершину */ |  | ||||||
| 	set[0] = 1; |  | ||||||
| 	/* Количество выбранных вершин */ |  | ||||||
| 	int set_size = 1; |  | ||||||
| 	while (set_size != n) { |  | ||||||
| 		/* "Бесконечность" */ |  | ||||||
| 		int min = INT_MAX; |  | ||||||
| 		/* Номер вершины */ |  | ||||||
| 		int k_i; |  | ||||||
| 		int k_j; |  | ||||||
| 		for (int i = 0; i < n; i++) { |  | ||||||
| 			/* Если вершина еще не выбрана, то пропускаем её */ |  | ||||||
| 			if (!set[i]) { |  | ||||||
| 				continue; |  | ||||||
| 			} |  | ||||||
| 			/* Рассматриваем выбранные вешины */ |  | ||||||
| 			for (int j = 0; j < n; j++) { |  | ||||||
| 				/* Если вершина k_j выбрана, то пропускаем её, она уже в компоненте связности */ |  | ||||||
| 				if (set[j] == 1) { |  | ||||||
| 					continue; |  | ||||||
| 				} |  | ||||||
| 				/* Выбираем кратчайшее ребро */ |  | ||||||
| 				if (min > adj[i][j] && adj[i][j]) { |  | ||||||
| 					min = adj[i][j]; |  | ||||||
| 					k_i = i; |  | ||||||
| 					k_j = j; |  | ||||||
| 				} |  | ||||||
| 			} |  | ||||||
| 		} |  | ||||||
| 		/* Добавляем вершину k_j в компоненту связности */ |  | ||||||
| 		set[k_j] = 1; |  | ||||||
| 		/* Сохраняем в симметрическую матрицу результат */ |  | ||||||
| 		res[k_i][k_j] = adj[k_i][k_j]; |  | ||||||
| 		res[k_j][k_i] = adj[k_i][k_j];  |  | ||||||
| 		set_size++; |  | ||||||
| 	} |  | ||||||
| 	free(set); |  | ||||||
| } |  | ||||||
|  | @ -1,6 +0,0 @@ | ||||||
| 5 |  | ||||||
| 0	9	75 	0 	0 |  | ||||||
| 9	0	95 	19 	42 |  | ||||||
| 75	95 	0 	51 	66 |  | ||||||
| 0	19 	51 	0 	31 |  | ||||||
| 0	42 	66 	31 	0 |  | ||||||
|  | @ -1,78 +0,0 @@ | ||||||
| #include <stdio.h> |  | ||||||
| #include <stdlib.h> |  | ||||||
| #include <assert.h> |  | ||||||
| 
 |  | ||||||
| /* O(n) - алгоритм Тарьяна */ |  | ||||||
| int* solve(int** massiv, int n); |  | ||||||
| void dfs(int** massiv, int size, int* paint, int vertex, int* problem, int* len); |  | ||||||
| 
 |  | ||||||
| int main(){ |  | ||||||
| 	int n; |  | ||||||
| 
 |  | ||||||
| 	scanf("%d", &n); |  | ||||||
| 	int **adj = (int**)calloc(n, sizeof(int*)); |  | ||||||
| 	for (int i = 0; i < n; i++) { |  | ||||||
| 		adj[i] = (int*)calloc(n, sizeof(int)); |  | ||||||
| 	} |  | ||||||
| 	for (int i = 0; i < n; i++) { |  | ||||||
| 		for (int j = 0; j < n; j++) { |  | ||||||
| 			scanf("%d", &adj[i][j]); |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	int *res = solve(adj, n); |  | ||||||
| 
 |  | ||||||
| 	for (int i = 0; i < n; ++i) { |  | ||||||
| 		printf("%d ", res[i]); |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	/* Освобождаем память */ |  | ||||||
| 	for (int i = 0; i < n; i++) { |  | ||||||
| 		free(adj[i]); |  | ||||||
| 	} |  | ||||||
| 	free(adj); |  | ||||||
| 	free(res); |  | ||||||
| 	 |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| int* solve(int** adj, int n) { |  | ||||||
| 	int* res = (int*)calloc(n, sizeof(int)); |  | ||||||
| 	/* Список раскрасок вершин, 0 - белый, 1 - серый, 2 - черный */ |  | ||||||
| 	int* paint = (int*)calloc(n, sizeof(int)); |  | ||||||
| 	int len = n - 1; |  | ||||||
| 	for (int i = 0; i < n; i++) { |  | ||||||
| 		if (paint[i] == 0) { |  | ||||||
| 			dfs(adj, n, paint, i, res, &len); |  | ||||||
| 		} |  | ||||||
| 		/* Если нашлась серая вершина на данном шаге, то граф цикличен */ |  | ||||||
| 		else if (paint[i] == 1) { |  | ||||||
| 			printf("Граф цикличен, решения не существует:\n"); |  | ||||||
| 			assert(0); |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	free(paint); |  | ||||||
| 	return res; |  | ||||||
| } |  | ||||||
| void dfs(int **adj, int size, int* paint, int vertex, int* res, int* len) { |  | ||||||
| 	if (paint[vertex] == 0) { |  | ||||||
| 		/* Красим белую вершину в серую */ |  | ||||||
| 		paint[vertex] = 1; |  | ||||||
| 		/* вызываем поиск в глубину для каждой вершины, в которую можем дойти из данной, рекурсивно */ |  | ||||||
| 		for (int i = 0; i < size; i++) { |  | ||||||
| 			if (adj[vertex][i] == 1) { |  | ||||||
| 				dfs(adj, size, paint, i, res, len); |  | ||||||
| 			} |  | ||||||
| 		} |  | ||||||
| 		/* Заносим вершину в список для вывода */ |  | ||||||
| 		res[(*len)--] = vertex; |  | ||||||
| 		/* Красим вершину в черный, она обработана */ |  | ||||||
| 		paint[vertex] = 2; |  | ||||||
| 
 |  | ||||||
| 	} |  | ||||||
| 	/* Если нашлась серая вершина - граф цикличен */ |  | ||||||
| 	else if (paint[vertex] == 1) { |  | ||||||
| 		printf("Граф цикличен, решения не существует:\n"); |  | ||||||
| 		assert(0); |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
|  | @ -1,7 +0,0 @@ | ||||||
| 6 |  | ||||||
| 0 0 0 0 0 1 |  | ||||||
| 1 0 0 0 0 0 |  | ||||||
| 0 0 0 0 0 0 |  | ||||||
| 1 0 1 0 0 0 |  | ||||||
| 0 0 1 0 0 0 |  | ||||||
| 0 0 0 0 0 0 |  | ||||||
|  | @ -1,51 +0,0 @@ | ||||||
| #include <stdio.h> |  | ||||||
| #include <stdlib.h> |  | ||||||
| 
 |  | ||||||
| /* O(n^3) */ |  | ||||||
| 
 |  | ||||||
| void solve(int** adj, int n); |  | ||||||
| 
 |  | ||||||
| int main() { |  | ||||||
| 	int n; |  | ||||||
| 	scanf("%d", &n); |  | ||||||
| 	int **adj = (int**)calloc(n, sizeof(int*)); |  | ||||||
| 	for (int i = 0; i < n; i++) { |  | ||||||
| 		adj[i] = (int*)calloc(n, sizeof(int)); |  | ||||||
| 	} |  | ||||||
| 	/* Считываем матрицу смежности. Вместо бесконечности выступает 9999 */ |  | ||||||
| 	for (int i = 0; i < n; i++) { |  | ||||||
| 		for (int j = 0; j < n; j++) { |  | ||||||
| 			scanf("%d", &adj[i][j]); |  | ||||||
| 		} |  | ||||||
| 	}	 |  | ||||||
| 
 |  | ||||||
| 	solve(adj, n); |  | ||||||
| 
 |  | ||||||
| 	printf("Решение:\n"); |  | ||||||
| 	for (int i = 0; i < n; i++) { |  | ||||||
| 		for (int j = 0; j < n; j++) { |  | ||||||
| 			printf("%d ", adj[i][j]); |  | ||||||
| 		} |  | ||||||
| 		printf("\n"); |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	/* Освобождаем память */ |  | ||||||
| 	for (int i = 0; i < n; i++) { |  | ||||||
| 		free(adj[i]); |  | ||||||
| 	} |  | ||||||
| 	free(adj); |  | ||||||
| 
 |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| void solve(int **adj, int n) { |  | ||||||
| 	/* Перебираем все варианты добраться из i в j через k, если выходит короче, то перезаписываем значение i->j */ |  | ||||||
| 	for (int k = 0; k < n; k++) { |  | ||||||
| 		for (int i = 0; i < n; i++) { |  | ||||||
| 			for (int j = 0; j < n; j++) { |  | ||||||
| 				if (adj[i][k] + adj[k][j] < adj[i][j]) { |  | ||||||
| 					adj[i][j] = adj[i][k] + adj[k][j]; |  | ||||||
| 				} |  | ||||||
| 			} |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
|  | @ -1,9 +0,0 @@ | ||||||
| 8 |  | ||||||
| 0   	23  	12  	9999 	9999 	9999 	9999 	9999 |  | ||||||
| 23  	0   	25  	9999 	22  	9999 	9999 	35 |  | ||||||
| 12  	25  	0   	18  	9999 	9999 	9999 	9999 |  | ||||||
| 9999 	9999 	18  	0   	9999 	20  	9999 	9999 |  | ||||||
| 9999 	22  	9999 	9999 	0   	23  	14  	9999 |  | ||||||
| 9999 	9999 	9999 	20  	23  	0   	24  	9999 |  | ||||||
| 9999 	9999 	9999 	9999 	14  	24  	0   	16 |  | ||||||
| 9999 	35  	9999 	9999 	9999 	9999 	16  	0 |  | ||||||
							
								
								
									
										32
									
								
								nasm/D.asm
									
										
									
									
									
								
							
							
						
						
									
										32
									
								
								nasm/D.asm
									
										
									
									
									
								
							|  | @ -1,32 +0,0 @@ | ||||||
| extern printf |  | ||||||
| extern scanf |  | ||||||
| global main |  | ||||||
| 
 |  | ||||||
| section .text |  | ||||||
| main:	 |  | ||||||
| 	push y |  | ||||||
| 	push x |  | ||||||
| 	push nya1 |  | ||||||
| 	call scanf |  | ||||||
| 	add esp, 12 |  | ||||||
| 	 |  | ||||||
| 	mov eax, [x] |  | ||||||
| 	;mov ebx, [y] |  | ||||||
| 	cdq |  | ||||||
| 	idiv dword [y] |  | ||||||
| 
 |  | ||||||
| 	push eax |  | ||||||
| 	push nya |  | ||||||
| 	call printf |  | ||||||
| 	add esp, 8 |  | ||||||
| 
 |  | ||||||
| 	xor eax, eax |  | ||||||
| 	ret |  | ||||||
| 
 |  | ||||||
| section .data |  | ||||||
| nya db "%d", 10, 0 |  | ||||||
| nya1 db "%d %d", 0 |  | ||||||
| 
 |  | ||||||
| section .bss |  | ||||||
| x resd 1 |  | ||||||
| y resd 1 |  | ||||||
							
								
								
									
										32
									
								
								nasm/E.asm
									
										
									
									
									
								
							
							
						
						
									
										32
									
								
								nasm/E.asm
									
										
									
									
									
								
							|  | @ -1,32 +0,0 @@ | ||||||
| extern printf |  | ||||||
| extern scanf |  | ||||||
| global main |  | ||||||
| 
 |  | ||||||
| section .text |  | ||||||
| main:	 |  | ||||||
| 	push y |  | ||||||
| 	push x |  | ||||||
| 	push nya1 |  | ||||||
| 	call scanf |  | ||||||
| 	add esp, 12 |  | ||||||
| 	 |  | ||||||
| 	mov eax, [x] |  | ||||||
| 	;mov ebx, [y] |  | ||||||
| 	cdq |  | ||||||
| 	idiv dword [y] |  | ||||||
| 
 |  | ||||||
| 	push edx |  | ||||||
| 	push nya |  | ||||||
| 	call printf |  | ||||||
| 	add esp, 8 |  | ||||||
| 
 |  | ||||||
| 	xor eax, eax |  | ||||||
| 	ret |  | ||||||
| 
 |  | ||||||
| section .data |  | ||||||
| nya db "%d", 10, 0 |  | ||||||
| nya1 db "%d %d", 0 |  | ||||||
| 
 |  | ||||||
| section .bss |  | ||||||
| x resd 1 |  | ||||||
| y resd 1 |  | ||||||
							
								
								
									
										44
									
								
								nasm/G64.asm
									
										
									
									
									
								
							
							
						
						
									
										44
									
								
								nasm/G64.asm
									
										
									
									
									
								
							|  | @ -1,44 +0,0 @@ | ||||||
| global main |  | ||||||
| extern scanf |  | ||||||
| extern printf |  | ||||||
| section .text |  | ||||||
| 
 |  | ||||||
| main: |  | ||||||
| 	; scanf |  | ||||||
| 	sub rsp, 8 |  | ||||||
| 	mov rdi, nya |  | ||||||
| 	mov rsi, x |  | ||||||
| 	mov rdx, y |  | ||||||
| 	call scanf wrt ..plt |  | ||||||
| 	add   rsp, 8  |  | ||||||
| 	 |  | ||||||
| 	; comparsion |  | ||||||
| 	mov rax, qword [rel x] |  | ||||||
| 	add rax, [rel y] |  | ||||||
| 	 |  | ||||||
| 	jb meow	 |  | ||||||
| 	push rbp |  | ||||||
| 	mov rdi, no |  | ||||||
| 	call printf wrt ..plt |  | ||||||
| 	pop rbp |  | ||||||
| 
 |  | ||||||
| 	jmp end |  | ||||||
| 
 |  | ||||||
| meow: |  | ||||||
| 	push rbp |  | ||||||
| 	mov rdi, yes |  | ||||||
| 	call printf wrt ..plt |  | ||||||
| 	pop rbp |  | ||||||
| 
 |  | ||||||
| end:	 |  | ||||||
| 	xor rax, rax |  | ||||||
| 	ret |  | ||||||
| 
 |  | ||||||
| section .data |  | ||||||
| nya dq "%llu %llu", 0 |  | ||||||
| yes db "YES", 10, 0 |  | ||||||
| no db "NO", 10, 0 |  | ||||||
| 
 |  | ||||||
| section .bss |  | ||||||
| x resq 1 |  | ||||||
| y resq 1 |  | ||||||
							
								
								
									
										52
									
								
								nasm/H.asm
									
										
									
									
									
								
							
							
						
						
									
										52
									
								
								nasm/H.asm
									
										
									
									
									
								
							|  | @ -1,52 +0,0 @@ | ||||||
| global main |  | ||||||
| extern printf |  | ||||||
| extern scanf |  | ||||||
| 
 |  | ||||||
| section .text |  | ||||||
| main: |  | ||||||
| 	push x |  | ||||||
| 	push nya |  | ||||||
| 	call scanf |  | ||||||
| 	add esp, 8 |  | ||||||
| 
 |  | ||||||
| 	push y |  | ||||||
| 	push nya |  | ||||||
| 	call scanf |  | ||||||
| 	add esp, 8 |  | ||||||
| 	 |  | ||||||
| 	mov ebx, dword [x] ; a |  | ||||||
| 	mov ecx, dword [y] ; b |  | ||||||
| 
 |  | ||||||
| loop: |  | ||||||
| 	cmp ecx, 0 ; compare b |  | ||||||
| 	je end |  | ||||||
| 
 |  | ||||||
| 	mov eax, ebx ; move a to eax |  | ||||||
| 	cdq |  | ||||||
| 	div ecx ; a / b, remain in edx |  | ||||||
| 	mov ebx, ecx ; a = b |  | ||||||
| 	mov ecx, edx ; b = remain |  | ||||||
| 		 |  | ||||||
| 	jmp loop |  | ||||||
| end: |  | ||||||
| 	 |  | ||||||
| 	mov eax, dword [x] |  | ||||||
| 	mul dword [y] |  | ||||||
| 	cdq |  | ||||||
| 	div ebx |  | ||||||
| 
 |  | ||||||
| 	push eax |  | ||||||
| 	push nya |  | ||||||
| 	call printf |  | ||||||
| 	add esp, 8 |  | ||||||
| 
 |  | ||||||
| 	xor eax, eax |  | ||||||
| 	ret |  | ||||||
| 
 |  | ||||||
| section .data |  | ||||||
| nya db "%u", 0 |  | ||||||
| 
 |  | ||||||
| section .bss |  | ||||||
| x resd 1 |  | ||||||
| y resd 1 |  | ||||||
| 
 |  | ||||||
							
								
								
									
										59
									
								
								nasm/I.asm
									
										
									
									
									
								
							
							
						
						
									
										59
									
								
								nasm/I.asm
									
										
									
									
									
								
							|  | @ -1,59 +0,0 @@ | ||||||
| global main |  | ||||||
| extern printf |  | ||||||
| extern scanf |  | ||||||
| 
 |  | ||||||
| section .text |  | ||||||
| main: |  | ||||||
| 	; read N |  | ||||||
| 	push n |  | ||||||
| 	push read |  | ||||||
| 	call scanf |  | ||||||
| 	add esp ,8 |  | ||||||
| 
 |  | ||||||
| 	; read loop for x |  | ||||||
| 	xor ebx, ebx |  | ||||||
| 	;mov bx, word [n] |  | ||||||
| loop1: |  | ||||||
| 	cmp bx, word [n] |  | ||||||
| 	je nya1 |  | ||||||
| 	lea eax, [x + 2 * ebx] |  | ||||||
| dbg1:	push eax |  | ||||||
| 	push read |  | ||||||
| 	call scanf |  | ||||||
| 	add esp, 8	 |  | ||||||
| dbg2:	inc ebx |  | ||||||
| 	jmp loop1 |  | ||||||
| 
 |  | ||||||
| nya1: |  | ||||||
| 
 |  | ||||||
| 	xor ebx, ebx |  | ||||||
| 	mov bx, word [n] |  | ||||||
| 	dec ebx |  | ||||||
| loop2: |  | ||||||
| 	cmp bx, 0 |  | ||||||
| 	jl nya2 |  | ||||||
| 	lea eax, [x + 2 * ebx] |  | ||||||
| 	;push word [eax] |  | ||||||
| 	mov dx, word [eax] |  | ||||||
| 	push edx |  | ||||||
| 	push write |  | ||||||
| 	call printf |  | ||||||
| 	add esp, 8	 |  | ||||||
| 	dec ebx |  | ||||||
| 	jmp loop2 |  | ||||||
| 
 |  | ||||||
| nya2: |  | ||||||
| 	push EOL |  | ||||||
| 	call printf |  | ||||||
| 	add esp, 4 |  | ||||||
| 	xor eax, eax |  | ||||||
| 	ret |  | ||||||
| 
 |  | ||||||
| section .data |  | ||||||
| read db "%hu", 0 |  | ||||||
| write db "%hu ", 0 |  | ||||||
| EOL db 10, 0 |  | ||||||
| 
 |  | ||||||
| section .bss |  | ||||||
| n resw 1 |  | ||||||
| x resw 10000 |  | ||||||
							
								
								
									
										68
									
								
								nasm/J.asm
									
										
									
									
									
								
							
							
						
						
									
										68
									
								
								nasm/J.asm
									
										
									
									
									
								
							|  | @ -1,68 +0,0 @@ | ||||||
| global main |  | ||||||
| extern printf |  | ||||||
| extern scanf |  | ||||||
| extern qsort |  | ||||||
| 
 |  | ||||||
| section .text |  | ||||||
| main: |  | ||||||
| 	push n |  | ||||||
| 	push readn |  | ||||||
| 	call scanf |  | ||||||
| 	add esp, 8 |  | ||||||
| 
 |  | ||||||
| 	xor ebx, ebx |  | ||||||
| loop1: |  | ||||||
| 	cmp ebx, dword [n] |  | ||||||
| 	je nya1 |  | ||||||
| 	lea eax, [x + 4 * ebx] |  | ||||||
| 
 |  | ||||||
| 	push eax |  | ||||||
| 	push nya |  | ||||||
| 	call scanf |  | ||||||
| 	add esp, 8 |  | ||||||
| 
 |  | ||||||
| 	inc ebx |  | ||||||
| 	jmp loop1 |  | ||||||
| nya1: |  | ||||||
| 	push compare |  | ||||||
| 	push dword 4 |  | ||||||
| 	push dword [n] |  | ||||||
| 	push x |  | ||||||
| 	call qsort |  | ||||||
| 	add esp, 16 |  | ||||||
| 
 |  | ||||||
| 	xor ebx, ebx |  | ||||||
| loop2: |  | ||||||
| 	cmp ebx, dword [n] |  | ||||||
| 	je nya2 |  | ||||||
| 	lea eax, [x + 4 * ebx] |  | ||||||
| 
 |  | ||||||
| 	push dword [eax] |  | ||||||
| 	push write |  | ||||||
| 	call printf |  | ||||||
| 	add esp, 8	 |  | ||||||
| 	inc ebx |  | ||||||
| 	jmp loop2 |  | ||||||
| 
 |  | ||||||
| nya2: |  | ||||||
| 	xor eax, eax |  | ||||||
| 	ret |  | ||||||
| 
 |  | ||||||
| compare: |  | ||||||
| 	mov eax, [esp+4] |  | ||||||
| 	mov eax, dword [eax] |  | ||||||
| 
 |  | ||||||
| 	mov ebx, [esp + 8]	 |  | ||||||
| 	mov ebx, dword [ebx] |  | ||||||
| 
 |  | ||||||
| 	sub eax, ebx |  | ||||||
| 	ret |  | ||||||
| 
 |  | ||||||
| section .data |  | ||||||
| write db "%d ", 0 |  | ||||||
| nya db "%d", 0 |  | ||||||
| readn db "%d", 0 |  | ||||||
| 
 |  | ||||||
| section .bss |  | ||||||
| n resd 1 |  | ||||||
| x resd 10000 |  | ||||||
							
								
								
									
										78
									
								
								nasm/J1.asm
									
										
									
									
									
								
							
							
						
						
									
										78
									
								
								nasm/J1.asm
									
										
									
									
									
								
							|  | @ -1,78 +0,0 @@ | ||||||
| global main |  | ||||||
| extern printf |  | ||||||
| extern scanf |  | ||||||
| extern qsort |  | ||||||
| 
 |  | ||||||
| section .text |  | ||||||
| main: |  | ||||||
| 	; read N |  | ||||||
| 	push n |  | ||||||
| 	push readn |  | ||||||
| 	call scanf |  | ||||||
| 	add esp ,8 |  | ||||||
| 
 |  | ||||||
| 	; read loop for x |  | ||||||
| 	xor ebx, ebx |  | ||||||
| 
 |  | ||||||
| loop1: |  | ||||||
| 	cmp bx, word [n] |  | ||||||
| 	je nya1 |  | ||||||
| 	lea eax, [x + 4 * ebx] |  | ||||||
| 	push eax |  | ||||||
| 	push nya |  | ||||||
| 	call scanf |  | ||||||
| 	add esp, 8 |  | ||||||
| 	inc ebx |  | ||||||
| 	jmp loop1 |  | ||||||
| 
 |  | ||||||
| nya1: |  | ||||||
| 	push compare |  | ||||||
| 	push dword 4 |  | ||||||
| 	push dword [n] |  | ||||||
| 	push x |  | ||||||
| 	call qsort |  | ||||||
| 	add esp, 16 |  | ||||||
| 	 |  | ||||||
| 	xor ebx, ebx |  | ||||||
| 
 |  | ||||||
| loop2: |  | ||||||
| 	cmp ebx, dword [n] |  | ||||||
| 	je nya2 |  | ||||||
| 	lea eax, [x + 4 * ebx] |  | ||||||
| 
 |  | ||||||
| 	xor edx, edx |  | ||||||
| 	mov edx, dword [eax] |  | ||||||
| 	push edx |  | ||||||
| 	push write |  | ||||||
| 	call printf |  | ||||||
| 	add esp, 8 |  | ||||||
| 	inc ebx |  | ||||||
| 	jmp loop2 |  | ||||||
| 
 |  | ||||||
| nya2: |  | ||||||
| 	xor eax, eax |  | ||||||
| 	ret |  | ||||||
| 
 |  | ||||||
| compare: |  | ||||||
| 	xor edx, edx |  | ||||||
| 	xor ecx, ecx |  | ||||||
| 	lea eax, [esp+4] |  | ||||||
| 	mov eax, [eax] |  | ||||||
| 	mov ecx, dword [eax] |  | ||||||
| 		 |  | ||||||
| 	lea ebx, [esp+8] |  | ||||||
| 	mov ebx, [ebx] |  | ||||||
| 	mov edx, dword [ebx] |  | ||||||
| 	sub ecx, edx |  | ||||||
| 	;mov ax, cx |  | ||||||
| 	;cwde |  | ||||||
| 	mov eax, ecx |  | ||||||
| 	ret |  | ||||||
| 
 |  | ||||||
| section .data |  | ||||||
| write db "%d ", 0 |  | ||||||
| nya db "%d", 0 |  | ||||||
| readn db "%d", 0 |  | ||||||
| section .bss |  | ||||||
| n resd 1 |  | ||||||
| x resd 10000 |  | ||||||
							
								
								
									
										33
									
								
								nasm/K.asm
									
										
									
									
									
								
							
							
						
						
									
										33
									
								
								nasm/K.asm
									
										
									
									
									
								
							|  | @ -1,33 +0,0 @@ | ||||||
| global main |  | ||||||
| extern scanf |  | ||||||
| extern printf  |  | ||||||
| 
 |  | ||||||
| section .text |  | ||||||
| main: |  | ||||||
| 
 |  | ||||||
| 	push y |  | ||||||
| 	push x |  | ||||||
| 	push scan |  | ||||||
| 	call scanf |  | ||||||
| 	add esp, 12 |  | ||||||
| 
 |  | ||||||
| 	fld dword [x] |  | ||||||
| 	fld dword [y] |  | ||||||
| 	fdiv |  | ||||||
| 
 |  | ||||||
| 	sub esp, 8 |  | ||||||
| 	fst qword [esp] |  | ||||||
| 	push nya |  | ||||||
| 	call printf |  | ||||||
| 	add esp, 12 |  | ||||||
| 	xor eax, eax |  | ||||||
| 	ret |  | ||||||
| 
 |  | ||||||
| section .data |  | ||||||
| scan db "%f%f", 0 |  | ||||||
| nya db "%f", 10, 0 |  | ||||||
| 
 |  | ||||||
| section .bss |  | ||||||
| x resd 1 |  | ||||||
| y resd 1 |  | ||||||
| 
 |  | ||||||
							
								
								
									
										34
									
								
								nasm/K1.asm
									
										
									
									
									
								
							
							
						
						
									
										34
									
								
								nasm/K1.asm
									
										
									
									
									
								
							|  | @ -1,34 +0,0 @@ | ||||||
| global main |  | ||||||
| extern scanf |  | ||||||
| extern printf  |  | ||||||
| 
 |  | ||||||
| section .text |  | ||||||
| main: |  | ||||||
| 
 |  | ||||||
| 	push y |  | ||||||
| 	push x |  | ||||||
| 	push scan |  | ||||||
| 	call scanf |  | ||||||
| 	add esp, 12 |  | ||||||
| 
 |  | ||||||
| 	fld tword [x] |  | ||||||
| 	fld tword [y] |  | ||||||
| 	fdiv |  | ||||||
| 
 |  | ||||||
| 	sub esp, 12 |  | ||||||
| 	fstp tword [esp] |  | ||||||
| 	push nya |  | ||||||
| 	call printf |  | ||||||
| 	add esp, 16 |  | ||||||
| 	xor eax, eax |  | ||||||
| 	ret |  | ||||||
| 
 |  | ||||||
| section .data |  | ||||||
| scan db "%llf%llf", 0 |  | ||||||
| nya db "%llf", 10, 0 |  | ||||||
| 
 |  | ||||||
| section .bss align=16 |  | ||||||
| x rest 1 |  | ||||||
| resw 1 |  | ||||||
| y rest 1 |  | ||||||
| 
 |  | ||||||
							
								
								
									
										30
									
								
								nasm/M.asm
									
										
									
									
									
								
							
							
						
						
									
										30
									
								
								nasm/M.asm
									
										
									
									
									
								
							|  | @ -1,30 +0,0 @@ | ||||||
| global main |  | ||||||
| extern scanf |  | ||||||
| extern printf  |  | ||||||
| 
 |  | ||||||
| section .text |  | ||||||
| main: |  | ||||||
| 
 |  | ||||||
| 	push x |  | ||||||
| 	push scan |  | ||||||
| 	call scanf |  | ||||||
| 	add esp, 8 |  | ||||||
| 
 |  | ||||||
| 	fld tword [x] |  | ||||||
| 	fabs |  | ||||||
| 
 |  | ||||||
| 	sub esp, 12 |  | ||||||
| 	fstp tword [esp] |  | ||||||
| 	push nya |  | ||||||
| 	call printf |  | ||||||
| 	add esp, 16 |  | ||||||
| 	xor eax, eax |  | ||||||
| 	ret |  | ||||||
| 
 |  | ||||||
| section .data |  | ||||||
| scan db "%llf", 0 |  | ||||||
| nya db "%llf", 10, 0 |  | ||||||
| 
 |  | ||||||
| section .bss align=16 |  | ||||||
| x rest 1 |  | ||||||
| 
 |  | ||||||
							
								
								
									
										130
									
								
								nasm/N.asm
									
										
									
									
									
								
							
							
						
						
									
										130
									
								
								nasm/N.asm
									
										
									
									
									
								
							|  | @ -1,130 +0,0 @@ | ||||||
| global main |  | ||||||
| extern scanf |  | ||||||
| extern printf |  | ||||||
| 
 |  | ||||||
| <<<<<<< Updated upstream |  | ||||||
| 
 |  | ||||||
| section .text |  | ||||||
| main: |  | ||||||
| 	xor ebx, ebx |  | ||||||
| 
 |  | ||||||
| loop1: |  | ||||||
| 	cmp ebx, 8 |  | ||||||
| 	jge nya1 |  | ||||||
| 	inc ebx |  | ||||||
| 
 |  | ||||||
| 	; read element	 |  | ||||||
| 	lea edx, [a + 1*ebx] |  | ||||||
| 	push edx |  | ||||||
| 	push template |  | ||||||
| 	call scanf |  | ||||||
| 	add esp, 8	 |  | ||||||
| 
 |  | ||||||
| 	push word [edx] |  | ||||||
| 	push output |  | ||||||
| 	call printf |  | ||||||
| 	add esp, 8	 |  | ||||||
| 
 |  | ||||||
| 	jmp loop1 |  | ||||||
| 
 |  | ||||||
| nya1: |  | ||||||
| 	 |  | ||||||
| 
 |  | ||||||
| ;	xor ebx, ebx |  | ||||||
| ; |  | ||||||
| ;loop2: |  | ||||||
| ;	cmp ebx, 8 |  | ||||||
| ;	jge nya2 |  | ||||||
| ;	inc ebx |  | ||||||
| ; |  | ||||||
| ;	; read element	 |  | ||||||
| ;	push b |  | ||||||
| ;	push template |  | ||||||
| ;	call scanf |  | ||||||
| ;	add esp, 8	 |  | ||||||
| ; |  | ||||||
| ;	jmp loop1 |  | ||||||
| ; |  | ||||||
| ;nya1: |  | ||||||
| 
 |  | ||||||
| ;	xor ebx, ebx |  | ||||||
| ;loop3: |  | ||||||
| 	; output |  | ||||||
| ;	push word [a] |  | ||||||
| ;	push output |  | ||||||
| ;	call printf |  | ||||||
| ;	add esp, 8 |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 	xor eax, eax |  | ||||||
| 	ret |  | ||||||
| 
 |  | ||||||
| section .data |  | ||||||
| template db "%d", 0 |  | ||||||
| output db "%d", 10, 0 |  | ||||||
| t db "%d", 10, 0 |  | ||||||
| 
 |  | ||||||
| section .bss |  | ||||||
| a resw 8 |  | ||||||
| b resw 8 |  | ||||||
| ======= |  | ||||||
| section .text |  | ||||||
| main: |  | ||||||
| 	xor ebx, ebx |  | ||||||
| loop1: |  | ||||||
| 	cmp ebx, 8 |  | ||||||
| 	je nya1 |  | ||||||
| 	lea eax, [a + ebx] |  | ||||||
| 	push eax |  | ||||||
| 	push input |  | ||||||
| 	call scanf |  | ||||||
| 	add esp, 8	 |  | ||||||
| 	inc ebx |  | ||||||
| 	jmp loop1 |  | ||||||
| 
 |  | ||||||
| nya1: |  | ||||||
| 	xor ebx, ebx |  | ||||||
| loop2: |  | ||||||
| 	cmp ebx, 8 |  | ||||||
| 	je nya2 |  | ||||||
| 	lea eax, [b + ebx] |  | ||||||
| 	push eax |  | ||||||
| 	push input |  | ||||||
| 	call scanf |  | ||||||
| 	add esp, 8	 |  | ||||||
| 	inc ebx |  | ||||||
| 	jmp loop2 |  | ||||||
| nya2: |  | ||||||
| 	movq mm0, [a] |  | ||||||
| 	movq mm1, [b] |  | ||||||
| 	paddsb mm0, mm1 |  | ||||||
| 	movq [a], mm0 |  | ||||||
| 	xor ebx, ebx |  | ||||||
| loop3: |  | ||||||
| 	cmp ebx, 8 |  | ||||||
| 	je nya3 |  | ||||||
| 	lea eax, [a + ebx] |  | ||||||
| 	mov dl, byte [eax] |  | ||||||
| 	push edx |  | ||||||
| 	push output |  | ||||||
| 	call printf |  | ||||||
| 	add esp, 8	 |  | ||||||
| 	inc ebx |  | ||||||
| 	jmp loop3 |  | ||||||
| 
 |  | ||||||
| nya3: |  | ||||||
| 	push EOL |  | ||||||
| 	call printf |  | ||||||
| 	add esp, 4 |  | ||||||
| dbg:	xor eax, eax |  | ||||||
| 	ret |  | ||||||
| 
 |  | ||||||
| section .data |  | ||||||
| input dd "%hhu", 0 |  | ||||||
| output dd "%hhu ", 0 |  | ||||||
| EOL dd 10 |  | ||||||
| 
 |  | ||||||
| section .bss |  | ||||||
| a resb 8 |  | ||||||
| b resb 8 |  | ||||||
| >>>>>>> Stashed changes |  | ||||||
							
								
								
									
										30
									
								
								nasm/O.asm
									
										
									
									
									
								
							
							
						
						
									
										30
									
								
								nasm/O.asm
									
										
									
									
									
								
							|  | @ -1,30 +0,0 @@ | ||||||
| global _start |  | ||||||
| 
 |  | ||||||
| section .text |  | ||||||
| _start: |  | ||||||
| 	; input |  | ||||||
| 	mov eax, 3 |  | ||||||
| 	xor ebx, ebx |  | ||||||
| 	mov ecx, nya |  | ||||||
| 	mov edx, 1 |  | ||||||
| 	int 0x80	 |  | ||||||
| 	 |  | ||||||
| 	; modification |  | ||||||
| 	mov ax, word [nya] |  | ||||||
| 	or ax, 0111b |  | ||||||
| 	mov [nya], ax |  | ||||||
| 
 |  | ||||||
| 	; output |  | ||||||
| 	mov eax, 4 |  | ||||||
| 	mov ebx, 1 |  | ||||||
| 	mov ecx, nya |  | ||||||
| 	mov edx, 1 |  | ||||||
| 	int 0x80 |  | ||||||
| 	 |  | ||||||
| 	; program exit |  | ||||||
| 	mov     eax, 1 ; sys_exit = 1 |  | ||||||
| 	xor     ebx, ebx |  | ||||||
| 	int     0x80 |  | ||||||
| 
 |  | ||||||
| section .bss |  | ||||||
| nya resb 1 |  | ||||||
		Reference in a new issue