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

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

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.05.2012, 15:22   #1
Enf0s
Новичок
Джуниор
 
Регистрация: 17.04.2012
Сообщений: 1
По умолчанию Кто может помочь переделать существующий код, изменить буквы на КАМ

Вот код

Код:
 {$G+,A+}
TYPE point = record
  koord: integer; {nachalo poligona}
  high: integer;  {kolichestvo strok}
  scale: integer; {shirina 1-oi stroki v pixel}
  naklon: integer;{estesstv naklon poligona sleva}
  naklon2:integer;{naklon poligona sprava}
  naklon3:integer;{estesstv naklon poligona sprava}
  end;
CONST
  points : array[1..10] of point=
  {----P----}
  ((koord:1010;high:10;scale:30;naklon:0;naklon2:0;naklon3:0),
  (koord:990;high:50;scale:20;naklon:0;naklon2:0;naklon3:0),
  (koord:1050;high:50;scale:20;naklon:0;naklon2:0;naklon3:0),
  {----N----}
  (koord:7500;high:10;scale:16;naklon:0;naklon2:0;naklon3:0),
  (koord:1090;high:50;scale:20;naklon:0;naklon2:0;naklon3:0),
  (koord:1124;high:50;scale:20;naklon:0;naklon2:0;naklon3:0),
  (koord:1;high:1;scale:1;naklon:0;naklon2:0;naklon3:0),
  {---P-----}
  (koord:1160;high:10;scale:50;naklon:0;naklon2:0;naklon3:0),
  (koord:1160;high:50;scale:20;naklon:0;naklon2:0;naklon3:0),
  (koord:1200;high:50;scale:20;naklon:0;naklon2:0;naklon3:0));

  TestCount: word=10000;
var
  vidmode,scrpage: byte;
  minus: integer;
  time1, time2, time3, time4, time5, time6: word;
BEGIN
  asm
    mov ah,$f
    int 10h
    mov vidmode,al
    mov scrpage,bh
{--------------------------------------------------}
    mov ax,$13
    int 10h
    mov ax,$a000
    mov es,ax

    xor ah,ah    {timer}
    int 1ah
    mov time1,dx
    mov cx,TestCount

   @for_time:
   push cx
   lea si,points
   mov cx,10
   @new_pryam_polyg:
    mov ax,$f00f
    mov minus,0
    xor dx,dx
    xor bx,bx
    push cx
    mov di,[si]
    add si,2
    mov cx,[si]
    add si,2

    @new_line:
    push cx
    push bx
    push di

    mov cx,[si]
    sub cx,minus
                 {dobavili 1 pixel esli nech addr}
    mov bx,di
    and bl,1
    jz @not_add_1pix_in_beg
    mov [es:di],ah
    inc di
    dec cx
    @not_add_1pix_in_beg:
                 {zalili po 2 pixel}
    shr cx,1
    rep stosw
                 {dobavili 1 pixel esli zalili ne vse}
    jnc @not_add_1pix_in_end
    mov [es:di],al
    @not_add_1pix_in_end:

    pop di
    add di,320

    mov bx,[si+6] {est naklon sprava}
    add minus,bx
                         {kursivnii naklon}
    add dx,$7000
    sbb di,0
    pop bx
    add bx,[si+4]
    adc minus,0

    add di,[si+2]        {estesstvennii naklon sleva}

    not ax
    pop cx
    loop @new_line
    add si,8
    pop cx
   loop @new_pryam_polyg
    pop cx
    dec cx
   jnz @for_time
    xor ah,ah    {timer}
    int 1ah
    mov time2,dx
{------------------------------------------------------}
    mov ax,$13
    int 10h
    mov ax,$a000
    mov es,ax

    xor ah,ah    {timer}
    int 1ah
    mov time3,dx
    mov cx,TestCount
   @for_time2:
   push cx
   lea si,points
   mov cx,10
  @new_pryam_polyg2:
    db 66h
    mov ax,$f00f
    dw $f00f
    mov minus,0
    xor dx,dx
    xor bx,bx
    push cx
    mov di,[si]
    add si,2
    mov cx,[si]
    add si,2

   @new_line2:
    push cx
    push bx
    push di

    mov cx,[si]
    sub cx,minus
                 {dobavili 1 pixel esli nech addr}
    mov bx,di
    shr bl,1
    jnc @not_add_1pix_in_beg2
    mov [es:di],ah
    inc di
    dec cx
    @not_add_1pix_in_beg2:
                {dobavili 2 pixel esli addr ne delitsya na 4}
    shr bl,1
    jnc @not_add_2pix_in_beg2
    stosw
    sub cx,2
    @not_add_2pix_in_beg2:

    {zalili po 4 pixel}
    push cx
    shr cx,2
    db 66h
    rep stosw
    {dobavili 2 pixel esli zalili ne vse}
    jnc @not_add_2pix_in_end2
    stosw
    @not_add_2pix_in_end2:
           {dobavili 1 pixel esli zalili ne vse}
    pop cx
    and cx,1
    rep stosb

    pop di
    add di,320

    mov bx,[si+6] {est naklon sprava}
    add minus,bx
                         {kursivnii naklon}
    add dx,$7000
    sbb di,0
    pop bx
    add bx,[si+4]
    adc minus,0

    add di,[si+2]        {estesstvennii naklon sleva}

    db 66h
    not ax
    pop cx
   loop @new_line2
    add si,8
    pop cx
  loop @new_pryam_polyg2
    pop cx
    dec cx
   jnz @for_time2
    xor ah,ah    {timer}
    int 1ah
    mov time4,dx

    mov al,vidmode
    xor ah,ah
    int 10h
    mov ah,5
    mov al,scrpage
    int 10h
  end;
  if time2<time1 then time1:=65535-time1+time2
  else time1:=time2-time1;
  if time4<time3 then time3:=65535-time3+time4
  else time3:=time4-time3;
  if time6<time5 then time5:=65535-time5+time6
  else time5:=time6-time5;
  writeln('Results (fps):');
  writeln('1 and 2-bit universal zalivka     ',TestCount/(time1/18):10:0);
  writeln('1,2 and 4-bit universal zalivka   ',TestCount/(time3/18):10:0);

  readln;
END.


___________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.

Последний раз редактировалось Serge_Bliznykov; 04.05.2012 в 15:36.
Enf0s вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Кто может помочь..... teres C++ Builder 1 18.03.2011 17:59
Может кто помочь с заданиями? fatalistika Фриланс 15 30.12.2010 08:52
Нада описать код програми, кто может помочь очень буду благодарен!!! Programmer20101 Помощь студентам 0 12.05.2010 21:15
Прошу помочь переделать.Код внутри.С++ BackSlash Помощь студентам 1 10.01.2010 20:36