Size: a a a

Ассемблер

2020 September 12

D

Dim in Ассемблер
спасибо тебе за ссылку, я теперь буду спать спокойно, зная что это не UDP!
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮... in Ассемблер
TONYMIN TGD
Я это прекрасно понимаю, но не понимаю, зачем прибавлять 1
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮... in Ассемблер
ку
источник

D

Dim in Ассемблер
mov
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮... in Ассемблер
Sam, ты тут?
источник

o9

omne 999666 in Ассемблер
Saenro T
Выменял на банку пива Arduino NANO. Теперь лежу и думаю, что с ней делать...
Тоже меня на сигареты и пиво, как всегда, отдых всегда все собой 😊
источник

RS

Rusty Shackleford in Ассемблер
Привет, перевел структуру в фасм, хочу свериться, что нет ошибки:

typedef struct _STARTUPINFOA {
 DWORD  cb;
 LPSTR  lpReserved;
 LPSTR  lpDesktop;
 LPSTR  lpTitle;
 DWORD  dwX;
 DWORD  dwY;
 DWORD  dwXSize;
 DWORD  dwYSize;
 DWORD  dwXCountChars;
 DWORD  dwYCountChars;
 DWORD  dwFillAttribute;
 DWORD  dwFlags;
 WORD   wShowWindow;
 WORD   cbReserved2;
 LPBYTE lpReserved2;
 HANDLE hStdInput;
 HANDLE hStdOutput;
 HANDLE hStdError;
} STARTUPINFOA, *LPSTARTUPINFOA;


FASM:
struct strct_STARTUPINFOA
 cb      dd ?
 _padding_    rb 4
 lpReserved                            dq ?
 lpDesktop      dq ?
 lpTitle      dq ?
 dwX      dd ?
 dwY      dd ?
 dwXSize      dd ?
 dwYSize      dd ?
 dwXCountChars    dd ?
 dwYCountChars    dd ?
 dwFillAttribute                          dd ?
 dwFlags      dd ?
 wShowWindow    dw ?
 cbReserved2    dw ?
 _padding    rb 4
 lpReserved2    dq ?
 hStdInput      dq ?
 hStdOutput                            dq ?
 hStdError      dq ?
ends
источник

RS

Rusty Shackleford in Ассемблер
всего структура занимает 104 байта получается, что кратно максимальному элементу структуры dq 8 байт, система x64
вроде всё верно ?
источник

RS

Rusty Shackleford in Ассемблер
два паддинга перед dq так как каждый элемент должен распологаться по адресу кратному своему размеру
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮... in Ассемблер
Rusty Shackleford
два паддинга перед dq так как каждый элемент должен распологаться по адресу кратному своему размеру
выравнивание обязательно?
источник

RS

Rusty Shackleford in Ассемблер
думаю да, если не выравнивать расположение dq будет не кратно 8
источник

RS

Rusty Shackleford in Ассемблер
в мануалах написано вроде что надо выравнивать, ну и если я правильно понял s54816 он так вроде учил
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮... in Ассемблер
тоесть если в data напишу
var1 db ?
var2 dq ?

то что....?
...нельзу будет к var2 обратиться или скрость будет меньше?
источник

RS

Rusty Shackleford in Ассемблер
я думаю если это винапи, как в моем случае, то системе по барабану куда заполянть структуру, а вот если понадобится обращение к членам структуры то уже не получится
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮... in Ассемблер
Rusty Shackleford
думаю да, если не выравнивать расположение dq будет не кратно 8
чтоб не считать доп. байты можешь испольщовать aling 2/4/8
источник

RS

Rusty Shackleford in Ассемблер
так как не верное смещение будет
источник

RS

Rusty Shackleford in Ассемблер
Aiwan ╭∩╮ (òÓ,) ╭∩╮
чтоб не считать доп. байты можешь испольщовать aling 2/4/8
я знаю, но ты же знаешь тоже что я стараюсь минимизировать использование конструкций фасмовских
источник

RS

Rusty Shackleford in Ассемблер
руками всё
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮... in Ассемблер
Rusty Shackleford
так как не верное смещение будет
значит при обявлении данных этой структуры позаботься и о выравнивании этих данных, чтоб твои _padding_ были верными
источник

RS

Rusty Shackleford in Ассемблер
кто позаботится ?
источник