От Александр Ответить на сообщение
К Iva
Дата 22.08.2009 11:07:27 Найти в дереве
Рубрики Россия-СССР; Крах СССР; История; Идеология; Версия для печати

Re: похоже это...

>Привет

>вы бы посмотрели что такое простой вызор SUBROUTINE или OUTPUT
>там и не 50 строк за строку будет

Берем простенькую прогу и транслируем ее в визуальном с++
#include "stdafx.h"
#include 

using std::cout;
using std::endl;


void soubroutine()
{
	int j=0;
	while (j<5)
		j++;
}
int _tmain(int argc, _TCHAR* argv[])
{
	cout<<"hello";
	soubroutine();
	return 0;
}



и глядим что во что транслируется вывод и вызов подпрограммы в строчках 16 и 17 соответственно.

; 16   : 	cout<<"hello";

	push	OFFSET ??_C@_05CJBACGMB@hello?$AA@
	mov	eax, DWORD PTR __imp_?cout@std@@3V?$basic_ostream@DU?$char_traits@D@std@@@1@A
	push	eax
	call	??$?6U?$char_traits@D@std@@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@PBD@Z ; std::operator<< >
	add	esp, 8

; 17   : 	soubroutine();

	call	?soubroutine@@YAXXZ			; soubroutine

Вывод на консоль 5 строк
Вызов подпрограммы одна строка.


>>но даже не полюбопытствовал скомпилировать програмку в язык ассемблера, где исходный текст в виде комментариев, да посмотреть во сколько ассемблерных команд на самом деле компилируется строка языка высокого уровня. 3-4. Особенно если речь о фортране. Пожалуй единственное исключение - арифметические выражения и вызовы фунцкий, но приделать к ассемблеру затычку, которая их транслирует не сложно. В чем там "великий прорыв"?
>
>а цикл? не видели что получается?

Видели
; 11   : 	while (j<5)

	cmp	DWORD PTR _j$[ebp], 5
	jge	SHORT $LN3@soubroutin


Две строчки.
----------------------------
http://www.orossii.ru