Hello, Yuri!
Сpд Фев 11 2004, Yuri Kostylev писал к Maxim Polyanskiy по поводу "Re: =?koi8-r?b?SNUg08XK3sHTINEg18HNINXSz8sgx9LBzc/Uzs/HzyDQ0s/H?= =?ko." YK>> at compile time невозможен. MP>> Брехня! MP>> war1 dw ? - если это не тип то что это? YK> Это размер. Окей. Пусть будет размер. MP>> mov eax,var1 - ошибка! MP>> mov al,var1 - ощибка! MP>> mov ax,var1 - ГУД! MP>> Это не контроль типов - то как это называется? YK> Контроль типов типы контролирует, в курсе? Значит по твоему типа контроль размеров получается... ;) YK> Допустим, у тебя в программе описана некая структура (тип данных) YK> и функция (процедура), с ним работающая, в которую передаётся YK> данное этого типа как ссылка в некоем регистре (мы же на асме пишем?) YK> И вот ты засунул в регистр некое произвольное YK> значение и вызвал эту процедуру. YK> Сильно твой ассемблер ругаться будет? А что собственно при этом изменилось?
stru STRUCT var1 db ? var2 dw ? var3 dd ? var4 dq ? ... stru ENDS
stru1 stru <>
mov stru1.var1,eax - ошибка ;) и так далее, cм выше!
YK> move R1, addr data1 YK> call somefunc // Okey
YK> move R1, 0abcd1231124 YK> call somefunc // ????????
И что илюстрирует твой пример? Что в первом случае ты передаешь в функцию адрес структуры а во 2-м хрен знает что? Дык хрен знает, что в хрен знает какое место можно исполнить на любом языке программирования, да на асме это проще но не более того. Причем примеры то детские, ты еще скажи про стек (лишний пуш), хотя откуда вам про такое знать... ;) YK> Rydw i'n mynd i aros yma. WBR! Maxim Polyanskiy.