|
|
#1
|
|||
|
|||
Запись адреса
Здравствуйте! Задача такова, есть такой код в ассемблере http://clip2net.com/clip/m195299/136....png?nocache=1 к fld qword ptr [eax+138] обращается адрес eax+138, так вот, мне нужно записать адрес eax в другой адрес специально выделенный заранее. Как такое можно сделать, приведите пожалуйста самые простые кодики)
|
#2
|
|||
|
|||
Жив кто не?
|
#3
|
||||
|
||||
Цитата:
Я к чему: нормально сформулируй вопрос. Я не понял ни слова. Про обращающийся адрес, про адрес регистра, про запись адреса регистра еще в какой-то адрес... jmp $ ; Happy End! The Cake Is A Lie. |
#4
|
|||
|
|||
А все разобрался. Чтоб не создавать новую тему т.к. вопрос маленькой задам его сюда, как можно из
Код:
S:String; S:='F30F7E4260BBFFFFFFFF660F57C9F20F'; Конвертировать в байты что-бы получилось такое: Код:
Value : Array [0..15] of Byte = ($F3, $0F, $7E, $42, $60, $BB, $FF, $FF, $FF, $FF, $66, $0F, $57, $C9, $F2, $0F); |
#5
|
||||
|
||||
Берешь по два символа, переводишь из HEX в число.
Код:
a[0] := s[1] - '0'; if (a[0] > '9') a[0] := a[0] + '0' - 'A' + 10; a[1] := s[2] - '0'; if (a[1] > '9') a[1] := a[1] + '0' - 'A' + 10; a[0] := a[0] shl 4 + a[1]; jmp $ ; Happy End! The Cake Is A Lie. |
#6
|
|||
|
|||
А вот сдела вот так
Код:
function Hex2Byte(S : String):Byte; const C:string[16]='0123456789ABCDEF'; begin if Length(S) < 22 then Result := Pos(S, C) - 1 else Result := (Pos(S[1], C) - 1)*16 + Pos(S[2], C) - 1 end; |