Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Asm для начинающих > Сложенние переменных


Автор: eXa 6.1.2007, 20:36
Привет, недавно перепрыгнул с Delphi на ASM, и столкнулся с большой кучей проблем, вот однаsmile
Есть 2 переменных:
Код

 _path               dd  0
_file   db  '/file.txt',0


_path берётся с помощью ф-ии GetSystemDirectory:
Код

  push  256
  push _path
  call [GetSystemDirectory]  


Проблема в том что я незнаю как сложить переменные _path и _file, чтобы получился полный путь до файла(c:\windows\system\file.txt)  Можете помочь мне в этой не большой проблемки?

Автор: MAKCim 6.1.2007, 20:47
они у тебя уже сложены т. к
_file в памяти расположен сразу после _path

Автор: eXa 6.1.2007, 21:04
хм...эт как так? я же задаю их только, помимо этих переменных есть ещё переменные и чё они все складываться чтоль?! Но если даже так, хотя я в этом сомневаюсь, в какой из этих переменных будет путь до файла, в моём случее должно быть(c:\windows\system\file.txt)

Автор: MAKCim 6.1.2007, 21:10
где у тебя
лежит текст
Цитата

c:\windows\system\

?

Автор: eXa 6.1.2007, 21:15
Да текстовик file.txt лежит у меня в системной дире

Автор: MAKCim 6.1.2007, 21:25
Цитата

Да текстовик file.txt лежит у меня в системной дире 

кто тебе мешает написать
Код

_file   db  'с:\windows\system\file.txt',0

Автор: eXa 6.1.2007, 21:49
мда...  наверно не просто так я использую ф-ию GetSystemDirectory

Автор: Farmazon 6.1.2007, 23:07
Ну ёпрст. Копирование символофф из одной строки в конец другой сложно сделать??

Код

invoke GetSystemDirectory, _path, 256

;в eax длина пути к системной директории... без 0 в конце

xor ecx, ecx
B:
mov bl, [_file + ecx]
mov [_path + eax + ecx], bl
cmp byte [_file + ecx], 0
jz E 
inc ecx
jmp B
E:


Добавлено @ 23:15 
И переменные ты по левому объявляешь...
нада:

Код

_path db 256  dup(0) ; или dup(?)
_file db  '/file.txt',0


Добавлено @ 23:18 
Да и пиши в следующий раз какой синтаксис.... я счас ето для фасма напесал...

Автор: MAKCim 7.1.2007, 10:42
Farmazon, 
можно и так
Код

    cld
    mov AX, DS
    mov ES, AX
    lea ESI, _file
    lea EDI, _path
    add EDI, EAX
@@L1:
    lodsb
    stosb
    and AL, AL
    jz @@L2
    jmp @@L1
@@L2:


Автор: eXa 8.1.2007, 07:59
Спасиб!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)