Перевести данный код в ассемблер - 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

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.667 из 5