В 3 способе, как в подпрограмме вызвать значение в стек FPU?
push bp
mov bp, sp
fld qword ptr [bp + 8]
...
pop bp
ret
А в 1 способе я не понял, что происходит. И он еще не работает, при компилировании выдает ошибку: "Illegal indexing mode" в строчке
push bp
mov bp, sp
sub sp, 8
fld qword ptr [source]
fstp qword ptr [bp - 8]
call OutFloat
add sp, 8
pop bp
ret
3 способ понятен, но тут тоже возникают сложности с загрузкой этой переменной в стек FPU. По идее нужно вызвать три раза pop, отложить их где-то и объединить в единое число?
push bp
mov bp, sp
fld qword ptr [bp + 8]
...
pop bp
ret
в лабе дано задание - подпрограмма принимает значение двух аргументов (Source, Result).
sub sp, 8
fld qword ptr [source]
fstp qword ptr [sp]
call OutFloat
add sp, 8
mov ax, word ptr [source + 6]
push ax
mov ax, word ptr [source + 4]
push ax
mov ax, word ptr [source + 2]
push ax
mov ax, word ptr [source]
push ax
call OutFloat
add sp, 8
lea si, source
sub sp, 8
mov di, sp
cld
mov cx, 4
rep movsw
call OutFloat
add sp, 8
вывод в консоль прежний
Моя задача - освободить память.
Это же как-то тупо, не?
Можно же как-то более... декларативно, по фен-шуйски
у типа нет никакого значения, что значит нельзя менять.
The meaning of a value stored in an object or returned by a function is determined
by the type of the expression used to access it.
название файла ничего не говорит о его содержимом
гляньте исходники клиента ssh
const это вообще модификатор поля(переменной, функции, итд), а не типа.
я не понимаю, что за тип такой const int.
Константность это свойство поля, а не типа
const int *p
const -- это константность какого поля? Но зачем?
typedef const T T1;
...
const T1 c;
Герман, прекрасно, но тебе-то нужен не char. Твоя функция по-видимому ожидает С-строку. Если ты тупо возьмёшь адрес того, что вернёт message[0], ты получишь либо всю строку которая лежит в message, либо первый символ какой тебе нужно, а за ним -- неизвестное количество мусора.