Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Assembler

Автор: anmiles
Дата сообщения: 17.02.2012 19:18
Пришлось опять включить интуицию. Протрейсил вниз от этой строчки "CALL DWORD PTR DS:[<&USER32.CreateWindowExA>]", нашёл там RETN 8, а потом место CALL, откуда весь этот большой кусок кода вызывается. И в самую первую строчку куска воткнул такой же RETN 8. Дебаг показал, что теперь вся эта кухня с окном пропускается полностью. Пропатчил, вроде заработало .
Автор: akaGM
Дата сообщения: 17.02.2012 19:43
наливай...
Автор: A1exSun
Дата сообщения: 03.03.2012 14:13
В чем можно писать на винде х64, чтоб код был полностью совместим с 16 битовым тасмом?
Автор: bomzzz
Дата сообщения: 03.03.2012 14:19
в 16 битовом тасме и написать
Автор: A1exSun
Дата сообщения: 03.03.2012 14:31
bomzzz
Винда х64, тасм х16 соответственно не запускается.
Виртуалка, на ней тасм - слишком неудобно... Досбокс тоже.
Автор: doktorpilulkin
Дата сообщения: 03.03.2012 14:34
64 битная винда вообще неудобно.
Автор: akaGM
Дата сообщения: 03.03.2012 15:12
A1exSun

Цитата:
В чем можно писать на винде х64, чтоб код был полностью совместим с 16 битовым тасмом?
masm64, писать в классическом стиле и использовать только 16-битовые регистры
Автор: cp58
Дата сообщения: 03.03.2012 16:07
A1exSun
А смысл выбирать в чем писать х16 приложения, если запускать все равно придется в виртуальной машине, так как x64 процессоры в long mode(в котором работает x64 windows система) не поддерживают виртуализацию x16 задач. Можно также установить x32 windows(legacy mode), в таком случае все запустится без проблем.

Цитата:
Виртуалка, на ней тасм - слишком неудобно... Досбокс тоже.

Чем неудобно? Есть еще qemu, где очень удобная консоль для работы с виртуальной машиной.
Автор: bomzzz
Дата сообщения: 03.03.2012 16:11
ему надо просто 32 битную винду поставить и моск себе не парить
Автор: A1exSun
Дата сообщения: 03.03.2012 16:47
doktorpilulkin

Цитата:
64 битная винда вообще неудобно.

Удобно.
akaGM
И все окай будет работать?
cp58

Цитата:
Чем неудобно?

Редактировать код приходиться в той же виртуалке...
bomzzz

Цитата:
ему надо просто 32 битную винду поставить и моск себе не парить

Не нужно мне 32 бит винду.

Я хочу сейчас писать в каком-то большом IDE, а потом перекомпилировать тасмом под х16. Так невозможно?
Автор: akaGM
Дата сообщения: 03.03.2012 17:01
A1exSun
VS 2010, писать на ml64 при условии что ты хорошо знаешь классический асм
+
ну может придётся немного заняться условной компиляцией...

а вообще я думал, что твои идиотские задатодатели со своими идиотскими заданиями быстрее отваляться или всё-таки купят хотя бы один четвёртый пень с Win98...
Автор: A1exSun
Дата сообщения: 03.03.2012 17:07
akaGM
Ладно. Ставлю XP в виртуалку и не трахаю себе мозг. В ней в RedASM писать или в чем?
Скачивать RadASM IDE Pack, RadASM Language Pack и RadASM Assembly Programming Pack?
Или что лучше? Нужен хороший дебаггер.
Я писал бы все в emu8086, но там иногда кое-чего не хватает.
Автор: bomzzz
Дата сообщения: 03.03.2012 17:09

Цитата:
или всё-таки купят хотя бы один четвёртый пень с Win98.



Добавлено:
98 винда на 486 пойдет, можно маненька съеканомит

Добавлено:
а себе он предпочел купить модный комп поставить 64 винду, чтоб потом поставить хп32 на виртуалке

Добавлено:
и все потому что памяти ему всучили больше 4 гигов. чтоб он дома мог спутниковые орбиты рассчитывать
Автор: A1exSun
Дата сообщения: 03.03.2012 17:21
bomzzz
Откуда ты все знаешь?
Автор: bomzzz
Дата сообщения: 03.03.2012 17:23
я вообще то просто смеялся сильно. но обычно ставят 64 битную потому что думают что под 32 нельзя памяти больше 3-4 гиг использовать

Добавлено:
хотя столько памяти нужно или для серверов, или для каких то баз огромных, а 64 бита для огромных вычислений. потом сидят без дров и без софта
Автор: A1exSun
Дата сообщения: 03.03.2012 17:28
bomzzz

Цитата:
ставят 64 битную потому что думают что под 32 нельзя памяти больше 3-4 гиг использовать

Памяти у меня действительно 4 Гб и на 32 будет доступно вроде 3.24, но это не проблема. Пользуюсь 64 потому что вправду быстрее работает. И не хочу ради одного тасма (если бы не универ, то он мне нафиг надо) все рушить.

Добавлено:

Цитата:
хотя столько памяти нужно или для серверов, или для каких то баз огромных

Я максимум умудрялся только 3 загрузить.

Цитата:
потом сидят без дров и без софта

Все драйвера и половина софта х64.
Автор: bomzzz
Дата сообщения: 03.03.2012 17:31
скрытую память выше адреса видео карты можно сделать доступной для данных создав рам диск. так же как в досе XMS было выше 1 мб

Добавлено:
VSuite.Ramdisk.Server.Edition
SuperCache.SuperVolume.2010
SuperSpeedRamDisk
Автор: delover
Дата сообщения: 04.03.2012 16:17
Ребят извините тупо не знаю. Надо сохранить регистры все инструкции PUSHAD/POPAD не работают - версия 64 разряда. Подскажите плиз
Автор: bomzzz
Дата сообщения: 04.03.2012 16:26
погугли не такая команда должна быть pusha это 16 бит, pushad 32 бит, а для 64 еще наверняка какую то букву прилепили в конец
Автор: MERCURY127
Дата сообщения: 04.03.2012 16:55
Пушаку/попаку
Автор: akaGM
Дата сообщения: 04.03.2012 17:01
а по-моему, аналогов в 64-версии ещё нет...
Автор: bomzzz
Дата сообщения: 04.03.2012 17:05
ужас с этим 64 битами

Добавлено:
а я только до ссе и ммикс добрался , до 64 наверно уже никогда не доберусь
Автор: akaGM
Дата сообщения: 04.03.2012 17:20
а может и правда PUSHFQ, не юзал пока...
Автор: cp58
Дата сообщения: 04.03.2012 18:27
delover
Нету такой инструкции, да и зачем? r8-15 регистры просто так дали?
akaGM

Цитата:
а может и правда PUSHFQ, не юзал пока...

Эта инструкция записывает в стек регистр флагов RFLAGS.
Автор: delover
Дата сообщения: 04.03.2012 18:27
БЛИН щас на PUSH EDI ругается

Добавлено:
Короче асм переписывать придётся

Добавлено:
cp58
Я ничиго не понял, ламер я
Автор: cp58
Дата сообщения: 04.03.2012 18:31
delover

Цитата:
БЛИН щас на PUSH EDI ругается

push rdi

Добавлено:
delover

Цитата:
Короче асм переписывать придётся

Поэтому люди используют язык C и лишь малую часть делают вставками ассемблера.
Автор: delover
Дата сообщения: 04.03.2012 18:38
Вот хочу
[more]
Код: [no]procedure TurnonBytes(P, Count: LongWord); assembler;
asm
PUSHAD
MOV EDI, P
MOV ESI, EDI
MOV ECX, Count
PUSH EDI
PUSH ECX
XOR EAX, EAX
@@1: LODSB
ADD AL, AH
STOSB
SUB AH, AL
ADD AH, CL
ROR AH, 3
LOOP @@1
POP ECX
POP EDI
MOV ESI, EDI
@@2: LODSB
XOR AL, 055H
MOV EDX, 4
TEST ECX, EDX
JNE @@3
ROL AL, 3
JMP @@6
@@3: SHR EDX, 1
TEST ECX, EDX
JNE @@4
SHL EDX, 1
ROL AL, 2
JMP @@6
@@4: SHR EDX, 1
TEST ECX, EDX
JNE @@5
XOR AL, 0AAH
ROL AL, 1
@@5: SHL EDX, 2
@@6: STOSB
LOOP @@2
POPAD
end;[/no]
Автор: cp58
Дата сообщения: 04.03.2012 18:53
delover

Цитата:
Вот хочу

Сохраняйте в стеке x64 регистры, делов то.(но лучше не тащить этот старый код и переписать с использованием новых регистров r8-15 и стек не нужен будет вобще для этой задачи, с fastcall и подавно)

Цитата:
В 1994 сишный LZSS работал в 3 раза медленнее чем мой TURBO PASCAL. Си это бренд и только.

Тут сказать нечего.
Автор: delover
Дата сообщения: 04.03.2012 19:02

Цитата:
лучше не тащить этот старый код

Этот старый код шифрует данные реальные новые данные и юзается на полную, реальные датасеты, как раз там где FB загибается. Писать сиё на языках высокого уровня просто идиотизм мне кажется.
Автор: Benchmark
Дата сообщения: 04.03.2012 19:09
akaGM

Цитата:
а по-моему, аналогов в 64-версии ещё нет


Ну почему же:
PUSHAQ / POPAQ - Push/pop all 64-bit general registers (except for RSP)

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384

Предыдущая тема: .NET GUI компоненты


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.