Форум программистов, компьютерный форум, киберфорум
Assembler, MASM, TASM
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.69/16: Рейтинг темы: голосов - 16, средняя оценка - 4.69
ЧакЭ одобряЭ
 Аватар для Artishok
285 / 284 / 86
Регистрация: 27.12.2009
Сообщений: 1,767

соглашения,подпрограммы

20.03.2011, 20:34. Показов 3565. Ответов 29
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
используя соглашения Sdtcall я вызываю функция сложения с двумя аргументами---
1--функция сложения которая внутри себя вызывает синус(stdcall)
2--функция умножения которая внутри себя вызывает косинус и функцию сложения без синуса(stdcall)
вопросы по ассемблерскому коду который я пытаюсь сделать закомментил
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
.686
.model flat
Public
    _AddProc@16
    _AddProcSin@16
    _ImulProc@32
    extern Cosec@8
    extern Sec@8
.code
 
_AddProcSin@16 proc
     push EBP ;непонятно.Функция сразу все аргументы принимает? или надо выполнять команду mov ;отталкиваясь от числа переменных?
    mov EBP,ESP
    mov EAX,[EBP+8]
    add EAX,[EBP+16];два значения типа Double
    call Sec;возьмет значение из EAX?
    pop EBP
    ret 16;Что вернет функция?и как значение косинуса вернуть?
_AddProcSin@16 endp
 
_AddProc@8 proc ;сложение без вызова синуса
     push EBP
    mov EBP,ESP
    mov ECX,[EBP+8]
    add ECX,[EBP+12];
    pop EBP
    ret 12
_AddProc@8 endp
 
;будут ли проблемы из-за того что стек использовался и там и там?
_ImulProc@32 proc
     push EBP
    mov EBP,ESP
     ;как вызвать здесь функцию умножения для чисел b и c если передавались параметры a b c d
    ;mov EBX,[EBP+16] так?
    ;imul EBX,[EBP+24]
    ;как вызвать здесь функцию для сложения чисел a и d, а затем сложение их суммы со значением в регистре EBX 
    ;call Addproc -- если так то она сложит значения d и c?
    ;...
    call Cosec;для получение значения косинуса
    pop EBP
    ret 24
_ImulProc@32 endp
     
         
end.
главная программа
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
// лаба_ОС.cpp : Defines the entry point for the console application.
//
 
#include "stdafx.h"
#include <iostream>
 
using namespace std;
 
extern "C" double _stdcall AddProc(double el1,double el2);
extern "C" double _stdcall AddProcSin(double a,double b);
extern "C" double _stdcall ImulProc(double x,double y,double z,double c);
 
extern "C" double _fastcall Cosec(double x)
{
    return cos(x);
}
 
extern "C" double _cdecl Sec(double x)
{
    return sin(x);
}
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    double a,b,c,d;
     cout<<"Введите числа"<<endl;
    cin>>a;
    cin>>b;
    cin>>c;
    cin>>d;
    cout<<"Результат----  "<<AddProc(AddProcSin(a,b),ImulProc(a,b,c,d))<<endl;
    return 0;
}
Добавлено через 8 минут
надо учитывать адрес вовзрата?т.е надо вести отсчет от 0 или от 8 в стеке?

Не по теме:

асм мне не так легко дается как языки высокого уровня(((

0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
20.03.2011, 20:34
Ответы с готовыми решениями:

Соглашения о вызовах и masm64
Недавно начал создавать dll на масме64 для си++. Почитал на http://msdn.microsoft.com/ru-ru/library/ms235286.aspx соглашение о вызовах в...

подпрограммы прерывания.
разработать программу для содержимого регистров BX,CX и DX.Содержимое регистров определяется в подпрограмме по формуле...

Подпрограммы и прерывания
Разработать программу для сложения содержимого регистров BX, CX, DX по формуле (AL/2+AL*3)-30, BX=48, CX=22. Содержимое регистра AL для...

29
4187 / 1835 / 220
Регистрация: 06.10.2010
Сообщений: 4,123
21.03.2011, 12:40
Что ещё за sec/cosec? Может лучше использовать fsincos?
0
ЧакЭ одобряЭ
 Аватар для Artishok
285 / 284 / 86
Регистрация: 27.12.2009
Сообщений: 1,767
21.03.2011, 17:47  [ТС]
Цитата Сообщение от murderer Посмотреть сообщение
Что ещё за sec/cosec? Может лучше использовать fsincos?
это функции синуса и косинуса вызваемые из программы на си.просто на си sin и cos зарезервированы а sec и cosес - нет
0
2014 / 1286 / 61
Регистрация: 05.06.2010
Сообщений: 2,213
21.03.2011, 22:03
Artishok, у тебя тип double, соответственно сложения, умножения и проч выполняются с fpu. И результат возвращается на вершине стека сопроцессора
0
ЧакЭ одобряЭ
 Аватар для Artishok
285 / 284 / 86
Регистрация: 27.12.2009
Сообщений: 1,767
21.03.2011, 23:32  [ТС]
Цитата Сообщение от vital792 Посмотреть сообщение
Artishok, у тебя тип double, соответственно сложения, умножения и проч выполняются с fpu. И результат возвращается на вершине стека сопроцессора
то есть мне надо постоянно значения в стек записывать?
ладно.но что возвращать в ret и надо ли учитывать адрес возврата при работе со стеком.и какой он будет?(т.е. смещение +8 или +4)?

Добавлено через 1 час 3 минуты
ret возвращается адрес вовзрата?
0
2014 / 1286 / 61
Регистрация: 05.06.2010
Сообщений: 2,213
22.03.2011, 09:21
ответы в комментариях
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
.686
.model flat
 
.code
public _AddProc@16
public _AddProcSin@16
public _ImulProc@32
 
;   double _stdcall AddProcSin(double a, double b);
_AddProcSin@16 proc
    push    EBP         ; esp -= 4
    mov EBP, ESP
    fld qword ptr [ebp+8];  ; a (4 байта адрес возврата, 4 байта старое значение ebp)
    fadd    qword ptr [ebp+16]  ; +b
    fsin                ; sin(a+b)
    pop EBP
    ret 16              ; результат в st(0)
_AddProcSin@16 endp
 
;   double _stdcall AddProc(double el1, double el2);
_AddProc@16 proc ;сложение без вызова синуса
    push    EBP
    mov EBP,ESP
    fld qword ptr [ebp+8]
    fadd    qword ptr [ebp+16]
    pop EBP
    ret 16
_AddProc@16 endp
 
;   double _stdcall ImulProc(double a, double b, double c, double d);
_ImulProc@32 proc
    push    EBP
    mov EBP, ESP
;как вызвать здесь функцию умножения для чисел b и c если передавались параметры a b c d
    fld qword ptr [ebp+16]  ; b
    fmul    qword ptr [ebp+24]  ; c st(0) = b*c
 ;как вызвать здесь функцию для сложения чисел a и d, а затем сложение их суммы со значением в регистре EBX 
    push    dword ptr [ebp+12]
    push    dword ptr [ebp+8]   ; a
    push    dword ptr [ebp+36]
    push    dword ptr [ebp+32]  ; d
    call    _AddProc@16     ; st(0) = a+d st(1) = b*c
    faddp               ; st(0) = (a+d)+(b*c)
    fcos
    pop EBP
    ret 32
_ImulProc@32 endp
 
end
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include "stdafx.h"
#include "math.h"
#include <iostream>
 
using namespace std;
 
extern "C" double _stdcall AddProc(double el1, double el2);
extern "C" double _stdcall AddProcSin(double a, double b);
extern "C" double _stdcall ImulProc(double x, double y, double z, double c);
 
int _tmain(int argc, _TCHAR* argv[])
{
    double x, y;
    x = AddProc(1.0, 2.0);
    x = AddProcSin(1.0, 2.0);
    y = sin(3.0);           // для проверки
    x = ImulProc(1.0, 2.0, 3.0, 4.0);
    y = cos(2.0*3.0+(1.0+4.0));// для проверки
    return 0;
}
1
ЧакЭ одобряЭ
 Аватар для Artishok
285 / 284 / 86
Регистрация: 27.12.2009
Сообщений: 1,767
22.03.2011, 13:31  [ТС]
Спасибо.но суть задания в том чтобы из разных языков вызывать фукнции разными соглашениями.буду разбираться
0
2014 / 1286 / 61
Регистрация: 05.06.2010
Сообщений: 2,213
22.03.2011, 14:58
Цитата Сообщение от Artishok Посмотреть сообщение
но суть задания в том чтобы из разных языков вызывать фукнции разными соглашениями.
ну все это дело легко переделать для __cdecl например. А вот с fastcall не знаю точно - вроде точного стандарта нет и в разных компиляторах реализуется по разному.
0
ЧакЭ одобряЭ
 Аватар для Artishok
285 / 284 / 86
Регистрация: 27.12.2009
Сообщений: 1,767
22.03.2011, 21:36  [ТС]
Цитата Сообщение от vital792 Посмотреть сообщение
ну все это дело легко переделать для __cdecl например. А вот с fastcall не знаю точно - вроде точного стандарта нет и в разных компиляторах реализуется по разному.
ну вот что написано в методичке
Code
1
2
3
4
Директива   Порядок передачи параметров    Очистка стека        Передача параметров через регистры
_fastcall      слева направо                 процедура               ECX,EDX,стек справо налево
_cdecl         справо налево             вызывающая программа                    нет
_stdcall       справо налево                 процедура                           нет
Мне неясно сно что происходит когда я вызываю функцию на асме

Добавлено через 37 минут
в коде на Asm ругается на 44 строку

чем отличается qword от dword?

Добавлено через 3 часа 7 минут
Ругается на faddp "invalid instruction operands" ...
То есть переменные не передаются или тип у них неверный?

Добавлено через 41 минуту
может аргумента нет?
0
2014 / 1286 / 61
Регистрация: 05.06.2010
Сообщений: 2,213
22.03.2011, 21:40
Artishok, какой транслятор используешь? Я использовал ml из visual studio 2008.

Цитата Сообщение от Artishok Посмотреть сообщение
чем отличается qword от dword?
qword - 8 байт. Как раз соответствует типу double в си. Для fpu это допустимый формат - длинное вещественное, не должно вызывать ошибки

Добавлено через 1 минуту
Цитата Сообщение от Artishok Посмотреть сообщение
может аргумента нет?
faddp без операндов — эквивалентно faddp st(1), st(0)
0
ЧакЭ одобряЭ
 Аватар для Artishok
285 / 284 / 86
Регистрация: 27.12.2009
Сообщений: 1,767
23.03.2011, 22:21  [ТС]
Цитата Сообщение от vital792 Посмотреть сообщение
Artishok, какой транслятор используешь? Я использовал ml из visual studio 2008.
я использовал ml из visual studio 2010 правда не факт что правильно настроил.ща переделываю под pelles C.
вот переделал код. вопросы в коде на асме.
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
.686
.model flat
.data
.code
   Public _Addproc@32 
   extern @Cosinus@8
   extern _Sinus
 
 
_Addproc@32 proc
  push EBP
  mov EBP,ESP
  ;все элементы в стеке.
  ;передавалась a b c d -> в стеке d c b a
  ;esp+8--d esp+16--c esp+24--b  esp+32--a
  mov  ECX,dword ptr [esp+24];b
  fmul ECX,dword ptr [esp+16];c
  fadd ECX,dword ptr [esp+8];d
  fadd ECX,dword ptr [esp+32];a
  ;параметры через fastcall передаются через ECX
  call Cosinus
  ;....где теперь результат?в стеке?
  mov  EAX,dword ptr [esp+32] ;a
  fadd EAX, dword ptr [esp+24];b
  push EAX
  call Sinus
  ;и где результат опять?как его просуммировать   
  pop  EBP
  ret 8 
_Addproc@32 endp
 
end
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
 
extern "C" double _stdcall Addproc(double a,double b,double c,double d);
extern "C" double _cdecl Sinus(double x);
{
    return sin(x);
}
extern "C" double _fastcall Cosinus(double x)
{
    return cos(x);
}
 
int main(int argc, char *argv[])
{
    /* TODO: Enter code here */
    double x=Addproc(double a,double b,double c,double d);
    printf("Результат---%f\n",x);
    return 0;
}
мне это к завтра надо

Добавлено через 14 минут
-----
0
2014 / 1286 / 61
Регистрация: 05.06.2010
Сообщений: 2,213
24.03.2011, 11:48
Artishok, не совсем понятно из твоего кода, что должна делать функция Addproc. Я так понял ты хотел сделать cos(b*c+d+a) + sin(a+b). Вот код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include "stdafx.h"
#include "math.h"
#include <iostream>
 
using namespace std;
 
extern "C" double _stdcall AddProc(double a,double b,double c,double d);
extern "C" double _cdecl Sinus(double x)
{
    return sin(x);
}
extern "C" double _fastcall Cosinus(double x)
{
    return cos(x);
}
 
int _tmain(int argc, _TCHAR* argv[])
{
    double x = AddProc(1.0, 2.0, 3.0, 4.0);
    return 0;
}
и функция на ассемблере, которая вычисляет эту формулу:
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
.686
.model flat
 
.code
public _Addproc@32
extern _Sinus       : proc
extern @Cosinus@8   : proc
 
;   double _stdcall AddProc(double a, double b, double c, double d);
_AddProc@32 proc
    push    EBP
    mov EBP,ESP
    fld qword ptr [ebp+16]  ; b
    fmul    qword ptr [ebp+24]  ; b*c
    fadd    qword ptr [ebp+32]  ; b*c+d
    fadd    qword ptr [ebp+8]   ; b*c+d+a
    sub esp, 8
    fstp    qword ptr [esp]
    call    @Cosinus@8      ; st(0) = cos(b*c+d+a)
    fld qword ptr [ebp+8]   ; a
    fadd    qword ptr [ebp+16]  ; a+b
    sub esp, 8
    fstp    qword ptr [esp]
    call    _Sinus
    add esp, 8
    faddp
    pop EBP
    ret 32
_AddProc@32 endp
 
end
компилировал:
ml /Zf /c /Cx /coff addsin.asm
1
ЧакЭ одобряЭ
 Аватар для Artishok
285 / 284 / 86
Регистрация: 27.12.2009
Сообщений: 1,767
24.03.2011, 13:03  [ТС]
попробуем запустить на visual studio 2008
0
2014 / 1286 / 61
Регистрация: 05.06.2010
Сообщений: 2,213
24.03.2011, 13:07
Цитата Сообщение от Artishok Посмотреть сообщение
попробуем запустить на visual studio 2008
вообще я думаю нет разницы 2008 или 2010 в данном случае. Единственно в чем я не уверен в данном коде - передача параметров при вызове _fastcall функции. По идее часть параметров должна передаваться через регистры, но я вызывал функцию в с++, посмотрел в дизассемблере и параметр передавался через стек. Поэтому сделал так же.
0
ЧакЭ одобряЭ
 Аватар для Artishok
285 / 284 / 86
Регистрация: 27.12.2009
Сообщений: 1,767
24.03.2011, 13:35  [ТС]
fastcall два значения в регистры ECX EDX а оставшееся в стек.

Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
_AddProc@32 proc
        push    EBP
        mov     EBP,ESP
       ;для этих команд источник можно не писать.тогда они будут записывать все в st(0)
        fld     qword ptr [ebp+16]      ; b 
        fmul    qword ptr [ebp+24]      ; b*c 
        fadd    qword ptr [ebp+32]      ; b*c+d
        fadd    qword ptr [ebp+8]       ; b*c+d+a
        sub     esp, 8 ;отводим восемь байт под одну локальную переменную.зачем?
        fstp    qword ptr [esp] ;копирует значение из стека и выталкивает вершину освобождая st(0)
        call    @Cosinus@8              ; st(0) = cos(b*c+d+a)
        fld     qword ptr [ebp+8]       ; a
        fadd    qword ptr [ebp+16]      ; a+b
        sub     esp, 8
        fstp    qword ptr [esp];значение из стека St(0) записывает в esp
        call    _Sinus
        add     esp, 8;?
        faddp ;прибавляем st(0) к st(1) и выдвигаем вершину стека
        pop     EBP
        ret     32
_AddProc@32 endp
 
end
я тут покомментил код немного.но я не понял зачем надо add esp,8 и sub esp,8

Добавлено через 2 минуты
Цитата Сообщение от vital792 Посмотреть сообщение
вообще я думаю нет разницы 2008 или 2010 в данном случае
ну значит есть раз у вас компилится код а у меня все время одна и та же ошибка
Code
1
1>temp.obj : error LNK2001: unresolved external symbol _AddProc@32
Добавлено через 13 минут
вот так изменил
Assembler
1
2
3
4
call    @Cosinus@8              ; ECX = cos(b*c+d+a)
fld     qword ptr [ECX] ;значение косинуса из регистра в стек заносим
fld     qword ptr [ebp+8]       ; a  значение косинуса в st(1)
fadd    qword ptr [ebp+16]      ; a+b
Добавлено через 10 минут
так для чего собственно нужно было делать в начале
Assembler
1
sub esp,8
а в конце
Assembler
1
add esp,8
?
0
2014 / 1286 / 61
Регистрация: 05.06.2010
Сообщений: 2,213
24.03.2011, 13:46
Цитата Сообщение от Artishok Посмотреть сообщение
ну значит есть раз у вас компилится код а у меня все время одна и та же ошибка
Код
1>temp.obj : error LNK2001: unresolved external symbol _AddProc@32
я тоже долго не мог понять - у меня тоже вылазила эта ошибка. Оказалось проблема банальна - Addproc в твоем коде с маленькой буквой p, а регистр важен.
Цитата Сообщение от Artishok Посмотреть сообщение
fld * * qword ptr [ECX] ;значение косинуса из регистра в стек заносим
в сопроцессор будет загружены 8 байт с адреса, который находится в ecx - неверно. Видимо в регистрах передаются тока целые числа, а плавающие сразу через стек.

Цитата Сообщение от Artishok Посмотреть сообщение
так для чего собственно нужно было делать в начале
Код ASM
sub esp,8
а это чтоб загрузить значение в стек командой сопроцессора fstp. Вместо этого можно загрузить push по частям, начиная со старшей части

Цитата Сообщение от Artishok Посмотреть сообщение
а в конце
Код ASM
add esp,8
а это уже соглашение _cdecl - стек от параметров освобождает вызывающая процедура
1
ЧакЭ одобряЭ
 Аватар для Artishok
285 / 284 / 86
Регистрация: 27.12.2009
Сообщений: 1,767
24.03.2011, 13:49  [ТС]
Цитата Сообщение от vital792 Посмотреть сообщение
я тоже долго не мог понять - у меня тоже вылазила эта ошибка. Оказалось проблема банальна - Addproc в твоем коде с маленькой буквой p, а регистр важен.
так в том то и дело что я полностью твой код скопировал и там где public _AddProc@32 поставил
0
2014 / 1286 / 61
Регистрация: 05.06.2010
Сообщений: 2,213
24.03.2011, 13:52
а точно добавил obj файл в опциях линкера? Если нет будет та же ошибка
0
ЧакЭ одобряЭ
 Аватар для Artishok
285 / 284 / 86
Регистрация: 27.12.2009
Сообщений: 1,767
24.03.2011, 13:57  [ТС]
Цитата Сообщение от vital792 Посмотреть сообщение
а это чтоб загрузить значение в стек командой сопроцессора fstp. Вместо этого можно загрузить push по частям, начиная со старшей части
то есть дробное число?

Добавлено через 25 секунд
Цитата Сообщение от vital792 Посмотреть сообщение
а точно добавил obj файл в опциях линкера?
что?где?какой линкер?
0
2014 / 1286 / 61
Регистрация: 05.06.2010
Сообщений: 2,213
24.03.2011, 14:08
Цитата Сообщение от Artishok Посмотреть сообщение
что?где?какой линкер?
компилируешь asm файл в obj и добавляешь его в опциях
Миниатюры
соглашения,подпрограммы  
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
24.03.2011, 14:08
Помогаю со студенческими работами здесь

Обязателен ли выход из подпрограммы
В постижении ассемблера MASM32 WINDOWS XP дорос до создания подпрограмм. И столкнулся с сомнением берущим своё начало из ассемблера под...

Как создавать подпрограммы на ассемблере?
как создавать подпрограммы на ассемблере? допустим если выражение надо вычислить (x+y)*z и подпрограмму сложения отдельно сделать.

Подпрограммы. Рекурсивные процедуры и функции
Найти сумму цифр заданного натурального числа.

Подпрограммы. Нерекурсивные процедуры и функции
Заменить данное натуральное число на число, которое получается из исходного записью его цифр в обратном порядке (например, дано число 156,...

Расчет факториала (с использованием рекурсивного вызова подпрограммы)
Доброго времени суток! У меня вопрос как реализовать программу следующего типа: Расчет факториала (с использованием рекурсивного вызова...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
PowerShell Snippets
iNNOKENTIY21 11.11.2025
Модуль PowerShell 5. 1+ : Snippets. psm1 У меня модуль расположен в пользовательской папке модулей, по умолчанию: \Documents\WindowsPowerShell\Modules\Snippets\ А в самом низу файла-профиля. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru