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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.05.2009, 23:51   #1
shad0w
Пользователь
 
Регистрация: 02.12.2007
Сообщений: 17
По умолчанию анимация

привет всем, помогите плз разобраться, нужно изобразить идущего человечка, никак не могу придумать как впихнуть второй кадр(H2)
Код:
code segment
        ASSUME CS:code, DS:DATA_SEG, ES:NOTHING, SS:STACK_SEG
start:
        MOV     AX,DATA_SEG
        MOV     DS,AX
        MOV     AX,STACK_SEG
        MOV     SS,AX
        MOV     SP, OFFSET TOP_OF_STACK
        

        MOV     AX,13h
        INT     10h

        MOV     AX,0A000h 
        MOV     ES,AX 
        CLD

        MOV     DI,320*12

        MOV     BH, 48
       

MOVE_MASK:

        MOV     SI, OFFSET H1 ;
        PUSH    DI        
        MOV     BL,13    


DRAW_H:
        MOV     CX,12     
        REP     MOVSB
        ADD     DI,320-12 
        DEC     BL
        JNZ     DRAW_H
        POP     DI        
        INC     DI        
		   
      MOV     AH,08h
        INT     21h
        cmp     al, 'q'
        JNZ     MOVE_MASK


        MOV     AX,3
        INT     10h                 

        MOV     AH,4Ch
        INT     21h



DATA_SEG SEGMENT

H1 DB 0,0,0,0,0,9,9,9,9,0,0,0
      DB 0,0,0,0,0,9,9,9,9,0,0,0
      DB 0,0,0,0,0,9,9,0,0,0,0,0
      DB 0,0,0,9,9,9,9,9,9,0,0,0
      DB 0,0,0,9,9,9,9,9,9,0,0,0
      DB 0,9,9,0,0,9,9,0,0,9,9,0
      DB 0,9,9,0,0,9,9,0,0,9,9,0
      DB 0,0,0,0,0,9,9,0,0,0,0,0
      DB 0,0,0,0,0,9,9,0,0,0,0,0
      DB 0,0,0,9,9,0,0,9,9,0,0,0
      DB 0,0,0,9,9,0,0,9,9,0,0,0
      DB 0,9,9,0,0,0,0,0,0,9,9,0
      DB 0,9,9,0,0,0,0,0,0,9,9,0
     
H2     DB 0,0,0,0,0,9,9,9,9,0,0,0
       DB 0,0,0,0,0,9,9,9,9,0,0,0
       DB 0,0,0,0,0,9,9,0,0,0,0,0
       DB 0,0,0,9,9,9,9,9,9,0,0,0
       DB 0,0,0,9,9,9,9,9,9,0,0,0
       DB 0,9,9,0,0,9,9,0,0,9,9,0
       DB 0,9,9,0,0,9,9,0,0,9,9,0
       DB 0,0,0,0,0,9,9,0,0,0,0,0
       DB 0,0,0,0,0,9,9,9,9,0,0,0
       DB 0,0,0,9,9,0,0,9,9,0,0,0
       DB 0,0,0,9,9,0,0,9,9,0,0,0
       DB 0,9,9,0,0,0,0,9,9,0,0,0
       DB 0,9,9,0,0,0,0,0,0,0,0,0
DATA_SEG ENDS

STACK_SEG SEGMENT
	DB 64 DUP('STACK')
TOP_OF_STACK DW ?
STACK_SEG ENDS

code ends
end start
end
shad0w вне форума Ответить с цитированием
Старый 27.05.2009, 09:59   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

ну.... как-то так:
Код:
code segment
        ASSUME CS:code, DS:DATA_SEG, ES:NOTHING, SS:STACK_SEG
start:
        MOV     AX,DATA_SEG
        MOV     DS,AX
        MOV     AX,STACK_SEG
        MOV     SS,AX
        MOV     SP, OFFSET TOP_OF_STACK
        

        MOV     AX,13h
        INT     10h

        MOV     AX,0A000h 
        MOV     ES,AX 
        CLD

        MOV     DI,320*12

        MOV     BH, 48
       

MOVE_MASK:
        MOV     AL, NOM_KADR
        CMP     AL,0
        JNZ     KADR2
        MOV     NOM_KADR, 1
        MOV     SI, OFFSET H1
        JMP     SHOW_KADR
KADR2:
        MOV     NOM_KADR, 0
        MOV     SI, OFFSET H2

SHOW_KADR:
        PUSH    DI        
        MOV     BL,13    


DRAW_H:
        MOV     CX,12     
        REP     MOVSB
        ADD     DI,320-12 
        DEC     BL
        JNZ     DRAW_H
        POP     DI        
        INC     DI        

READ_KEY:
        MOV     AH,08h
        INT     21h
        cmp     al,0 ; Проверка на расш.коды
        JZ      READ_KEY
        cmp     al, 'q'
        JNZ     MOVE_MASK

        MOV     AX,3
        INT     10h                 

        MOV     AH,4Ch
        INT     21h



DATA_SEG SEGMENT

H1 DB 0,0,0,0,0,9,9,9,9,0,0,0
      DB 0,0,0,0,0,9,9,9,9,0,0,0
      DB 0,0,0,0,0,9,9,0,0,0,0,0
      DB 0,0,0,9,9,9,9,9,9,0,0,0
      DB 0,0,0,9,9,9,9,9,9,0,0,0
      DB 0,9,9,0,0,9,9,0,0,9,9,0
      DB 0,9,9,0,0,9,9,0,0,9,9,0
      DB 0,0,0,0,0,9,9,0,0,0,0,0
      DB 0,0,0,0,0,9,9,0,0,0,0,0
      DB 0,0,0,9,9,0,0,9,9,0,0,0
      DB 0,0,0,9,9,0,0,9,9,0,0,0
      DB 0,9,9,0,0,0,0,0,0,9,9,0
      DB 0,9,9,0,0,0,0,0,0,9,9,0
     
H2     DB 0,0,0,0,0,9,9,9,9,0,0,0
       DB 0,0,0,0,0,9,9,9,9,0,0,0
       DB 0,0,0,0,0,9,9,0,0,0,0,0
       DB 0,0,0,9,9,9,9,9,9,0,0,0
       DB 0,0,0,9,9,9,9,9,9,0,0,0
       DB 0,9,9,0,0,9,9,0,0,9,9,0
       DB 0,9,9,0,0,9,9,0,0,9,9,0
       DB 0,0,0,0,0,9,9,0,0,0,0,0
       DB 0,0,0,0,0,9,9,9,9,0,0,0
       DB 0,0,0,9,9,0,0,9,9,0,0,0
       DB 0,0,0,9,9,0,0,9,9,0,0,0
       DB 0,9,9,0,0,0,0,9,9,0,0,0
       DB 0,9,9,0,0,0,0,0,0,0,0,0
NOM_KADR DB 0
DATA_SEG ENDS

STACK_SEG SEGMENT
        DB 64 DUP('STACK')
TOP_OF_STACK DW ?
STACK_SEG ENDS

code ends
end start
end
p.s. только, ИМХО,
1) больше надо "квадратиков" в рисунке человечка
2) двух кадров для движения явно маловато (да и поднятие одной ноги не очень похоже на движение
Serge_Bliznykov вне форума Ответить с цитированием
Старый 27.05.2009, 11:38   #3
shad0w
Пользователь
 
Регистрация: 02.12.2007
Сообщений: 17
По умолчанию

спасибо огромнейшее
да, исправлю, сейчас сам увидел, как это аццко смотрится)
shad0w вне форума Ответить с цитированием
Старый 15.06.2010, 05:19   #4
Mikl___
Участник клуба
 
Регистрация: 11.01.2010
Сообщений: 1,162
По умолчанию

удалено автором

Последний раз редактировалось Mikl___; 15.06.2010 в 10:46.
Mikl___ вне форума Ответить с цитированием
Старый 13.12.2020, 11:02   #5
Vladimir.1982
Форумчанин
 
Регистрация: 30.04.2018
Сообщений: 171
По умолчанию

Цитата:
Сообщение от shad0w Посмотреть сообщение
привет всем, помогите плз разобраться, нужно изобразить идущего человечка, никак не могу придумать как впихнуть второй кадр(H2)
Код:
code segment
        ASSUME CS:code, DS:DATA_SEG, ES:NOTHING,

...
Это код на каком ассемблере?
Vladimir.1982 вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
анимация Juffin Общие вопросы Delphi 2 26.05.2009 20:04
анимация в с++ True_girl Помощь студентам 7 01.03.2009 18:57
Анимация BuTeK1 Паскаль, Turbo Pascal, PascalABC.NET 0 19.01.2009 00:30
анимация волшебная Общие вопросы Delphi 0 17.12.2008 21:01
Анимация SanekIrk Общие вопросы Delphi 2 15.08.2008 21:57