Программирование на ASM

V

VIRUS 13

я её в блокноте писал ,точнее списал...у мня Fasm сломался ,новый нескачать ибо осел неробит :( поэтому выложил "сырую" ,мне прост надо разобратся че каждая команда делает...
 
Может мне ктонить помочь?! Мне нужон асм чтобы оконные приложения создовать.....чёта в осле рылся так и ненашёл......ктонить киньте....и ежли есть то мануалы тож........спс заранее!!:D
 
Может мне ктонить помочь?! Мне нужон асм чтобы оконные приложения создовать.....чёта в осле рылся так и ненашёл......ктонить киньте....и ежли есть то мануалы тож........спс заранее!!:D

Обычный WinAPI. Асма практически и не будет (если по стандарту).
 
Программа компилируется, но почему-то виснет при выполнении.
Придется еще покопаться в коде.
Код:
 start: {тут обзываем как хотим}
[B]mov ah,02h[/B] 
mov al,13h {видеорежим - 256 цветов 320х200}
int 10h {прерывание для упр. дисплеем и видюхой/собсно переключ.в видеорежим}
переключение видеорежима это вроде 00h, а 02h это установка позиции курсора
 

    agent

    очки: 13
    +
недавно начал учить асм:crazy2:
покажите плз пример использование АПИ GetCursorPos.
все бы ничего, но для неё нужна структура, а как с ними работать я ещё не знаю :)
ЗЫ: если важно, то: MASM32 Version 8.2
 
более конкретный вопрос:
Код:
.386
.model flat,stdcall
option casemap:none
include \masm32\include\windows.inc
include \masm32\include\kernel32.inc
includelib \masm32\lib\kernel32.lib
include \masm32\include\user32.inc
includelib \masm32\lib\user32.lib
.data
To4ka POINT <0>
MsgBoxCaption  db "ЫыЫ",0
.code
start:
   invoke GetCursorPos, addr To4ka
   invoke MessageBox, NULL, addr To4ka.x, addr MsgBoxCaption, MB_OK
   invoke ExitProcess, NULL
end start
MessageBox вместо координаты показывает какую-то чушь. Как исправить?
 

gureedo

Самец :)
более конкретный вопрос:
Код:
.386
.model flat,stdcall
option casemap:none
include \masm32\include\windows.inc
include \masm32\include\kernel32.inc
includelib \masm32\lib\kernel32.lib
include \masm32\include\user32.inc
includelib \masm32\lib\user32.lib
.data
To4ka POINT <0>
MsgBoxCaption  db "ЫыЫ",0
.code
start:
   invoke GetCursorPos, addr To4ka
   invoke MessageBox, NULL, addr To4ka.x, addr MsgBoxCaption, MB_OK
   invoke ExitProcess, NULL
end start
MessageBox вместо координаты показывает какую-то чушь. Как исправить?

это тебе не "сишарп"
используй itoa()
 
Хелп, кто может. Вообщем косяк опупенный.

Прога примитив. Войти в графический режим, после нажатие клавиши, выйти обратно в текстовый. Но не робит.

Признаки. При входе в графику "зависает" и на нажатие клавиши не реагирует.

Исходный текст и прога в архиве.
 
Хелп, кто может. Вообщем косяк опупенный.

Прога примитив. Войти в графический режим, после нажатие клавиши, выйти обратно в текстовый. Но не робит.

Признаки. При входе в графику "зависает" и на нажатие клавиши не реагирует.

Исходный текст и прога в архиве.
хм.. запускаю.. появляется черный экран.. жму любую клавишу.. опять рабочий стол.. прога офф
всм не робит?
 
Так чо в компе дело чтоли:blink:? Хммммммм. Вот это поворот.

Ну спс всё равно.
 
Вообщем возникла потребность такого плана.
Стоит задача: с помощью асма под вин32 сделать прогу, которая для заданного файла *.mpg выводит всякую инфу, типа характеристики аудио и видео, ну там фпс, разрешение и прочее.
Так вот, потребность заключается в том, чтобы найти описание структуры файла *.mpg, ну как я понимаю должно быть описано, что значат первые n байт, следующие m байт и тд. Кто нибудь знает где искать описание этой структуры?
 
Вообщем возникла потребность такого плана.
Стоит задача: с помощью асма под вин32 сделать прогу, которая для заданного файла *.mpg выводит всякую инфу, типа характеристики аудио и видео, ну там фпс, разрешение и прочее.
Так вот, потребность заключается в том, чтобы найти описание структуры файла *.mpg, ну как я понимаю должно быть описано, что значат первые n байт, следующие m байт и тд. Кто нибудь знает где искать описание этой структуры?
1) гуглил?
2) тебе в поиск документации
 

Алексей 85-й

Ословед

    x3r0x

    очки: 12
    Нет комментариев

    Sprut

    очки: 13
    редко можно найти что то по асм

Krivych

Ословед
Может тут помогут, проблема такая ссылка
Написал код для подмены таблицы в проге на си, но вот чтоб подменить пришлось написать немного асм кода, что и вызвало затруднее может кто помочь написать или дописать?
Принцип прога вызывает номер который высчитывает по своей формуле и находит адресс где хранятся данные. Написал часть подмены, до ума довести хз как.

Код:
Find :QWORD
.data
.code

Change proc
 push rax
 mov rax, [rsi+444h]; адресс номера 
 call Find
 ;... хз че тут и как вернуть данные
 pop rax
Change endp
end
 

Krivych

Ословед
Короче к примеру возьмем игру или что то подобное где к уровню или к чему нибудь привязывается какой то еще параметр к примеру опыт. Дак вот для этого создается таблица, которая вычисляется (51b7f0+rdi*4) где адрес константа - необходимое смещение, rdi - хранение условное нашего уровня, а 4 это размер хранимого данного, тобиж опыт в 4 байтах, примерно так выглядит.
00000001, 00000010, 00000023, 0000005A и т.д где идет опыт 1 ур, второго и т.д
Так вот надо таблицу переделать в 64битную в 8 байтовое слов.

я вчера вот написал такой код вроде работает в дебагере, но не прокатывает. условие что для этого надо компилятор x64, и регистры учтены.
В rdi хранится значение уровня.
Код:
Find PROTO :QWORD
.data
 ReturnAddr qw Адресс
.code

Change proc
 push rcx; Указываем счетчик чтобы не трогать старые данные
 lea rcx, [rdi]; берем не значение, а его адрес
 call Find; Вот здесь вызываем функцию, и передаем адрес значения
 mov rax, rcx; помещаем получившееся значение в rax
 pop rcx; возвращаем старое
 jmp ReturnAddr; передаем управление дальше после хука
Change endp
end
Find выполняет поиск необходимого нам значения для данного уровня работающий в среде Си++.
В асме ноль, написал за один день после мимолетного прочтения Л.Скэнлон "Программирование на языке Ассемблер" и просмотра пару мелких сорсов.

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