HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 06.05.2008, 02:37
KIR@PRO
Постоянный
Регистрация: 26.12.2007
Сообщений: 353
С нами: 9671366

Репутация: 332
По умолчанию

ага все понятно....
 
Ответить с цитированием

  #2  
Старый 09.05.2008, 16:49
NorB
Познающий
Регистрация: 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]
 
Ответить с цитированием

  #3  
Старый 09.05.2008, 22:51
Jes
Постоянный
Регистрация: 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
 
Ответить с цитированием

  #4  
Старый 10.05.2008, 14:20
taha
Постоянный
Регистрация: 20.08.2006
Сообщений: 327
С нами: 10381346

Репутация: 1077
По умолчанию

Jes, держи сорц http://pastebin.x3k.ru/388
Исправил ряд детских ошибок на синтаксис, коечто оптимизировал, сделал код читабельным... компелируй
 
Ответить с цитированием

  #5  
Старый 16.05.2008, 15:58
taha
Постоянный
Регистрация: 20.08.2006
Сообщений: 327
С нами: 10381346

Репутация: 1077
По умолчанию

я уже подзабыл масм, но разве не так?
ml /c /coff 1.asm
link /SUBSYSTEM:CONSOLE /LIBPATH:c:\1.obj
 
Ответить с цитированием

  #6  
Старый 16.05.2008, 17:52
lomerok
Участник форума
Регистрация: 23.04.2008
Сообщений: 132
С нами: 9499415

Репутация: 13
По умолчанию

Непомогает ....
------
Люди добрые и злые , накачал я кучу книг по асме и чёта както ниодну непонимаю , где команды гдепеременные , неужели я , такой тупой , или увсех так было в начале ...
посоветуйте как мне быть , мож книжку какуюто особенную . пожалусто ..

Последний раз редактировалось De-visible; 16.05.2008 в 18:16.. Причина: 2 поста подряд не есть хорошо! Существет кнопка Edit
 
Ответить с цитированием

  #7  
Старый 16.05.2008, 18:40
z01b
Постоянный
Регистрация: 05.01.2007
Сообщений: 508
С нами: 10182506

Репутация: 1393


По умолчанию

Цитата:
Книга посвящена основам программирования на ассемблере в системах Windows и Dos. Знание ассемблера необходимо профессиональному программисту для понимания работы операционной системы и компилятора. Ассемблер позволяет написать программу(или ее часть) так, что она будет быстро выполняться при этом занимать мало места. Это любимый язык хакеров; его знание позволяет менять по своему усмотрению программы, имея только исполняемый файл без исходных текстов. В основу изложения положены короткие примеры на ассемблере MASM фирмы Microsoft, вводящие читателя в круг основных идей языка, знание которых позволяет не только писать простые программы, но и самостоятельно двигаться дальше.

Книга рассчитана на школьников средних и старших классов, а также на всех итересующихся програмированием вообще и ассемблером в часности.
Скачать
 
Ответить с цитированием

  #8  
Старый 16.05.2008, 19:16
KindEcstasy
Участник форума
Регистрация: 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..
 
Ответить с цитированием

  #9  
Старый 16.05.2008, 20:03
lomerok
Участник форума
Регистрация: 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"
Вопрос : Что нетак , в чём проблемма ...???
 
Ответить с цитированием

  #10  
Старый 17.05.2008, 13:32
KindEcstasy
Участник форума
Регистрация: 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
компалеть вот так:
Код:
ML.EXE PROG.ASM /AT
Параметр "/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)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.