Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.03.2009, 16:59   #1
1ntro
Пользователь
 
Регистрация: 10.12.2007
Сообщений: 28
По умолчанию ASM, pcx2bmp

Собсно такой вопрос. Наваял программу на асме преобразования bmp2pcx. Получилась громоздкая, но работает. И возник следующий вопрос: можно ли как либо добавить 2 маленьких процедуры, что бы преобразовывать pcx2bmp. Собсно вот вопрос =)
Вложения
Тип файла: rar New Text Document.rar (4.7 Кб, 19 просмотров)
1ntro вне форума Ответить с цитированием
Старый 15.03.2009, 18:48   #2
1ntro
Пользователь
 
Регистрация: 10.12.2007
Сообщений: 28
По умолчанию

Ап, все еще требуются идеи, как перекодировать Х_Х
Цитата:
; Считываем палитру из BMP и конвертируем ее в PCX формат
; Смещаем указатель в BMP файле на раздел палитры
mov ax, BMP_fileID
push ax
mov ax, 36h ; Смещение начала палитры
push ax
xor ax, ax
push ax
mov ax, 0 ; Относительно начала файла
push ax
call fmov
pop ax
test ax, ax
jnz error_readBMPfile
pop dx
pop ax
; Считываем в буфер палитру BMP
mov ax, BMP_fileID
push ax
mov ax, 1024
push ax
mov ax, offset rastr_str + 4 ; Смещаем палитру в буфере на 4
push ax ; байта для того, чтобы исполь-
call fread ; зовать один буфер для
; конвертирования
pop ax
test ax, ax
jnz error_readBMPfile
pop ax
;Конвертируем в палитру PCX
cld
mov cx, 256
mov si, offset rastr_str + 4 ; Палитра смещена в буфере на 4
; байта
mov di, offset rastr_str
mov byte ptr [di], 12 ; Метка начала палитры в PCX
; Есть варианты с меткой 10
inc di
loop_p:
mov al, [si]
inc si
mov ah, [si]
inc si
mov dl, [si]
inc si
mov [di], dl
inc di
mov [di], ah
inc di
mov [di], al
inc di
inc si ; Пропускаем байт интенсивности
loop loop_p
; Записываем палитру PCX в файл
mov ax, PCX_fileID
push ax
mov ax, 769 ; байт-метка + 3*256
push ax
mov ax, offset rastr_str
push ax
call fwrite
pop ax
test ax, ax
jnz error_writePCXfile
pop ax
; Закрываем файлы
; BMP
mov ax, BMP_fileID
push ax
call fclose
pop ax
test ax,ax
jnz error_closeBMPfile
; PCX
mov ax, PCX_fileID
push ax
call fclose
pop ax
test ax,ax
jnz error_closePCXfile
Это для bmp->pcx <.< обратно чо-та ниработает по моим методам
1ntro вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[c++]asm Nightwalker Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 14.10.2008 19:39
Прерывания и asm в Си BOBAH13 Общие вопросы C/C++ 7 05.08.2008 15:52
Amature ASM nighthack Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 01.06.2008 23:45
Delphi и ASM benjaminfran Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 4 17.02.2008 15:46