|
От
|
Александр
|
|
К
|
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