Перевести данный код в ассемблер - Assembler
Формулировка задачи:
Перевести данный код в ассемблер...не могли бы помочь
Поменять местами содержимое переменных A и B и вывести новые значения A и B.
Program Begin22; var a,b:integer; begin Writeln('Введите число a='); readln(a); Writeln('Введите число b='); readln(b); A:=A xor B; B:=A xor B; A:=A xor B; Writeln('b=',Floattostr(b)); Writeln('a=',Floattostr(a)); 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 ; нет, отваливаем mov eax, [A] ; меняем местами xchg eax, [B] ; значения xchg eax, [A] ; A и B cinvoke printf, msg1, [A], [B] ; выводим на экран invoke fflush, 0 ; актуализируем буфферизованный вывод invoke _getch ; any key gtfo: invoke exit, 0 ; выход A: dd ? B: dd ? msg0: db 'Введите число A=',0 AB = $-3 msg1: db 'A=%d, B=%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
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д