Сейчас на форуме: hgdagon, asfa, bartolomeo (+6 невидимых)

 eXeL@B —› Программирование —› цикл в asm'e
Посл.ответ Сообщение

Ранг: 1.1 (гость)
Активность: 0=0
Статус: Участник

Создано: 01 июля 2006 19:53
· Личное сообщение · #1

подскажите пожалуйста где я сдесь сдурачил.
(только начинаю изучать, с другими языками тоже не знаком)
lesson segment
org 100h

mov cx, 5

start:

mov ah,9
mov dx, offset string
int 21h
loop start
jmp start2
start2:
int 20h
string db 'hello, WORLD!!!$'
lesson ends
end start2
end start
Вот примерно так.




Ранг: 251.8 (наставник), 17thx
Активность: 0.120
Статус: Участник
Seeker

Создано: 01 июля 2006 19:58 · Поправил: =TS=
· Личное сообщение · #2

life4hack пишет:
int 21h

Вызовы прерываний доса и биоса могут изменять регистры...
поэтому лучьше

start:

push cx
mov ah,9
mov dx, offset string
int 21h
pop cx
loop start


life4hack пишет:
jmp start2


это лишнее

-----
DREAMS CALL US




Ранг: 1.1 (гость)
Активность: 0=0
Статус: Участник

Создано: 01 июля 2006 20:07
· Личное сообщение · #3

я не знаю что делают операторы push и pop/



Ранг: 203.3 (наставник)
Активность: 0.220
Статус: Участник
UPX Killer -d

Создано: 01 июля 2006 20:09
· Личное сообщение · #4

life4hack, кладут и достают данные из стэка. Тебе явно нужен справочник.

-----
Я медленно снимаю с неё UPX... *FF_User*




Ранг: 1.1 (гость)
Активность: 0=0
Статус: Участник

Создано: 01 июля 2006 20:14
· Личное сообщение · #5

так, ясно а где его взять??? на это сайте есть? я очень многое скачал именно с него.




Ранг: 71.8 (постоянный)
Активность: 0.030
Статус: Участник

Создано: 01 июля 2006 20:41
· Личное сообщение · #6

life4hack
wasm.ru http://wasm.ru
Здесь куча всего смотри. Справочник поищи, есть Юров в цифровом виде.



Ранг: 1.1 (гость)
Активность: 0=0
Статус: Участник

Создано: 01 июля 2006 21:05
· Личное сообщение · #7

lesson segment
org 100h

mov cx, 5

start:
push cx
mov ah,9
mov dx, offset string
int 21h
pop cx
loop start
int 20h
string db 'hello, WORLD!!!$'
lesson ends
end start
так будет выглядеть исходный код?



Ранг: 1.1 (гость)
Активность: 0=0
Статус: Участник

Создано: 01 июля 2006 21:14 · Поправил: life4hack
· Личное сообщение · #8

выдает предупреждение что смещение будет не 100 как задано в программе, а почему не понятно. вообщем показано на скрине.

1aaa_01.07.2006_CRACKLAB.rU.tgz - fi4a.GIF



Ранг: 158.4 (ветеран), 123thx
Активность: 0.140.49
Статус: Участник

Создано: 01 июля 2006 22:35
· Личное сообщение · #9

lesson segment
org 100h

start:

mov cx, 5
printloop:
push cx
mov ah,9
mov dx, offset string
int 21h
pop cx
loop printloop
int 20h
string db 'hello, WORLD!!!$'
lesson ends
end start





Ранг: 251.8 (наставник), 17thx
Активность: 0.120
Статус: Участник
Seeker

Создано: 01 июля 2006 23:06
· Личное сообщение · #10

rmn пишет:
org 100h

start:

mov cx, 5


Угу, я внимания не обратил, что инструкция была выше метки начала программы...

life4hack

Почитай учебники Зубкова, Юрьева или Финогенова...

-----
DREAMS CALL US




Ранг: 495.3 (мудрец)
Активность: 0.30
Статус: Участник

Создано: 01 июля 2006 23:21 · Поправил: Bitfry
· Личное сообщение · #11

life4hack
Рекомендую:
- Сразу писать под FASM, это удобно и просто для таких примеров.
- Комментируй каждую строку в исходнике для лучшего понимания.
- Не забивай себе голову командой loop, логику циклов через неё понять трудно. Кроме того, на практике от loop почти отказались.

FASM брать здесь: flatassembler.net/
Компилить пример из командной строки: "fasm loop1.asm".

Вот как может выглядеть этот пример под FASM:


1bce_01.07.2006_CRACKLAB.rU.tgz - loop1.asm

-----
Всем привет, я вернулся




Ранг: 271.5 (наставник), 12thx
Активность: 0.150
Статус: Участник
Packer Reseacher

Создано: 01 июля 2006 23:21 · Поправил: theCollision
· Личное сообщение · #12

life4hack
Настоятельно рекомендую купить Ю.Магда "Ассемблер для процессоров Intel Pentium" На многое откроет глаза.
1м делом Скачать и читать рассылку "Низкоуровневое программирование это просто" - [url=http://www.wasm.ru
]www.wasm.ru
[/url]
2м делом читать Зубкова, но я читал Питера Абеля, одну из них комбинировал с Робертом Джордейн www.ya.ru http://www.ya.ru знает таких людей и книги выдаст ихние

А вообще, купи\скачай отладчик Самый лучший учитель

ЗЫ:
Вопрос тебе "На черта надо ставить org 100h ?"

-----
My love is very cool girl.




Ранг: 450.1 (мудрец)
Активность: 0.260
Статус: Участник

Создано: 02 июля 2006 00:27
· Личное сообщение · #13

это не вопрос по программированию, в сочетании с реверсингом тем более

тема закрыта


 eXeL@B —› Программирование —› цикл в asm'e
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати