Простая задача по Ассемблеру, от : Задача на Assambler NASM для intel x86:
По запросу программы пользователь вводит с
клавиатуры последовательность целых трехзначных положительных десятичных чисел, разделенных пробелами. Ввод последовательности заканчивается нажатием .
Программа выводит эти же числа на экран в порядке убывания величины числа, причем в двоичной системе счисления.
, приложите исходные файлы программы (.asm и .com) и загрузочный модуль программы. По возможности, хотя бы немного прокомментируйте код и опишите краткой блок схемой для понимания !
9. 1312 Кбайт
10. 14 сек.
Объяснение:
9. Передача велась 42 секунды со скоростью 256000 бит/с, следовательно, было передано 256000 * 42 бит информации. Для перевода в Кбайт, полученное число необходимо поделить на 8 (бит -> байт) и на 1024 (байт -> Кбайт).
Размер файла: 256000 * 42 / 8 / 1024 = 1312,5
10. Варианта два: перевести скорость в Кбайт или объем сообщения из Кбайт в биты.
Воспользуемся первым вариантом: 128000 / 8 / 1024 = 15,625 Кбайт/с.
Время передачи составило: 229 / 15,625 = 14,656 сек.
problems : array [0..9] of String = ('x1+5=10', 'x1+5=10', 'x1+5=10', 'x1+5=10', 'x1+5=10', 'x1+5=10', 'x1+5=10','x1+5=10', 'x1+5=10', 'x1+5=10');
answers : array [0..9] of String = ('-5', '-5', '-5', '-5', '-5', '-5', '-5', '-5', '-5', '-5');
var
countOfAnswers, counter: integer;
userAnswer: String;
begin
countOfAnswers := 0;
for counter:=0 to 9 do
begin
write('Введите ответ уравнения ', problems[counter], ' : ');
readln(userAnswer);
if userAnswer = answers[counter] then Inc(countOfAnswers);
end;
if countOfAnswers > 8 then writeln('Отлично')
else if countOfAnswers > 5 then writeln('Хорошо')
else writeln('Плохо');
end.