Задание в коде) Проблема с первым заданием... 1-диск 2-4-диска 5-20-дисков 21 и так далее уже повторяется. Не знаю как сделать Помогите=) Код | include 'minilib.inc'
.data minilib_data
select_task db 'Выберите задание:', 0xA, \ '1. Для целого 1<=K<=99 напечатать фразу: "У меня есть К дисков." (с возможными ', 0xA, \ 'изменениями последнего слова', 0xA, \ '2. В векторе А[10] определить количество элементов, значения которых кратны', 0xA, \ 'заданной положительной величине С.', 0xA, \ 'Ваш выбор [1/2]: ', 0
bad_value db '[!!] Неверное значение.', 0xA, 0 input_k db 'Введите значение K: ', 0 input_c db 'Введите значение C: ', 0 input_element db 'Введите элемент ', 0
result db 'У меня есть ' , 0 result2 db ' диск' , 0 result3 db ' диска' , 0 result4 db ' дисков' , 0 result_p db 'Кол-во элементов кратных C: ', 0 k dd ? c dd ? m rd 10 result1 dd ? .code startup main: select_task_loop: print_string select_task scan_uint cmp eax, 1 je task1 cmp eax, 2 je task2 print_string bad_value jmp select_task_loop
task1: print_string input_k scan_int mov [k], eax cmp eax, 1 jle output1 cmp eax, 2 cmp eax, 4 jle output2 cmp eax, 5 cmp eax, 99 jle output3 jle output1 print_string bad_value jmp select_task_loop output1: mov [result1], eax print_string result print_int [result1] print_string result2 print_nl jmp finish output2: mov [result1], eax print_string result print_int [result1] print_string result3 print_nl jmp finish output3: mov [result1], eax print_string result print_int [result1] print_string result4 print_nl jmp finish
task2: xor ebx, ebx xor edi, edi ;Ввод C print_string input_c scan_uint mov [c], eax input_loop: print_string input_element print_int ebx print_char ' ' scan_int mov [m+ebx*4], eax inc ebx cmp ebx, 10 jl input_loop
xor esi, esi mov ecx, 9 ;Ввод элементов массива scan_loop: xor edx, edx mov eax, [m+ecx*4] cdq idiv [c] test edx, edx ; cmp edx, 0 je ok jmp scan_loop_end
ok: ;счетчик элементов, удовлетворющих условию inc edi scan_loop_end: dec ecx jge scan_loop print_string result_p print_int edi print_nl finish: exit
.end start
|
|