тема ужасна... стройбат наступает!!!
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
тема ужасна... стройбат наступает!!! - 2005-05-11 16:36:11
|
|
|
Galano
Сообщений: 4
Оценки: 0
Присоединился: 2005-05-11 14:37:26
|
САБЖ: нужна прога.. сжатие инфы методом RLE… требования: открытие файла реализовать на C, рабочие функции - на ассемблере… помогите, добрые люди!!![:pray:]
|
|
|
тема ужасна... стройбат наступает!!! - 2005-05-11 16:39:19
|
|
|
Galano
Сообщений: 4
Оценки: 0
Присоединился: 2005-05-11 14:37:26
|
и ещё тема… нашёл вот такую шнягу в тЫрнете.. типа она и есть то, что мне надо, ток в ней косякиии[sm=15.gif] ща взглянул… ничё не понимаю…[sm=mad.gif] кто мож чужие текстЫ рулит, найдите ошибку, а?[sm=2.gif] во ОНО: Вот функция сжатия: masm MODEL small .stack 100h .data repit db 1 difer db 0 nachalo db 1 .code public _arhiv _arhiv proc c near bufer_s:word,bufer_r:word,size_b:word push si push di mov si,bufer_s mov di,bufer_r push di dec size_b mov cx,size_b mov nachalo,1 cmp cx,00h jne cycle mov al,00h mov [di],al inc di mov al,[si] mov [di],al inc di jmp exit cycle: mov al,[si] cmp al,[si+1] je label_s
push si push cx call diferent pop cx pop si jmp pkcycle label_s: call similar pkcycle: inc si loop cycle exit: mov ax,di pop di sub ax,di pop di pop si ret _arhiv endp ;———————– similar proc near inc repit cmp difer,02h jb testin call wr_dif jmp testend testin: mov difer,0 cmp repit,80h jne testend call wr_sim mov al,[si+1] cmp al,[si+2] je counter mov repit,1 jmp end_sim counter: mov repit,0 jmp end_sim
testend: cmp cx,01h jne end_sim call wr_sim
end_sim: ret similar endp ;———————- wr_sim proc near mov nachalo,0 dec repit not repit inc repit mov al,repit mov [di],al inc di mov al,[si] mov [di],al mov repit,1 inc di
ret wr_sim endp ;——————— diferent proc near inc difer cmp repit,02h jnae label1 call wr_sim jmp end_dif label1: cmp nachalo,1 je metka cmp difer,80h jne test_end metka: cmp difer,7fh jnae test_end call wr_dif_f
cmp cx,01h je end_dif dec cx inc si jmp end_dif test_end: cmp cx,01h jne end_dif cmp nachalo,1 jne detour mov dx,size_b mov [di],dx dec dx mov cx,dx add dx,2 call back jmp end_dif detour: push si push cx mov dl,difer mov dh,0 mov cx,dx dec cx mov [di],cx dec cx call back pop cx pop si end_dif: ret diferent endp ;——————————- wr_dif_f proc near push si push cx mov ax,7fh mov [di],ax mov cx,7eh mov dx,80h call back pop cx pop si mov nachalo,0 end_wdf: ret wr_dif_f endp ;————————– wr_dif proc near push si push cx mov cl,difer mov ch,0 cmp nachalo,1 jne jump mov dl,difer mov dh,0 dec dx mov [di],dx inc dx jmp onproc jump: dec cx sub difer,2 mov dl,difer mov dh,0 mov [di],dx inc dx onproc: mov nachalo,0 call back pop cx pop si
ret wr_dif endp ;———————— back proc near sub si,cx mov cx,dx write_dif: inc di mov al,[si] mov [di],al inc si loop write_dif mov difer,00h inc di
ret back endp ;————————- end
Вот функция восстановления:
MASM MODEL small .stack 100h .data pred_sym dw 128 .code public _norm _norm proc c near bufer_s:word,bufer_r:word,size_b:word push si push di mov si,bufer_s mov di,bufer_r push di mov cx,size_b mov ax,pred_sym cmp ax,80h je cycle dec si inc cx jmp pbcycle
cycle: mov al,[si] pbcycle: cmp al,80h ja similar
inc al mov bl,al mov bh,0 cmp cx,01h jne metka jmp pkcycle metka: sub cx,bx cmp cx,01h jge perehod mov dx,cx mov cx,1 push cx mov cx,dx add cx,bx dec cx sub bx,cx jmp write_dif perehod: mov bx,81h push cx mov cl,al mov ch,0
write_dif: inc si mov al,[si] mov [di],al inc di loop write_dif pop cx jmp pkcycle
similar: mov bh,0 cmp cx,01h je alien inc si not al add al,2 mov bl,al
dec cx push cx mov cx,bx mov al,[si] write_sim: mov [di],al inc di loop write_sim pop cx mov bx,81h
pkcycle: inc si dec cx jnz cycle
dec bx
mov pred_sym,bx jmp exit alien: mov bl,al mov pred_sym,bx exit: mov ax,di pop di sub ax,di
pop di pop si ret _norm endp end
Вот сишник:
#include<stdio.h> #include <conio.h> //#include "asm.h extern int arhiv(char bufer1[],char bufer2[],int len); int errval; int errfunc(int errval) { switch (errval) { case '1': printf("Error: File doesn`t exist\n"); break; case '2': printf("Error:File cant` be opened for reading\n"); break; case '3': printf("Error:File can`t be opened for writing\n");
case '7': printf("Error:Record failed\n"); break; } return 0; }
int do_all() {
int s; int z; char btn; char fn_1[10]; char fn_2[10]; FILE* input; FILE* output; char buf_s[512]; char *buf_r;
clrscr(); while(1){
printf("change file - 1\n"); printf("regain file - 2\n"); btn=getch(); if (btn == '1') {
printf ("enter the output file name: "); scanf("%s",fn_1); input=fopen(fn_1,"r") ; if (!input) { errval='1'; errfunc(errval); return 0; }
printf ("enter output file name: "); scanf ("%s",fn_2); output=fopen(fn_2,"wr") ; if (!output) { errval='3'; errfunc(errval); return 0; } while (feof(input)==0) {s=fread(buf_s,1,512,input); z=arhiv(buf_s,buf_r,s); fwrite(buf_r,1,z,output);} // printf ("The change function is being called\n"); break; } else if (btn == '2'){
printf ("enter the input file name: "); scanf("%s",fn_1); input=fopen(fn_1,"r") ; if (!input) { errval='1'; errfunc(errval); return 0; } printf ("enter output file name: "); scanf ("%s",fn_2); output=fopen(fn_2,"wr") ; if (!output) { errval='3'; errfunc(errval); return 0; } while (feof(input)==0) {s=fread(buf_s,1,512,input); //z=norm(buf_s,buf_r,s); fwrite(buf_r,1,z,output);}
// printf ("The regain function is being called\n"); break; } else { printf ("Enter 1 or 2\n"); } fclose(input); fclose(output); } return 0; }
int main() { char chs; do{ do_all(); printf ("Continue - c\n"); printf ("Quit - q\n"); chs=getch(); }while(chs!='q'); return 0; }
|
|
|
тема ужасна... стройбат наступает!!! - 2005-05-11 23:51:44
|
|
|
Galano
Сообщений: 4
Оценки: 0
Присоединился: 2005-05-11 14:37:26
|
ХЕЕЛП!!!! ну кому это - раз плюнуть?! кто может?? горюююю…. мне ж препод это… того.. [sm=001.gif] на_ отрежет =((
|
|
|
тема ужасна... стройбат наступает!!! - 2005-05-15 13:59:32
|
|
|
ventilyator
Сообщений: 423
Оценки: 0
Присоединился: 2004-10-28 15:46:45
|
если бабки есть, то рекомендую те купить готовый исходник если бабок нет, копи на парикмахерскую [sm=9.gif] нефиг было весь симестр балду пинать
|
|
|
тема ужасна... стройбат наступает!!! - 2005-05-16 20:47:14
|
|
|
Galano
Сообщений: 4
Оценки: 0
Присоединился: 2005-05-11 14:37:26
|
[sm=mad.gif]спасибо те добрый чел!!! а постригут мя бесплатно! [sm=scull.gif] - прям так и постригут…. ты мож скажешь тогда, где готовое можно купить-то?! аа?![sm=7.gif]
|
|
|
тема ужасна... стройбат наступает!!! - 2005-05-16 22:44:01
|
|
|
ventilyator
Сообщений: 423
Оценки: 0
Присоединился: 2004-10-28 15:46:45
|
прям тут и предложи - мало народа на халяву поведеца? бабки думаю все получить хотят
к тому ж можеш воспользоваца услугами фрилансеров - вон их сайтов полно
|
|
|
|
|