Наименьшее и наибольшее из чисел - Assembler
Формулировка задачи:
Не могли бы помочь перевести в ассемблер данный код
Даны три числа.
Вывести вначале наименьшее, а затем наибольшее из данных чисел. Помогите решать пожалуйста.
var c,b,a:integer; begin Writeln('Введите первое целое число A='); readln(a); Writeln('Введите второе целое число B='); readln(b); Writeln('Введите второе целое число C='); readln(c); if (A>C)and(A>B) then begin if Bthen Writeln(' наименьшее из данных чисел B =',inttostr(B)) else Writeln(' наименьшее из данных чисел C =',inttostr(C)); Writeln(' наибольшее из данных чисел A =',inttostr(a)); end; if (B>C)and(B>A) then begin if Athen Writeln(' наименьшее из данных чисел A =',inttostr(A)) else Writeln(' наименьшее из данных чисел C =',inttostr(C)); Writeln(' наибольшее из данных чисел B =',inttostr(B)); end; if (C>A)and(C>B) then begin if Athen Writeln(' наименьшее из данных чисел A =',inttostr(A)) else Writeln(' наименьшее из данных чисел C =',inttostr(C)); Writeln(' наибольшее из данных чисел B =',inttostr(B)); end; end.
Решение задачи: «Наименьшее и наибольшее из чисел»
textual
Листинг программы
;FASM, сохранять в cp866 format PE console 4.0 include 'win32a.inc' cinvoke printf, tps, msg0 ; выводим приглашение cinvoke scanf, tpi, A ; вводим A cmp eax, 1 ; верный ввод? jnz gtfo ; нет, отваливаем inc byte [AB] cinvoke printf, tps, msg0 ; выводим приглашение cinvoke scanf, tpi, B ; вводим B cmp eax, 1 ; верный ввод? jnz gtfo ; нет, отваливаем inc byte [AB] cinvoke printf, tps, msg0 ; выводим приглашение cinvoke scanf, tpi, C ; вводим C cmp eax, 1 ; верный ввод? jnz gtfo ; нет, отваливаем mov eax, [A] cmp eax, [B] cmovg eax, [B] cmp eax, [C] cmovg eax, [C] mov ebx, [A] cmp ebx, [B] cmovl ebx, [B] cmp ebx, [C] cmovl ebx, [C] cinvoke printf, msg1, eax, ebx ; выводим на экран invoke fflush, 0 ; актуализируем буфферизованный вывод invoke _getch ; any key gtfo: invoke exit, 0 ; выход A: dd ? B: dd ? C: dd ? msg0: db 'Введите число A=',0 AB = $-3 msg1: db 'Min=%d, Max=%d', 0 tpi db '%i',0 tps db '%s',0 data import library msvcrt,'msvcrt.dll' import msvcrt,\ printf,'printf',\ scanf,'scanf',\ fflush,'fflush',\ _getch,'_getch',\ exit,'exit' end data
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д