ПРОСТАЯ задача с Ассемблером на вывод чисел: Задача:
Написать код на Assambler NASM для intel x86 который выполняет:
1) Ввод с клавиатуры двух 4-значных шестнадцатеричных чисел, которые записываются в качестве содержимого регистров BP и DI;
2) Вывод на экран содержимого регистров, заполненных на п. 1, в виде: шестнадцатеричных, десятичных и двоичных чисел.
приложите каталог LAB2, в котором будет:
Исходный файл программы .asm и исполнимый файл программы .com.
По возможности, для понимая ответа, прокомментируйте его (блок схема, комментарии к коду !
1) Тут в смысле надо тебе интеграл найти если да, то
Program Pr2;
uses crt;
procedure arifm(a,b:integer;var s:real);
begin
s:=(a+b)/2;
end;
procedure proiz(var a,b,c:integer);
var i,m1,m2:integer;
begin
m1:=1;m2:=1;
for i:=1 to a do m1:=m1*i;
for i:=1 to b do m2:=m2*i;
if m1>m2 then c:=m1
else c:=m2;
end;
var a,b,c:integer;
s:real;
Begin
clrscr;
readln(a,b);
arifm(a,b,s);
writeln(s);
proiz(a,b,c);
writeln(c);
end.
2)
Program Pr1;
uses crt;
procedure arifm(var a,b:integer;s:real);
begin
s:=(a+b)/2;
writeln(s:8:3);
end;
var a,b:integer;
s:real;
Begin
clrscr;
readln(a,b);
arifm(a,b,s);
end.
Ввод нуля означает завершение ввода(он нигде не учитывается)
program test;
var sum, x, counter, sumOfNegative, sumOfPositive: integer; average: real;
begin
sum:=0;
average:=0;
counter:=0;
sumOfPositive:=0;
sumOfNegative:=0;
read(x);
while x <> 0 do
begin
sum:=sum+x;
average:=average+x;
counter:=counter+1;
if x > 0 then
sumOfPositive:=sumOfPositive+x
else
sumOfNegative:=sumOfNegative+x;
read(x);
end;
average:=average/counter;
writeln('Sum = ', sum);
writeln('Arithmetic average = ', average);
writeln('The sum of positive numbers = ', sumOfPositive);
writeln('The sum of negative numbers = ', sumOfNegative);
readln;
end.