
06.05.2008, 02:37
|
|
Постоянный
Регистрация: 26.12.2007
Сообщений: 353
С нами:
9671366
Репутация:
332
|
|
ага все понятно....
|
|
|

09.05.2008, 16:49
|
|
Познающий
Регистрация: 20.07.2007
Сообщений: 99
С нами:
9900206
Репутация:
25
|
|
Код:
push ax
push dx
lea dx, Str
mov ah,0ah
int 21h
pop dx
pop ax
эт кусок для ввода строки.. подскажите как узнать количество введенных символов мне, и занести в регистр ето число символов?((( очень прошу просто как узнать длину строки, на тасме.
Последний раз редактировалось De-visible; 16.05.2008 в 14:46..
Причина: не забываем теги [code]
|
|
|

09.05.2008, 22:51
|
|
Постоянный
Регистрация: 16.04.2007
Сообщений: 398
С нами:
10037186
Репутация:
1462
|
|
в статье 'От зеленого к Красному' в примере сплайсинга на масме дан код остановки потоков , перевел в фасм , при call из DllMain функция запуска потоков вылетает с ошибкой ( 0xcКучанулей142) , а при вызова из вне (тестового приложения) всё работает отлично (хотя приложение однопоточное и перехват устанавливается даже без остановки потоков ... но всетаки хотелось бы чтоб правильно работало :/ )...
call dword [GetCurrentThreadId]
mov [CurrTh],eax
call dword [GetCurrentProcessId]
mov [CurrPr],eax
push 0
push 0x00000004
call dword [CreateToolhelp32Snapshot]
cmp eax,INVALID_HANDLE_VALUE
je errHandler
mov [Thread.dwSize],28d ;( 28 = 7(Аргументов) * 4(dword))
push Thread
push h
call dword [Thread32First]
@nextThreadToStart:
mov eax,[CurrTh]
mov edx,[CurrPr]
.if [Thread.th32ThreadID] <> eax
.if [Thread.th32OwnerProcessID] = edx
;{
push Thread.th32ThreadID
push 0 ; FALSE
push 0x0002 ;THREAD_SUSPEND_RESUME
call dword [OpenThread]
mov [ThrHandle],eax
.if eax > 0
push ThrHandle
call dword [ResumeThread]
push ThrHandle
call dword [CloseHandle]
.endif
;}
.endif
.endif
push Thread
push h
call dword [Thread32Next]
cmp eax,0
jne @nextThreadToStart
push h
call dword [CloseHandle]
ret
|
|
|

10.05.2008, 14:20
|
|
Постоянный
Регистрация: 20.08.2006
Сообщений: 327
С нами:
10381346
Репутация:
1077
|
|
Jes, держи сорц http://pastebin.x3k.ru/388
Исправил ряд детских ошибок на синтаксис, коечто оптимизировал, сделал код читабельным... компелируй
|
|
|

16.05.2008, 15:58
|
|
Постоянный
Регистрация: 20.08.2006
Сообщений: 327
С нами:
10381346
Репутация:
1077
|
|
я уже подзабыл масм, но разве не так?
ml /c /coff 1.asm
link /SUBSYSTEM:CONSOLE /LIBPATH:c:\1.obj
|
|
|

16.05.2008, 17:52
|
|
Участник форума
Регистрация: 23.04.2008
Сообщений: 132
С нами:
9499415
Репутация:
13
|
|
Непомогает ....
------
Люди добрые и злые , накачал я кучу книг по асме и чёта както ниодну непонимаю , где команды гдепеременные , неужели я , такой тупой , или увсех так было в начале ...
посоветуйте как мне быть , мож книжку какуюто особенную . пожалусто ..
Последний раз редактировалось De-visible; 16.05.2008 в 18:16..
Причина: 2 поста подряд не есть хорошо! Существет кнопка Edit
|
|
|

16.05.2008, 18:40
|
|
Постоянный
Регистрация: 05.01.2007
Сообщений: 508
С нами:
10182506
Репутация:
1393
|
|
Книга посвящена основам программирования на ассемблере в системах Windows и Dos. Знание ассемблера необходимо профессиональному программисту для понимания работы операционной системы и компилятора. Ассемблер позволяет написать программу(или ее часть) так, что она будет быстро выполняться при этом занимать мало места. Это любимый язык хакеров; его знание позволяет менять по своему усмотрению программы, имея только исполняемый файл без исходных текстов. В основу изложения положены короткие примеры на ассемблере MASM фирмы Microsoft, вводящие читателя в круг основных идей языка, знание которых позволяет не только писать простые программы, но и самостоятельно двигаться дальше.
Книга рассчитана на школьников средних и старших классов, а также на всех итересующихся програмированием вообще и ассемблером в часности.
Скачать
|
|
|

16.05.2008, 19:16
|
|
Участник форума
Регистрация: 30.09.2006
Сообщений: 134
С нами:
10322269
Репутация:
197
|
|
lomerok
>где команды гдепеременные
Обычно сначала оператор (комманды) потом 2 операнда чере запятую. прим:
MOV AX,BX
MOV - Оператор
AX & BX - Операнды
Переменные - это те которые обьявленны в секции .data (инициализированные) .data?(неинициализированные), а в .const - константы
> неужели я , такой тупой
Строгое замечание!
Нет, ты не тупой. Просто не понял вот и всё. Мы все до единого сначала даже ползать не умели а сейчас бегаем! Вот видишь. Ничё короче страшного в том что ты не понимаешь пока что. Не считай себя тупым никогда. Быть новичком не стыдно, а если какой нить кретин тебя за это будет когда нибудь упрекать - бей в носопырку, пусть юшкой умоется! Короче, удачи в этом деле. Даже самые крутые программисты когда-то тупо сидели и втыкали в талмуды Кнутта с умным видом, но нихера не понимали. Всё приходит со временем.
De-visible:не надо постить подряд, есть кнопка Edit
Последний раз редактировалось De-visible; 16.05.2008 в 20:04..
|
|
|

16.05.2008, 20:03
|
|
Участник форума
Регистрация: 23.04.2008
Сообщений: 132
С нами:
9499415
Репутация:
13
|
|
Повторюсь .. Компилирую фаил :
Код:
.386
.model flat,stdcall
.code
start:
mov eax, 8
add eax, 8 ;eax = 10???
ret
end start
Выдаёт :
Код:
C:\MASM611\BIN>amake 1ll
C:\MASM611\BIN>ml /c /coff "1ll.asm"
Microsoft (R) Macro Assembler Version 6.11
Copyright (C) Microsoft Corp 1981-1993. All rights reserved.
Assembling: 1ll.asm
C:\MASM611\BIN>link /SUBSYSTEM:CONSOLE "1ll.obj"
Microsoft (R) Incremental Linker Version 6.00.8168
Copyright (C) Microsoft Corp 1992-1998. All rights reserved.
LINK : error LNK2001: unresolved external symbol _start
1ll.exe : fatal error LNK1120: 1 unresolved externals
Код bat фаила :
Код:
ml /c /coff "%1.asm"
link /SUBSYSTEM:CONSOLE "%1.obj"
Вопрос : Что нетак , в чём проблемма ...???
|
|
|

17.05.2008, 13:32
|
|
Участник форума
Регистрация: 30.09.2006
Сообщений: 134
С нами:
10322269
Репутация:
197
|
|
lomerok
Ты пытаешься программу под win32 откомпилмит 16 битным компайлером. Распространённая ошибка среди начинающих. Программа написана верно на 100%. Чтобы всё компайлелось нормально - нужно скачать MASM32 (http://www.masm32.com/)
В твоём случае прошрамма должна быть такой:
Код:
cseg segment
assume cs:cseg,ss:cseg,es:cseg,ds:cseg
org 100h
begin:
mov eax, 8
add eax, 8 ;eax = 10???
int 20h
cseg ends
end begin
компалеть вот так:
Параметр "/AT" указывает ассемблеру что после ассемблирования, в случае, если ошибок нет, следует запустить компоновщик (LINK.EXE) и передать ему параметры для создания файла типа COM. Параметр /AT вводится ЗАГЛАВНЫМИ буквами
x0man
Не стоит так говорить, если одни не помогают - это не значит что и все такие злые и корыстные. И если все форумы - это гомно, хуле вы сидите тогда в этом гомне? =\ фсадкороче =\
Последний раз редактировалось KindEcstasy; 17.05.2008 в 13:48..
|
|
|
|
 |
|
Похожие темы
|
| Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
|
Вопросы для новичков! (faq)
|
PEPSICOLA |
С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby |
92 |
14.05.2010 17:59 |
|
ОС с нуля
|
z01b |
С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby |
36 |
03.07.2008 15:30 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|