| gec 
 Newbie
 | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Два последних занятия по "Основам программирования" преподаватель Л. утверждал, что аргументы передаются в функции через стек. Для простоты понимания механизма, в многочисленных примерах на языке ассемблера Л. показывал приблизительно следующее:
 
 // фрагмент на языке С/С++
 ...
 int Sqr (int x)
 {
 return x * x;
 }
 ...
 int a, b;
 ...
 a = 1250;
 b = Sqr (a);
 ...
 // фрагмент на языке ассемблера
 ...
 Sqr proc near
 pop ax
 mov bx, ax
 mul bx
 retn
 endp Sqr
 ...
 mov dx, 1250
 mov word ptr a, dx
 push dx
 call Sqr
 mov word ptr b, ax
 ...
 
 Не вдаваясь в детали, хочу отметить: приведенные фрагменты программ содержат существенные неточности (а фрагмент на языке ассемблера, к тому же, существенную ошибку: ни один компиллятор не делает ТАК). Разумеется, Л. нельзя обвинить в обмане студентов, так как принцип передачи аргументов соответствует действительности, но во избежание усложнения вышеприведенных примеров и "залезания" в глубинные принципы работы со... (не скажу - с чем!), Л. сознательно пошел на упрощение примеров с двух разных сторон.
 
 Итак, раскритикуйте в пух и прах вышеприведенные примеры (разумеется, граммотно) и... получите +50 баллов. Удачи!
 
 
 Вот такое задание дал мне препод по програмированию. Помогите ответить пожалусто. Сам ответить не могу.
   
 Решил продублировать и сюда.
 |