Помогите разобраться с вводом/выводом в MASMe
program lab1;
{$APPTYPE CONSOLE}
uses
SysUtils;
var a,b,c,d,e:integer;
begin
readln(a,b,c,d,e);
asm
mov eax,a
add eax,b
add eax,c
add eax,d
add eax,e
mov a,eax
end;
writeln('s=',a);
readln;
end.
а как она должна выглядить полностью на асме. Всем зарание спасибо.
Реализация функций (операторов) ввода/вывода привязана к оси, под которую компилируется программа. В Windows подобный ввод-вывод реализуется через консольное API. Кстати, чтобы полностью написать приведенную выше программу на ассемблере, нужно включить в программу не только код, отвечающий за сам ввод/вывод, но еще и код, позволяющий осуществить преобразование введенной символьной строки в число при вводе (с обработкой возможной ошибки, когда число задано некорректно) и числа в символьную строку при выводе.
это уже не раз нафоруме поднималось поисчи. а то щас лень сочинять. может позднее. Скажу только что аски-коды цифр это 30h-39h
Вычисления лечше производить в двоично десятичном формате, в таком случае с выводом на экран все достаточно просто; а ASCII код цифры которую ты намерен отобразить на экране равен самому значению этого числа плюс 40/30h.