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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.10.2010, 04:02   #1
Rin
Негодник
Форумчанин
 
Аватар для Rin
 
Регистрация: 10.11.2009
Сообщений: 880
По умолчанию Почему идёт мерцание?

писалась прожка на RAD ASM.
Если конечно не по адресу написал, то сорри, модератор.
Задание было в универе такое: Создать картинку, которая бы отталкивалась от краёв экрана. Писал сам, а пальчики то кривые =))), вот поэтому картинка то отталкивается, но вот почему идёт что-то вроде мерцания ???
вот сама прога:
Код:
.486  
.model small 

assume  cs:cseg, ds:dseg, ss:sseg

sseg    segment stack 'STACK'
 db 100h dup(?) 
sseg    ends

dseg    segment byte 'DATA'
 x1 dw 0
 y1 dw 0
 
 pic db 0,0,0,3,3,3,3,0,0,0
     db 0,0,3,0,0,0,0,3,0,0                   
     db 0,3,0,0,0,0,0,0,3,0                     
     db 3,0,0,3,0,0,3,0,0,3                    
     db 3,0,0,0,0,0,0,0,0,3                      
     db 3,0,0,0,0,0,0,0,0,3                     
     db 3,0,3,0,0,0,0,3,0,3                           
     db 0,3,0,3,3,3,3,0,3,0                    
     db 0,0,3,0,0,0,0,3,0,0                    
     db 0,0,0,3,3,3,3,0,0,0
       
clear db 0,0,0,0,0,0,0,0,0,0
      db 0,0,0,0,0,0,0,0,0,0                   
      db 0,0,0,0,0,0,0,0,0,0                     
      db 0,0,0,0,0,0,0,0,0,0                    
      db 0,0,0,0,0,0,0,0,0,0                      
      db 0,0,0,0,0,0,0,0,0,0                     
      db 0,0,0,0,0,0,0,0,0,0                           
      db 0,0,0,0,0,0,0,0,0,0                    
      db 0,0,0,0,0,0,0,0,0,0                    
      db 0,0,0,0,0,0,0,0,0,0      
dxx   db 0
dyy   db 0
                             
dseg    ends

cseg    segment use16 'CODE'
 
 main    proc   

  mov ax, dseg
  mov ds, ax

  mov ah, 0

  mov al, 4
  int 10h 

  mov x1,0
  mov y1,0 
     

M1: 
call  movepic
    mov ah, 1
    int 16h

    cmp al, ' '    
    jnz M1 

  mov ax, 4c00h
  int 21h
 
 main    endp     

 pixel proc near
 
 push bx
 push ax
 mov ah,0ch
 mov bh,0
 int 10h
 pop ax
 pop bx
  
 ret
 pixel endp 
 
 showpic proc near
    mov si,10
    mov dx,y1
sp1:mov di,10
    mov cx,x1
sp2:mov al,[bx]
    call pixel
    inc bx 	
 	inc cx
 	dec di
 	jnz sp2
 	inc dx
 	dec si
 	jnz sp1
 ret
 showpic endp
 
 pause proc
 	push cx
 	mov cx,0ffffh
 p1:dec cx
    jnz p1
    pop cx
 	
 	ret

 pause endp
 
 
 movepic proc
 lea bx,pic
 call showpic
 lea bx,clear
 call showpic
 
 cmp dxx,0
 jne z1  
 cmp x1,309
 je  z2
 inc x1    
 jmp exitX
 z2: mov dxx,1   
 z1: dec x1
 exitX:

 cmp dyy,0
 jne zz1
 cmp y1,189
 je  zz2 
 inc y1
 jmp exitY
 zz2: mov dyy,1
 zz1: dec y1
 exitY: 
 
 cmp x1,1
 je pp1
 cmp x1,1
 jne ppp1
 pp1: mov dxx,0
 ppp1:
 
 cmp y1,1
 je pp2
 cmp y1,1
 jne ppp2
 pp2: mov dyy,0
 ppp2:
 
 	ret

 movepic endp
   
cseg   ends      
end    main
Если помог, проси поставить минус. Будь оригинален!
Rin вне форума Ответить с цитированием
Старый 14.10.2010, 04:24   #2
Mikl___
Участник клуба
 
Регистрация: 11.01.2010
Сообщений: 1,139
По умолчанию

Rin
Молодца! Прикольная программка! мерцание на экране после выхода из программы получается потому, что при выходе из программы не восстанавливаешь графический режим, который был до установки 4 режима. Вставь вот этот фрагмент
Код:
cmp al, ' '    
    jnz M1 
  mov ax,3; устанавливаем текстовый режим
  int 10h
  mov ax, 4c00h
  int 21h
Mikl___ вне форума Ответить с цитированием
Старый 17.10.2010, 13:24   #3
Rin
Негодник
Форумчанин
 
Аватар для Rin
 
Регистрация: 10.11.2009
Сообщений: 880
По умолчанию

Спасибо большое!!! =)
Если помог, проси поставить минус. Будь оригинален!
Rin вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
не идёт запись в куки Dimarik PHP 5 09.10.2010 23:49
Загружает файл, грузит 200-300 байт, бросает и идёт к след. файлу. почему? Человек_Борща Работа с сетью в Delphi 4 10.08.2010 11:06
Почему не идёт репутация? TwiX О форуме и сайтах клуба 23 11.10.2009 11:54
Мерцание vladi Microsoft Office Excel 0 03.06.2009 17:42
Не идёт кампиляция prikolist Общие вопросы C/C++ 3 07.05.2009 20:48