PDA

Просмотр полной версии : нужен макрос для sjasm



jerri
25.03.2013, 16:23
Кто подскажет Макроc для простого создания строки вида
<длина текста> <текст>

NovaStorm
25.03.2013, 22:42
string.len?
Пример приведи, не очень понятно, чего хочется.

jerri
25.03.2013, 22:48
string.len?
Пример приведи, не очень понятно, чего хочется.

чтото вроде

исходник


mess "message"
mess "1"
mess "22"


результат


defb 7,"message"
defb 1,"1"
defb 2,"22"


это способ записи когда перед текстовым сообщением идет его длина

NovaStorm
25.03.2013, 22:58
Как-то так наверное.


lua allpass
mess = function (s)
_pl(" defb "..string.len(s)..",\""..s.."\"")
end
mess("123")
endlua

psb
26.03.2013, 02:55
macro text aaa
db .e-.b
.b db aaa
.e
endm

NovaStorm
26.03.2013, 08:03
Хы, про арифметику не подумал =)

jerri
26.03.2013, 09:19
psb, а поподробнее: как это работает?

psb
26.03.2013, 12:44
да фиг знает как, набрутфорсил%)))

идея простая. делается такой кусок кода:

db end-start ;length
start:
db "text text text"
end:

получается, сначала вставляется байт длины (вычисляемый), потом сам текст. точки у меток - чтобы они были локальные (это в теории, я точно не в курсе, как оно работает, но результат получается правильный; кто хочет убедиться - читайте доку).

jerri
26.03.2013, 13:17
psb, да вот в том то и дело что читал :) нифига не понял.